gpt4 book ai didi

azure - 在 Ansible 中使用 Azure 标签作为 playbook

转载 作者:行者123 更新时间:2023-12-02 06:32:17 31 4
gpt4 key购买 nike

这是一个相当广泛的问题,因为我无法找到任何具体的文档或人们使用我要问的内容的示例,所以请原谅我。

我已经创建了一个 Azure ARM 模板,并能够使用 azure_rm.py 动态 list 通过 Ansible 成功部署它:https://github.com/ansible/ansible/blob/devel/contrib/inventory/azure_rm.py

我在 Ansible 文档网站上读到,我可以使用 AZURE_TAGS= 来利用部署计算机时创建的 Azure 标记,这样我就可以使用 playbook 来仅影响我定义的那些标记的计算机。

Azure 文档:http://docs.ansible.com/ansible/latest/guide_azure.html

这个想法是在某些标记的机器上运行剧本来更新/修改其设置。就像针对静态 Ansible 主机文件中定义的组运行一样。

也许我这一切都错了,这不是我能做的,或者也许是,但在我的一生中,我找不到任何人在剧本中使用 azure_tags= 的例子。我不知道即使它是在剧本中定义的,或者它是一个参数。

以此为指导,第 12 步:http://codeheaven.io/15-things-you-should-know-about-ansible/

我可以看到这个人如何利用主机参数中的标签选项,并且我已经这样做了,但是在检查动态 list 时尚未找到该机器。

任何人都可以引导我走向正确的方向,或者更好的是,给我一个这些标签系统如何工作的示例吗?

最佳答案

对于任何关心或像我一样被困的人,这就是答案。

以下示例不是运行 playbook,而是针对与给定主机选择匹配的主机运行 Ansible ping 命令。

选择 Azure 订阅中的所有 VM:

ansible azure -i ./azure_rm.py -m win_ping

选择给定区域/位置名称中的所有虚拟机(我们在 ukwest 和 uksouth 拥有主机 - 取自之前创建的资源组):

ansible ukwest -i ./azure_rm.py -m win_ping 

选择所有将名为 ServerRole 的标记设置为值 WebServer 的虚拟机

ansible ServerRole_WebServer -i ./azure_rm.py -m win_ping

部署虚拟机时,我使用了某些标签来识别它们,下面是针对“AnsibleVM1”的“displayName”标签使用剧本的示例

# Run post build scripts on machines taggedd with AnsibleVM1 from commad line variable with "{{ hosts }}"
# ansible-playbook scripts.yml -i azure_rm.py --extra-vars "hosts=displayName_AnsibleVM1" --ask-vault-pass

- hosts: "{{ hosts }}"
gather_facts: no

vars_files:
- ./vars/vault.yml
- ./vars/vars.yml

tasks:
- include_vars: vault.yml
- name: formatDataDisk script
script: ./files/formatDataDisk.ps1

- name: prepMachine script
script: ./files/prepMachine.ps1

- name: Reboot machine to apply scripts
win_reboot:

这是我用来运行它的命令行。请注意,该变量包含在命令行中,因此我可以即时更改名称:

ansible-playbook scripts.yml -i azure_rm.py --extra-vars "hosts=displayName_AnsibleVM1" --ask-vault-pass

关于azure - 在 Ansible 中使用 Azure 标签作为 playbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46692676/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com