Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible playbook不更改文件,但返回成功_Ansible_Ansible Playbook - Fatal编程技术网

Ansible playbook不更改文件,但返回成功

Ansible 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

我正在使用ansible在25台服务器上禁用selinux

- 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