Aprovisionamiento automático de una instancia nueva de Looker

De manera opcional, al inicio de una instancia nueva de Looker, puede aprovisionar automáticamente la instancia 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: "Katie"
  last_name: "Woolsey"
  email: "kwoolsey@benaventi.com"
  password: "password123"

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

Si ya se aprovisionó Looker, la clave de licencia y los valores de URL de host anularán cualquier clave de licencia y URL de host que estén configuradas. 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 URL separadas para el servidor de etapa de pruebas.

Aprovisionamiento automático de una instancia nueva con un usuario de API

Cuando se inicia una instancia nueva de Looker, puedes aprovisionar un usuario inicial de la API de manera 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 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.
  • El secreto del cliente debe tener 24 caracteres.
  • Se deben poder incluir ambas strings en el cuerpo de una solicitud POST. Por lo tanto, 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

El código anterior evita los caracteres ambiguos para que las strings sean menos propensas a errores.

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

openssl rand -hex 10

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

Aprovisiona el usuario de la API

Para aprovisionar un usuario de API al inicio, asegúrate de tener un archivo provision.yml que incluya tu 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: "Katie"
  last_name: "Woolsey"
  client_id: "M9hZb8vRh9bSZzdPxw42"
  client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"

Te recomendamos que almacenes estas credenciales en un administrador secreto fuera de este archivo, ya que se quitará cuando se inicie la instancia de Looker y se 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, tiene 30 minutos para usar estas credenciales a fin de realizar un aprovisionamiento adicional antes de que se quiten las credenciales 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.