使用 lineinfile 的 Ansible 循环

Eva*_*oll 2 ansible

我在一个非常简单的游戏中遇到了错误,

- name: add to environment                                                          
  lineinfile:                                                                       
    path: /etc/environment                                                          
    line: "{{ item }}"                                                              
    loop:                                                                           
      - "foo=1"                                                                     
      - "bar=2"
Run Code Online (Sandbox Code Playgroud)

我只想将这些行添加到该文件(如果它们不存在)。我得到的错误是,

致命:[10.1.38.15]:失败!=> {“msg”:“该任务包含一个带有未定义变量的选项。错误是:'item'未定义\n\n错误似乎位于'/home/ecarroll/cp/ansible/roles/sandbox /tasks/main.yml': 第 6 行,第 3 列,但\n可能位于文件中的其他位置,具体取决于确切的语法问题。\n\n有问题的行似乎是:\n\n dest: /\n- name : 添加到环境\n ^ 此处\n"}

lar*_*sks 6

您的指令缩进错误loop。这不是一个论点lineinfile;这是一个任务设置:

- name: add to environment                                                          
  lineinfile:                                                                       
    path: /etc/environment                                                          
    line: "{{ item }}"                                                              
  loop:                                                                           
    - "foo=1"                                                                     
    - "bar=2"
Run Code Online (Sandbox Code Playgroud)