Ansible playbook循环控制流
我有一个剧本,检查6个jenkins服务器的已安装插件列表 这是主机文件:Ansible playbook循环控制流,ansible,Ansible,我有一个剧本,检查6个jenkins服务器的已安装插件列表 这是主机文件: [masters] server1 server2 server3 server4 server5 server6 以下是playbook中处理获取已安装插件列表的任务: - name: Obtaining a list of Jenkins Plugins jenkins_script: script: 'println(Jenkins.instance.pluginManager.plugins)
[masters]
server1
server2
server3
server4
server5
server6
以下是playbook中处理获取已安装插件列表的任务:
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: "{{ item }}"
user: 'admin'
password: 'password'
with_items:
- 'url1'
- 'url2'
- 'url3'
- 'url4'
- 'url5'
- 'url6'
这运行得非常好,但打印出36个已安装插件列表,而不是6个。似乎playbook正在为每个主机插入每个url,但是我对ansible是个新手,所以有人知道如何解决这个问题吗?如果您有六台名为server1-server6的Jenkins服务器,则无需进行循环。只需启动jenkins_脚本任务,并设置主机模式以在每台服务器上运行此任务:
---
- hosts: server*
tasks:
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: 'http://{{ inventory_hostname }}:8080/'
user: 'admin'
password: 'password'
这将在每台服务器上执行一次任务