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

我尝试过的示例 ansible 剧本

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

我将上述脚本作为
ansible-playbook test.yml 运行

4

2 回答 2

1

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

app_user        ALL=(ALL:ALL) ALL

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

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

密码是第一个用户的,在我的例子中是 vagrant 用户。您可以将此密码作为额外变量传递。

--extra-vars='ansible_become_pass=4nsible'
于 2016-04-04T16:21:00.303 回答
0

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

devops ALL=(ALL) NOPASSWD:ALL

将命令中的任何密码作为纯文本传递对环境来说都是有风险的,传递 ansible playbook 或命令总是使用ansible vault

于 2018-12-26T06:14:22.430 回答