自動佈建新的 Looker 執行個體

您也可以在啟動新的 Looker 客戶代管執行個體時,自動為執行個體佈建授權金鑰、主機網址和初始使用者帳戶。

自動為電子郵件使用者佈建新執行個體

在初始啟動時,Looker 會在 JAR 檔案所在的 looker 目錄中掃描名為 provision.yml 的檔案。此檔案的格式如下:

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"

如果 Looker 例項是全新的,且尚未設定,系統會使用指定的授權金鑰和使用者帳戶 (含提供的資訊) 進行佈建作業。

如果 Looker 已佈建,則授權金鑰和主機網址值會覆寫目前設定的授權金鑰和主機網址。系統會忽略使用者資訊。這項功能可用於更新 Looker 的暫存例項,並使用實際工作環境例項的內部資料庫新副本,同時仍保留暫存伺服器的專屬授權金鑰和網址。

使用 API 使用者自動佈建新執行個體

在新的 Looker 執行個體啟動時,您可以以程式輔助的方式佈建初始 API 使用者。您可以佈建 API 使用者或電子郵件使用者,但 Looker 不支援同時佈建 API 使用者和電子郵件使用者。

產生 API 憑證

如要佈建 API 使用者,請產生 Looker 會讀取並儲存至資料庫的用戶端 ID 和用戶端密鑰。這些憑證的要求如下:

  • 用戶端 ID 的長度必須為 20 個字元。
  • 用戶端密鑰的長度必須為 24 個半形字元。
  • 這兩個字串都必須能夠納入 POST 要求的主體,因此建議只使用英數字元。

舉例來說,Looker 會使用以下程式碼以程式輔助方式產生這些憑證:

require 'securerandom'

TOKEN_SYMBOLS = "bcdfghjkmnpqrstvwxyzBCDFGHJKMNPQRSTVWXYZ23456789".freeze

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

這段程式碼可避免使用模糊字元,讓字串不易發生錯誤。

您也可以使用 openssl 指令產生適當的字串:

openssl rand -hex 10

openssl 指令結尾的數字是字串中的位元組數,因此請使用 10 用於用戶端 ID,並使用 12 用於用戶端密碼。

佈建 API 使用者

如要在啟動時佈建 API 使用者,請確認您在 looker 目錄中擁有 provision.yml 檔案,其中包含授權金鑰和主機網址。例如:

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

looker 目錄中建立名為 api-provision.yml 的檔案,並賦予 0600 權限,其中包含 API 使用者資訊。例如:

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

建議您將這些憑證儲存在此檔案以外的密鑰管理工具中,因為 Looker 例項在資料庫中處理及建立使用者後,系統會在啟動時移除此檔案。

在啟動時,如果執行個體為空,且沒有使用者,Looker 會使用這些憑證建立 Looker 管理員 API 使用者,並從磁碟移除 api-provision.yml 檔案。

接著,您有 30 分鐘的時間,可以使用這些憑證進行額外佈建,之後憑證就會從內部資料庫中移除,無法再使用。移除這些初始憑證可避免在應用程式中建立長期後門,並確保預定的用途僅限於佈建。