Aprovisiona automáticamente una instancia nueva de Looker

De manera opcional, cuando se inicia una nueva instancia alojada por el cliente de Looker, puedes aprovisionarla automáticamente con una clave de licencia, una URL de host y una cuenta de usuario inicial.

Aprovisionamiento automático de una instancia nueva con un usuario de correo electrónico

En el inicio inicial, Looker busca un archivo llamado provision.yml en el directorio looker, donde reside el archivo JAR. El formato de este archivo es el siguiente:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
user:
  first_name: "Ariel"
  last_name: "Q"
  email: "arielq@altostrat.com"
  password: "password123"

Si la instancia de Looker es nueva y aún no se configuró, se aprovisionará con la clave de licencia proporcionada y una cuenta de usuario con la información proporcionada.

Si Looker ya se aprovisionó, los valores de la clave de licencia y la URL del host anularán cualquier clave de licencia y URL del host que estén configurados actualmente. Se ignorará la información del usuario. Esto es útil para actualizar una instancia de etapa de pruebas de Looker con una copia nueva de la base de datos interna de una instancia de producción y, al mismo tiempo, mantener una clave de licencia y una URL independientes para el servidor de etapa de pruebas.

Aprovisiona automáticamente una instancia nueva con un usuario de API

Cuando se inicia una nueva instancia de Looker, puedes aprovisionar un usuario inicial de la API de forma programática. Puedes aprovisionar un usuario de API O un usuario de correo electrónico, pero Looker no admite el aprovisionamiento de un usuario de API y un usuario de correo electrónico al mismo tiempo.

Genera credenciales de API

Para aprovisionar un usuario de la API, genera un ID de cliente y un secreto de cliente que Looker leerá y guardará en la base de datos. Los requisitos para estas credenciales son los siguientes:

  • El ID de cliente debe tener 20 caracteres de longitud.
  • El secreto del cliente debe tener 24 caracteres.
  • Ambas cadenas deben poder incluirse en el cuerpo de una solicitud POST, por lo que se recomienda usar solo caracteres alfanuméricos.

Por ejemplo, Looker usa el siguiente código para generar estas credenciales de manera programática:

require 'securerandom'

TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze

def generate_token(size)
  Array.new(size).map { TOKEN_SYMBOLS[SecureRandom.random_number(TOKEN_SYMBOLS.size)] }.join
end

Este código evita los caracteres ambiguos para que las cadenas sean menos propensas a errores.

También puedes generar cadenas adecuadas con el comando openssl:

openssl rand -hex 10

El número que aparece al final del comando openssl es la cantidad de bytes de la cadena, por lo que debes usar 10 para el ID de cliente y 12 para el secreto del cliente.

Aprovisiona el usuario de la API

Para aprovisionar un usuario de API durante el inicio, asegúrate de tener un archivo provision.yml que incluya la clave de licencia y la URL del host en el directorio looker. Por ejemplo:

license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"

Crea un archivo llamado api-provision.yml con los permisos 0600 en el directorio looker que incluya la información del usuario de la API. Por ejemplo:

user:
  first_name: "Ariel"
  last_name: "Q"
  client_id: "M9hZb8vRh9bSZzdPxw42"
  client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"

Te recomendamos que almacenes estas credenciales en un Secret Manager fuera de este archivo, ya que este se quitará al inicio una vez que la instancia de Looker haya procesado y creado el usuario en la base de datos.

En el inicio, si la instancia está vacía y no hay usuarios presentes, Looker crea un usuario de la API de administrador de Looker con estas credenciales y quita el archivo api-provision.yml del disco.

Luego, tienes 30 minutos para usar estas credenciales para hacer aprovisionamiento adicional antes de que las credenciales se quiten de la base de datos interna y ya no se puedan usar. Quitar estas credenciales iniciales evita crear una puerta trasera de larga duración en la aplicación y mantiene el caso de uso previsto estrictamente en el aprovisionamiento.