Automatische Bereitstellung einer neuen Looker-Instanz

Optional können Sie beim Start einer neuen, vom Kunden gehosteten Looker-Instanz die Instanz automatisch mit einem Lizenzschlüssel, einer Host-URL und einem anfänglichen Nutzerkonto bereitstellen.

Neue Instanz automatisch mit einem E-Mail-Nutzer bereitstellen

Beim ersten Start sucht Looker im Verzeichnis looker, in dem sich die JAR-Datei befindet, nach einer Datei mit dem Namen provision.yml. Das Format für diese Datei lautet:

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"

Wenn die Looker-Instanz neu und noch nicht eingerichtet wurde, wird sie mit dem angegebenen Lizenzschlüssel und einem Nutzerkonto mit den angegebenen Informationen bereitgestellt.

Wenn Looker bereits bereitgestellt wurde, überschreiben der Lizenzschlüssel und die Host-URL-Werte den aktuell festgelegten Lizenzschlüssel und die Host-URL. Die Nutzerinformationen werden ignoriert. Dies ist nützlich, um eine Staging-Instanz von Looker mit einer neuen Kopie der internen Datenbank einer Produktionsinstanz zu aktualisieren und gleichzeitig einen separaten Lizenzschlüssel und eine URL für den Staging-Server beizubehalten.

Neue Instanz automatisch mit einem API-Nutzer bereitstellen

Beim Start einer neuen Looker-Instanz können Sie programmatisch einen ersten API-Nutzer bereitstellen. Sie können einen API-Nutzer ODER einen E-Mail-Nutzer bereitstellen. Looker unterstützt jedoch nicht die gleichzeitige Bereitstellung eines API-Nutzers und eines E-Mail-Nutzers.

API-Anmeldedaten generieren

Generieren Sie eine Client-ID und einen Clientschlüssel, den Looker liest und in der Datenbank speichert, um einen API-Nutzer bereitzustellen. Für diese Anmeldedaten gelten folgende Voraussetzungen:

  • Die Client-ID muss 20 Zeichen lang sein.
  • Der Clientschlüssel muss 24 Zeichen lang sein.
  • Beide Strings müssen in den Text einer POST-Anfrage aufgenommen werden können. Daher wird die Verwendung von ausschließlich alphanumerischen Zeichen empfohlen.

Looker verwendet beispielsweise den folgenden Code, um diese Anmeldedaten programmatisch zu generieren:

require 'securerandom'

TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze

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

Der obige Code vermeidet mehrdeutige Zeichen, um die Zeichenfolgen weniger fehleranfällig zu machen.

Passende Strings können Sie auch mit dem Befehl openssl generieren:

openssl rand -hex 10

Die Zahl am Ende des Befehls openssl ist die Anzahl der Byte im String. Verwenden Sie daher 10 für die Client-ID und 12 für den Clientschlüssel.

API-Nutzer bereitstellen

Wenn Sie einen API-Nutzer beim Start bereitstellen möchten, benötigen Sie eine provision.yml-Datei mit Ihrem Lizenzschlüssel und der Host-URL im Verzeichnis looker. Beispiel:

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

Erstellen Sie im Verzeichnis looker eine Datei namens api-provision.yml mit den Berechtigungen 0600, die die API-Nutzerinformationen enthält. Beispiel:

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

Wir empfehlen, diese Anmeldedaten in einem Secret Manager außerhalb dieser Datei zu speichern, da diese Datei beim Start entfernt wird, sobald die Looker-Instanz den Nutzer in der Datenbank verarbeitet und erstellt hat.

Wenn die Instanz beim Start leer ist und keine Nutzer vorhanden sind, erstellt Looker einen Looker Admin API-Nutzer mit diesen Anmeldedaten und entfernt die Datei api-provision.yml vom Laufwerk.

Sie haben dann 30 Minuten Zeit, um diese Anmeldedaten für zusätzliche Nutzerverwaltungsmaßnahmen zu verwenden. Anschließend werden die Anmeldedaten aus der internen Datenbank entfernt und können nicht mehr verwendet werden. Durch das Entfernen dieser anfänglichen Anmeldedaten wird keine langlebige Backdoor zur Anwendung erstellt und der vorgesehene Anwendungsfall ausschließlich auf die Bereitstellung beschränkt.