Opcionalmente, no arranque de uma nova instância alojada pelo cliente do Looker, pode aprovisionar automaticamente a instância com uma chave de licença, um URL de anfitrião e uma conta de utilizador inicial.
Aprovisionar automaticamente uma nova instância com um utilizador de email
No arranque inicial, o Looker procura um ficheiro denominado provision.yml
no diretório looker
, onde reside o ficheiro JAR. O formato deste ficheiro é o seguinte:
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"
Se a instância do Looker for totalmente nova e ainda não tiver sido configurada, é aprovisionada com a chave de licença fornecida e uma conta de utilizador com as informações facultadas.
Se o Looker já tiver sido aprovisionado, os valores da chave de licença e do URL do anfitrião substituem os valores da chave de licença e do URL do anfitrião atualmente definidos. As informações do utilizador são ignoradas. Isto é útil para atualizar uma instância de preparação do Looker com uma nova cópia da base de dados interna de uma instância de produção, mantendo, ao mesmo tempo, uma chave de licença e um URL separados para o servidor de preparação.
Aprovisionar automaticamente uma nova instância com um utilizador da API
No arranque de uma nova instância do Looker, pode aprovisionar um utilizador da API inicial de forma programática. Pode aprovisionar um utilizador da API OU um utilizador de email, mas o Looker não suporta o aprovisionamento de um utilizador da API e um utilizador de email em simultâneo.
Gerar credenciais da API
Para aprovisionar um utilizador da API, gere um ID do cliente e um segredo do cliente que o Looker vai ler e guardar na base de dados. Os requisitos para estas credenciais são:
- O ID de cliente tem de ter 20 carateres.
- O segredo do cliente tem de ter 24 carateres.
- Ambas as strings têm de poder ser incluídas no corpo de um pedido
POST
. Por isso, recomenda-se a utilização apenas de carateres alfanuméricos.
Por exemplo, o Looker usa o seguinte código para gerar estas credenciais programaticamente:
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 carateres ambíguos para tornar as strings menos propensas a erros.
Também pode gerar strings adequadas através do comando openssl
:
openssl rand -hex 10
O número no final do comando openssl
é o número de bytes na string, por isso, use 10
para o ID do cliente e 12
para o segredo do cliente.
Aprovisionar o utilizador da API
Para aprovisionar um utilizador da API no arranque, certifique-se de que tem um ficheiro provision.yml
que inclui a chave de licença e o URL do anfitrião no diretório looker
. Por exemplo:
license_key: "1234-5678-ABCD-EFGH-IJKL"
host_url: "https://looker.mycompany.com"
Crie um ficheiro denominado api-provision.yml
com as autorizações 0600
no diretório looker
que inclua as informações do utilizador da API. Por exemplo:
user:
first_name: "Ariel"
last_name: "Q"
client_id: "M9hZb8vRh9bSZzdPxw42"
client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"
Recomendamos que armazene estas credenciais num gestor de segredos fora deste ficheiro, uma vez que este ficheiro é removido no arranque assim que a instância do Looker processar e criar o utilizador na base de dados.
No arranque, se a instância estiver vazia e não existirem utilizadores, o Looker cria um utilizador da API de administrador do Looker com estas credenciais e remove o ficheiro api-provision.yml
do disco.
Em seguida, tem 30 minutos para usar estas credenciais para fazer o aprovisionamento adicional antes de as credenciais serem removidas da base de dados interna e deixarem de ser utilizáveis. A remoção destas credenciais iniciais evita a criação de uma porta traseira de longa duração na aplicação e restringe o exemplo de utilização pretendido ao aprovisionamento.