在config 中ansible启用后pipelinining,它会为所有任务重用 ssh 连接。
有时其中一项任务会更改当前用户的权限,例如将用户添加到组中,并且必须重新启动整个 playbook 才能应用这些权限。
具体来说,我在安装时遇到了这个问题docker,为了避免become: true容器化任务,我将当前用户添加到docker.
有没有办法在不重新启动剧本的情况下强制重新认证?
我知道可以覆盖ANSIBLE_SSH_PIPELINING=0整个剧本的环境变量,但它非常大 - 重新运行要快得多。
如果我们谈论将用户添加到组的具体问题,那么您可以在不退出的情况下重新加载组:
或专门针对您的情况:
对于 Ansible,这个技巧可能不起作用,在这种情况下,从 2.3 版开始,您可以告诉 Ansible重新建立连接: