【发布时间】:2017-02-27 17:14:25
【问题描述】:
我有以下剧本,可以打印出安装在三个 jenkins 服务器上的插件列表:
---
- hosts: all
remote_user: user
tasks:
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: 'http://server1.usa.com:8080/'
user: 'admin'
password: 'password'
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: 'http://server2.usa.com:8080/'
user: 'admin'
password: 'password'
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: 'http://server3.usa.com:8080/'
user: 'admin'
password: 'password'
但是,这显然不是最有效的方法。我查看了 ansible playbooks 中的循环和变量——但我似乎在绕圈子。这是我目前所拥有的:
- name: Obtaining a list of Jenkins Plugins
jenkins_script:
script: 'println(Jenkins.instance.pluginManager.plugins)'
url: {{ item }}
with_items:
- 'http://server1.usa.com:8080/'
- 'http://server2.usa.com:8080/'
- 'http://server3.usa.com:8080/'
user: 'admin'
password: 'password'
这是错误信息:
fatal: [server]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'item' is undefined\n\nThe error appears to have been in '/home/user/varspb.yml': line 5, column 9, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n tasks:\n - name: Obtaining a list of Jenkins Plugins\n ^ here\n"}
我确定这是一个简单的错误,但有人知道我哪里出错了吗?
【问题讨论】:
-
请更正示例中的缩进并发布 Ansible 给您的错误消息,它应该会有所帮助。
-
@KonstantinSuvorov 进行了更改
-
奇怪,你应该有
syntax error和未引用的{{ item }}。但是这个确切的消息是由错误的with_items:缩进引起的——应该与模块名称在同一级别。
标签: ansible