(可选)在新 Looker 实例启动时,您可以为该实例自动配置许可密钥、主机网址和初始用户帐号。
自动为电子邮件用户预配新实例
初次启动时,Looker 会在 JAR 文件所在的 looker
目录中扫描名为 provision.yml
的文件。该文件的格式如下:
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"
如果 Looker 是全新的,但尚未设置,则系统将使用指定的许可密钥和具备所需信息的用户帐号进行配置。
如果已经配置了 Looker,许可密钥和主机网址值会覆盖当前设置的任何许可密钥和主机网址。系统会忽略用户信息。这对于使用生产实例内部数据库的最新副本更新 Looker 的预演实例,同时仍然为预演服务器维护单独的许可密钥和网址非常有用。
自动为 API 用户预配新实例
在新 Looker 实例启动时,您可以通过编程方式配置初始 API 用户。您可以配置 API 用户或电子邮件用户,但 Looker 不支持同时配置 API 用户和电子邮件用户。
生成 API 凭据
如需配置 API 用户,请生成客户端 ID 和客户端密钥,Looker 将读取并将消息保存到数据库。这些凭据的要求如下:
- 客户端 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: "Katie"
last_name: "Woolsey"
client_id: "M9hZb8vRh9bSZzdPxw42"
client_secret: "NMnqBVbHqPsPzTvbZk6xZfV3"
我们建议您将这些凭据存储在此文件之外的 Secret 管理器中,因为一旦 Looker 实例处理完毕并在数据库中创建用户,此文件就会在启动时移除。
在启动时,如果实例为空且没有用户,Looker 会使用这些凭据创建 Looker Admin API 用户,并从磁盘中移除 api-provision.yml
文件。
然后,您需要在 30 分钟内使用这些凭据进行额外配置,然后凭据才会从内部数据库中移除且不再可用。移除这些初始凭据可以避免在应用中创建长期存在的后门程序,并可将预期用例严格限制在预配范围内。