ansible 使用shell模块,批量关闭节点的selinux 并验证关闭成功代码
时间: 2024-09-18 14:17:14 浏览: 68
在Ansible中,如果你想使用`shell`模块批量关闭Selinux并验证其状态,首先需要确保目标系统支持bash shell,并且允许通过SSH执行shell脚本。以下是一个基本的任务示例,该任务会在目标节点上执行shell命令关闭Selinux并检查新状态:
```yaml
- name: 关闭Selinux并验证
hosts: your_target_hosts
become: yes
tasks:
- name: 关闭Selinux
shell: |
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/g' /etc/selinux/config
systemctl restart selinux.service
- name: 验证Selinux状态
shell: cat /etc/selinux/config | grep SELINUX
register: selinux_status
changed_when: selinux_status.stdout == "SELINUX=disabled\n"
failed_when: "'enforcing' in selinux_status.stdout"
- debug:
msg: "Selinux已关闭: {{ selinux_status.stdout }}"
```
在这个例子中:
- `setenforce 0` 命令将临时禁用SELinux。
- `sed` 命令修改 `/etc/selinux/config` 文件,使其永久禁用。
- `systemctl restart selinux.service` 重启Selinux服务以应用更改。
- `grep` 命令检查 `/etc/selinux/config` 文件内容,确认状态是否为 `disabled`。
- `changed_when` 和 `failed_when` 设置了验证条件。
请替换`your_target_hosts`为你的目标节点列表。在执行前,确保目标系统已经启用了sudo或类似权限管理机制。
阅读全文