您可以使用 vars 定义变量吗:在 ansible 脚本的中途
Can you define a variable using vars: halfway through an ansible script
我正在尝试创建一个 ansible 脚本,它会询问用户那里的 address/domain NTP 服务器的名称,然后将它们保存到列表中。
---
- name: Chrony Service Setup
hosts: localhost
vars:
ntpServers: []
tasks:
- name: "Ask user if they wish to add there own NTP servers"
pause:
prompt: "Do you want to add unique NTP server (y/n)?"
register: result
- set_fact:
addNTP: "{{ result.user_input }}"
- block:
- name:
debug:
msg: "Hello"
vars:
ntpServer: "initVal"
- block:
- name:
debug:
msg: "Hello 2"
when: ntpServer != ""
when: addNTP == "y"
目前脚本应该不断地打印出“Hello 2”,因为永远不会满足该块中的 when。
我实际上得到了这个错误:
Syntax Error while loading YAML.
did not find expected key
...
On line 25 -block:
我是 ansible 的新手,所以我想知道您是否不能在脚本中途定义变量。
感谢任何帮助。
你不能把它放在那样的列表中间;像 when:
vars:
是整个字典的一部分,而不是 block:
.
下列表的一部分
在样式说明中,我发现将 when
之类的键放在 block
之前而不是之后更易读;它需要更少的缩进级别的视觉匹配,并使逻辑更容易理解。
- name: Chrony Service Setup
hosts: localhost
vars:
ntpServers: []
addNTP: "{{ result.user_input }}"
tasks:
- name: Prompt for NTP server
pause:
prompt: "Do you want to add unique NTP server (y/n)?"
register: result
- when: addNTP == "y"
vars:
ntpServer: initVal
block:
- name:
debug:
msg: "Hello"
- when: ntpServer != ""
block:
- name:
debug:
msg: "Hello 2"
我正在尝试创建一个 ansible 脚本,它会询问用户那里的 address/domain NTP 服务器的名称,然后将它们保存到列表中。
---
- name: Chrony Service Setup
hosts: localhost
vars:
ntpServers: []
tasks:
- name: "Ask user if they wish to add there own NTP servers"
pause:
prompt: "Do you want to add unique NTP server (y/n)?"
register: result
- set_fact:
addNTP: "{{ result.user_input }}"
- block:
- name:
debug:
msg: "Hello"
vars:
ntpServer: "initVal"
- block:
- name:
debug:
msg: "Hello 2"
when: ntpServer != ""
when: addNTP == "y"
目前脚本应该不断地打印出“Hello 2”,因为永远不会满足该块中的 when。
我实际上得到了这个错误:
Syntax Error while loading YAML.
did not find expected key
...
On line 25 -block:
我是 ansible 的新手,所以我想知道您是否不能在脚本中途定义变量。
感谢任何帮助。
你不能把它放在那样的列表中间;像 when:
vars:
是整个字典的一部分,而不是 block:
.
在样式说明中,我发现将 when
之类的键放在 block
之前而不是之后更易读;它需要更少的缩进级别的视觉匹配,并使逻辑更容易理解。
- name: Chrony Service Setup
hosts: localhost
vars:
ntpServers: []
addNTP: "{{ result.user_input }}"
tasks:
- name: Prompt for NTP server
pause:
prompt: "Do you want to add unique NTP server (y/n)?"
register: result
- when: addNTP == "y"
vars:
ntpServer: initVal
block:
- name:
debug:
msg: "Hello"
- when: ntpServer != ""
block:
- name:
debug:
msg: "Hello 2"