我有以下一个有趣的剧本,将变量“ hello”的内容作为消息编写(我从在线示例中获取了此代码)。我尝试对其进行修改,以便将其写入本地文件,但是出现错误。修改后的代码和错误消息如下:
原始代码(成功):
- hosts: all
vars:
hello: world
tasks:
- name: Ansible Basic Variable Example
debug:
msg: "{{ hello }}"
修改后的代码(失败):
- hosts: all
vars:
hello: world
tasks:
- name: Ansible Basic Variable Example
- local_action: copy content={{hello}} dest=~/ansible_logfile
debug:
msg: "{{ hello }}"
错误消息:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
The error appears to have been in '/space/mathewLewis/towerCodeDeploy/playBooks/test.yml': line 5, column 5, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
tasks:
- name: Ansible Basic Variable Example
^ here
我想知道如何将变量正确地写入文件
答案 0 :(得分:0)
这是一个简单的语法错误。
任务是任务列表中的一项,在YAML中由-
(破折号)指定。
任务名称在Ansible中是可选的。
copy
和debug
都是模块,应该被认为是任务的“动作”。
错误消息告诉您,name: Ansible Basic Variable Example
任务没有动作,这是因为您的local_action
是一个单独的任务,由-
表示。
使用适当的名称来完成任务的示例:
- name: Write variable to file
local_action: copy content="{{hello}}" dest=~/ansible_logfile
- name: Output the variable
debug:
msg: "{{ hello }}"