如何通过命令行将 Azure 服务主体详细信息传递给 Ansible?
How to pass Azure service principal details to Ansible via command-line?
通过将我的服务原则详细信息放入存储在 ~/.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
你可以用environment variables for the credential and then read the variables from the environment, here就是例子:
- debug: msg="{{ lookup('env','HOME') }} is an environment variable"
另外还有一个issue例子。
通过将我的服务原则详细信息放入存储在 ~/.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
你可以用environment variables for the credential and then read the variables from the environment, here就是例子:
- debug: msg="{{ lookup('env','HOME') }} is an environment variable"
另外还有一个issue例子。