无法在GCE中成为使用ansible的不同sudo用户

时间:2016-04-04 15:36:02

标签: ansible ansible-2.x

  • 我有两个GCE实例(比如node1,node2)。
  • 我已在node1中安装了ansible,并且正在运行脚本以在node2中启动服务。
  • 在GCE实例中禁用了作为root的SSH,因此我在node1中创建了一个单独的用户(devops)并将该脚本作为devops用户运行。
  • 两个实例中都没有设置root密码,因此我可以成为root用户并成功执行whoami命令。
  • 但是当我在创建一个单独的用户后尝试相同时,它会询问“sudo:需要密码”,但没有设置root用户密码。

我试过的样本ansible playbook

https://gist.github.com/pavananms/a7a99a8b1f50ea3ab70e8dddbf4cb56c

我正在运行上面的脚本作为
ansible-playbook test.yml

2 个答案:

答案 0 :(得分:1)

如果您不想要密码转到app_user,则需要将此行添加到/ etc / sudoers文件中:

app_user        ALL=(ALL:ALL) ALL

但如果你在这里看到我的测试用例:

https://gist.github.com/sherlockholmes/63607e10457d260c5d7c61bfc1f74fad

密码是firt用户,在我的情况下是vagrant用户。您可以将此密码作为额外变量传递。

--extra-vars='ansible_become_pass=4nsible'

答案 1 :(得分:0)

如果您使用devops用户进行ssh登录并尝试成为sudo,则将以下条目添加到目标/远程服务器上的/etc/sudoers文件中。

devops ALL=(ALL) NOPASSWD:ALL

将命令中的任何密码以纯文本格式传递给env都是有风险的,要传递ansible剧本或命令,请始终使用 ansible Vault