1
如何设置Ansible块变量(仅可见于块中的任务)?Ansible块变量
我想:
---
- hosts: test
tasks:
- block:
- name: task 1
shell: "echo {{item}}"
with_items:
- one
- two
,但它似乎是一个错误的方式。
如何设置Ansible块变量(仅可见于块中的任务)?Ansible块变量
我想:
---
- hosts: test
tasks:
- block:
- name: task 1
shell: "echo {{item}}"
with_items:
- one
- two
,但它似乎是一个错误的方式。
如果要定义一个变量为一个块:
- block:
- debug:
var: var_for_block
vars:
var_for_block: "value for var_for_block"
如果要“遍历块”为您的代码表明 - 你不能。它在Ansible中没有实现。 按照this thread。
现在考虑将任务保存到单独的文件并使用include
来代替。
@ Shasha99 你也许可以包括与块的文件,所以你仍然可以从try/catch语句
includeFile.yml受益:
- block
- name: Finding the package.
shell: rpm -qa | grep "{{pkgName}}"
register: package
- name: Uninstalling the package.
shell: rpm -e "{{package}}"
always:
- debug: msg="this always executes"
为主。 yml:
---
- hosts: all
vars:
- packageList : ["pkg1","pkg2","pkg3","pkg4"]
tasks:
- include: includeFile.yml pkgName="{{item}}"
with_items: packageList
所以在段落“变量优先级:我应该把变量放在哪里?”燕麦http://docs.ansible.com/ansible/playbooks_variables.html - 有项目“块瓦斯(只限于任务块)”,问题是“它是什么?” – itiic
好的,我尝试阻止瓦尔斯 - 莫名其妙 - 但我真的不知道如何声明它们? – itiic
你是正确的,thx,我已经尝试过,但我把var放在块的开头,并且该语法不起作用。 – itiic