为了改善我的团队的 AWX 管理,我目前正在尝试配置 Hashicorp Vault 凭证,但我遇到了一些错误和疑问。
通常在我的 Ansible 项目中,我从 Debian 服务器运行,我习惯使用这样的查找来设置 Vault 机密(在 var 文件或 vars 中工作:)
### Vault Configuration
ansible_hashi_vault_token="{{ lookup('env','VAULT_ANSIBLE') }}"
my_secret="{{ lookup('community.hashi_vault.vault_kv2_get', 'my_secret', engine_mount_point='kv/', token=ansible_hashi_vault_token) }}"
#### Credentials (compte de service ansible) ####
ansible_user="{{ my_secret.secret.ansible_user_from_vault}}"
Ansible 将寻找一个名为“VAULT_ANSIBLE”的环境变量,它是对我的保管库服务器的 AppRole 调用的结果令牌。它允许运行 playbook,而无需在代码中写入任何令牌。
现在在 AWX 中添加项目后,我正在尝试使 Vault 部分正常工作 =>
这是我的问题:
我在许多论坛上看到人们正在创建自定义凭证类型,然后使用注入器来使用保管库查找。
非常感谢您的帮助 盖尔
编辑 2023 年 12 月 12 日 找到与测试凭证对应的日志(使用 kubectl logs my-pod)。似乎是 django 错误请求,但不知道如何调查;
2023-12-12 14:40:40,628 WARNING [4fdf7cfc36804499b34fa50a28369fb7] awx.api.generics status 400 received by user admin attempting to access /api/v2/credentials/5/test/ from 10.10.10.10
2023-12-12 14:40:40,635 WARNING [4fdf7cfc36804499b34fa50a28369fb7] django.request Bad Request: /api/v2/credentials/5/test/
2023-12-12 14:40:40,635 WARNING [4fdf7cfc36804499b34fa50a28369fb7] django.request Bad Request: /api/v2/credentials/5/test/
10.10.10.10 - - [12/Dec/2023:14:40:40 +0000] "POST /api/v2/credentials/5/test/ HTTP/1.1" 400 21 "https://my-awx.net/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" "10.230.173.133"
[pid: 23|app: 0|req: 228/1089] 172.20.245.206 () {72 vars in 2440 bytes} [Tue Dec 12 14:40:40 2023] POST /api/v2/credentials/5/test/ => generated 21 bytes in 76 msecs (HTTP/1.1 400) 14 headers in 598 bytes (1 switches on core 0)
你弄清楚了吗?
我正在尝试做类似的事情。我目前有 Orbstack 本地集群,其中包含 Vault 和 AWX 操作员 Pod。
我想进行设置,以便 AWX 可以读取保管库机密,而无需将令牌放入 AWX 凭证中的保管库机密查找中。
我已在保管库中附加了策略、角色和身份验证类型。
但是,当我从 AWX 进行身份验证而不提供令牌时,它会返回与您相同的错误:django Bad Request
但是如果我给它金库令牌,它就会通过测试。
我正在尝试让Vault生成令牌并将其分配给AWX请求。
希望我说得有道理