ansible 命令 with_items

ansible 命令 with_items

在 ansible 1.5.4 中,以下命令可以完美运行:

- name: Generate postfix dhparams
  command: "{{ item }}"
  with_items:
    - openssl gendh -out /etc/postfix/dh_512.pem -2 512 creates=/etc/postfix/dh_512.pem
    - openssl gendh -out /etc/postfix/dh_2048.pem -2 2048 creates=/etc/postfix/dh_2048.pem
  notify: Reload postfix

升级到 1.9.1 后,命令失败并出现fatal: [127.0.0.1] => A variable inserted a new parameter into the module args. Be sure to quote variables if they contain equal signs (for example: "{{var}}").错误。

因为{{ item }}已经是引用了,所以不知道哪里出了问题。

我怎样才能使这个命令再次起作用?

答案1

看一下https://github.com/ansible/ansible/issues/8260了解为什么进行此行为更改的详细信息(以防止在命令模块中注入其他参数)。以下格式应该有效:

- name: Generate postfix dhparams
  command: "{{ item.command }} creates={{ item.file}}"
  with_items:
    - { command: 'openssl gendh -out /etc/postfix/dh_512.pem -2 512', file: '/etc/postfix/dh_512.pem' }
    - { command: 'openssl gendh -out /etc/postfix/dh_2048.pem -2 2048', file: '/etc/postfix/dh_2048.pem' }
  notify: Reload postfix

相关内容