Ansible playbook不更改文件,但返回成功
我正在使用ansible在25台服务器上禁用selinuxAnsible playbook不更改文件,但返回成功,ansible,ansible-playbook,Ansible,Ansible Playbook,我正在使用ansible在25台服务器上禁用selinux - name: disable selinux selinux: state=disabled SERWER是在主机文件中定义的,我正在用 ansible-playbook -v -i hosts ansible/server-prepare.yml 输出如下所示: GATHERING FACTS *************************************************************** ok
- name: disable selinux
selinux: state=disabled
SERWER是在主机文件中定义的,我正在用
ansible-playbook -v -i hosts ansible/server-prepare.yml
输出如下所示:
GATHERING FACTS ***************************************************************
ok: [10.0.0.10]
(... other servers ...)
TASK: [prepare | disable selinux] *********************************************
changed: [10.0.0.10] => {"changed": true, "configfile": "/etc/selinux/config", "msg": "state change will take effect next reboot", "policy": "targeted", "state": "disabled"}
(... other servers ...)
但是,主机10.0.0.10上的配置文件中的值没有更改:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
我知道,配置文件更改后需要重新启动,但配置文件根本没有更改。
对于playbook中的所有命令,ansible返回成功,但是没有效果
目前,我只尝试将-v
添加到ansible playbook
命令中。我有其他的选项来调试这个吗?我正在使用ansible playbook 1.9.2进行测试,我添加了:
connection: local
这导致对本地主机进行了更改,即使ansible报告在其他IP上运行。我知道这个问题已经解决,但仍然值得回答以供将来参考 当在
~/.ansible.cfg
中将控制路径
变量设置为无效的非唯一值时,也会出现类似情况,例如
control_path=%(directory)s/%%r
Ansible然后从任何主机获得第一个成功响应,并将其作为结果打印到其他每台主机,从而提供误报。我想这是因为ansible套接字不再是唯一的了
如果由于长度限制需要将控制路径
更改为较短路径,请使用:
control_path=%(directory)s/%%C
%%C
是%%h-%%p-%%r