Aprovisionamiento automático de una nueva instancia 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.

Aprovisiona automáticamente una instancia nueva con un usuario de correo electrónico

Durante 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 ya se aprovisionó Looker, los valores de la clave de licencia y la URL del host anularán cualquier clave de licencia y URL del host que se hayan establecido actualmente. Se ignorará la información del usuario. Esto es útil para actualizar una instancia de prueba 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 prueba.

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 del 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.
  • 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 forma 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 administrador de secretos fuera de este archivo, ya que este se quitará durante el inicio una vez que la instancia de Looker haya procesado y creado al usuario en la base de datos.

Al 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 y realizar un aprovisionamiento adicional antes de que 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.