相关疑难解决方法(0)

使用 --become for ansible_connection=local

使用个人用户帐户 (userx),我在所有指定的主机上运行 ansible playbook。在 ansible.cfg 中,要使用的远程用户(可以成为 root)是:

remote_user = ansible
Run Code Online (Sandbox Code Playgroud)

对于远程主机,这一切正常。它以用户 Ansible 的身份连接,并根据需要执行所有任务,同时更改/etc/ssh/sshd_config需要 root 权限的信息(如)。

但现在我也想在 Ansible 主机上执行剧本。我将以下内容放入我的库存文件中:

localhost ansible_connection=local
Run Code Online (Sandbox Code Playgroud)

现在确实在本地主机上执行。但是作为userx,这会导致它需要执行的某些任务“拒绝访问”。

这当然在某种程度上是预料之中的,因为 remote_user 讲述了一些关于remote 的信息,而不是本地用户。但是,我仍然希望剧本也能--become在本地以 root 身份执行任务(例如sudo su -)。似乎没有这样做。

运行剧本--become -vvv告诉我

<localhost> ESTABLISH LOCAL CONNECTION FOR USER: userx
Run Code Online (Sandbox Code Playgroud)

并且似乎不会尝试使用 sudo 执行任务。如果不使用 sudo,任务就会失败。

我如何告诉 ansible 在本地连接上也使用 sudo / become ?

ansible ansible-inventory

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

ansible ×1

ansible-inventory ×1