在Azure DevOps发布管道部署作业中指定VM运行Ansible Playbook
问题:Azure DevOps部署作业中能否指定单台VM运行Ansible Playbook?
当前使用Azure DevOps发布管道及部署作业,运行Ansible Playbook时同一部署组内的所有VM会同时执行脚本,需要指定具体某台VM来运行脚本,询问是否可实现该需求。
现有Ansible命令及配置
Ansible命令
ansible-playbook -i provisionAdmin.yml
provisionAdmin.yml配置
- hosts: cron user: root roles: - admin - analytics
实现方案
可以实现,提供三种常用方法:
方法1:Azure DevOps部署作业层面指定目标
在Azure DevOps的部署作业配置中,找到部署组的「目标机器」设置,选择「特定机器」,输入目标VM的名称或关联标签。部署作业会仅在指定VM上执行,Ansible Playbook也随之在该VM运行。
方法2:通过Ansible命令参数指定目标
修改Ansible命令,添加--limit参数指定具体主机:
ansible-playbook -i provisionAdmin.yml --limit "目标VM主机名或IP"
注:这里的「目标VM主机名或IP」需要和你的Ansible inventory中定义的主机标识一致。
方法3:临时修改Playbook的hosts字段
直接修改provisionAdmin.yml中的hosts值为目标VM的主机名/IP:
- hosts: 目标VM主机名或IP user: root roles: - admin - analytics
此方法适合临时单次执行,灵活性较低。
内容的提问来源于stack exchange,提问作者Johnason ham
相关产品推荐
相关产品推荐

