如何通过命令行将Azure服务主体详细信息传递给Ansible?

时间:2020-08-19 08:26:14

标签: azure ansible ansible-inventory

通过将我的服务原理详细信息放入存储在〜/ .azure / credentials中的凭据文件中,我可以使用Ansible连接到Azure

对于开发而言,这是可以的,现在(在生产中)我想不再使用文本凭据文件,而是通过命令行通过参数将凭据传递给Ansible。

这应该怎么做? 感谢您的帮助-谢谢

我尝试过:

ansible-playbook -i ./dev-env/epazure_rm.yml ./dev-env/site.yml -vvvv -u adminuser --extra-vars "AZURE_SUBSCRIPTION_ID=XXX AZURE_CLIENT_ID=XXX AZURE_SECRET=XXX AZURE_TENANT=XXX"

我的Azure动态清单插件文件如下

    --- 
plugin: azure_rm
include_vm_resource_groups: 
  - rg-devdonal-eastus01
auth_source: auto
subscription_id: "{{ AZURE_SUBSCRIPTION_ID }}"
client_id: "{{ AZURE_CLIENT_ID }}"
secret: "{{ AZURE_SECRET }}"
tenant: "{{ AZURE_TENANT }}"

keyed_groups:
- prefix: tag
  key: tags

1 个答案:

答案 0 :(得分:1)

您可以使用environment variables for the credential,然后从环境中读取变量,here是示例:

- debug: msg="{{ lookup('env','HOME') }} is an environment variable"

还有另一个issue显示了示例。