您也可以在啟動新的 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 分鐘的時間,可以使用這些憑證進行額外佈建,之後憑證就會從內部資料庫中移除,無法再使用。移除這些初始憑證可避免在應用程式中建立長期後門,並確保預定的用途僅限於佈建。