Ansible 中的条件处理程序
Conditional Handler within Ansible
我们使用在处理程序上重新启动 sshd 的用户模块,但这仅在服务器为 Ubuntu16 时有效。
我正试图像这样超越它:
- name: Set SSH/SSHD service
include_vars:
ssh_service: "sshd"
when: ( ansible_distribution_version == "16.04" ) and ( ansible_distribution == "Ubuntu" )
- name: Set SSH/SSHD service
include_vars:
ssh_service: "ssh"
when: ( ansible_distribution_version == "14.04" ) and ( ansible_distribution == "Ubuntu" )
但是这返回了有关调试的错误:
fatal: [172.48.0.146]: FAILED! => {"failed": true, "msg": "ssh_service is not a valid option in debug"}
处理程序如下:
- name: restart_sshd
service: name="{{ ssh_service }}"
state=restarted
有没有一个简洁的方法来做到这一点?我不想通过 groupvars 指定它。
根据:
https://fossies.org/linux/ansible/lib/ansible/plugins/action/include_vars.py
我没有按设计使用 include_vars,它需要一个文件。
我可以用set_fact
代替:
- name: Set SSH/SSHD service
set_fact:
ssh_service: "sshd"
when: ( ansible_distribution_version == "16.04" ) and ( ansible_distribution == "Ubuntu" )
我们使用在处理程序上重新启动 sshd 的用户模块,但这仅在服务器为 Ubuntu16 时有效。
我正试图像这样超越它:
- name: Set SSH/SSHD service
include_vars:
ssh_service: "sshd"
when: ( ansible_distribution_version == "16.04" ) and ( ansible_distribution == "Ubuntu" )
- name: Set SSH/SSHD service
include_vars:
ssh_service: "ssh"
when: ( ansible_distribution_version == "14.04" ) and ( ansible_distribution == "Ubuntu" )
但是这返回了有关调试的错误:
fatal: [172.48.0.146]: FAILED! => {"failed": true, "msg": "ssh_service is not a valid option in debug"}
处理程序如下:
- name: restart_sshd
service: name="{{ ssh_service }}"
state=restarted
有没有一个简洁的方法来做到这一点?我不想通过 groupvars 指定它。
根据:
https://fossies.org/linux/ansible/lib/ansible/plugins/action/include_vars.py
我没有按设计使用 include_vars,它需要一个文件。
我可以用set_fact
代替:
- name: Set SSH/SSHD service
set_fact:
ssh_service: "sshd"
when: ( ansible_distribution_version == "16.04" ) and ( ansible_distribution == "Ubuntu" )