将变量写入本地文件

时间:2019-05-08 21:34:32

标签: ansible

我有以下一个有趣的剧本,将变量“ 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

我想知道如何将变量正确地写入文件

1 个答案:

答案 0 :(得分:0)

这是一个简单的语法错误。
任务是任务列表中的一项,在YAML中由-(破折号)指定。
任务名称在Ansible中是可选的。
copydebug都是模块,应该被认为是任务的“动作”。
错误消息告诉您,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 }}"