我正在使用下面的剧本来检查SELinux状态。我想进一步做的是,如果状态没有被禁用,在同一个剧本中,我需要做出禁用SELinux状态的改变。
tasks:
- name: To check SELinux status
shell: getenforce
register: result
- set_fact: selinux_status_output="{{ result.stdout }}"
- debug: var=selinux_status_output
你可以使用selinux模块
- name: Disable SELinux
selinux:
state: disabled
请看。selinux模块
编辑。你不需要检查状态是否被禁用。Ansible会检查selinux的状态,只有当它没有被禁用时,它才会尝试改变状态。
你可能想检查声明式和命令式模型的区别。
我还不能评论,但正如 Yabberth 所说,你可以直接使用 selinux
模块。当你运行这个游戏的时候,只有系统在变化的状态下才不会被设置为禁用。如果状态已经被禁用,ansible将不去管它,而是继续下一个任务。
如果你使用 shell
模块先进行检查,你总是能看到变化的状态,因为它将其注册到作业流中。如果你先运行检查检查,然后再更改,考虑到你的 selinux
模块将做你所要求的IMO。