在 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