无法在 GCE 中使用 ansible 成为不同的 sudo 用户
Not able to become a different sudo user using ansible in GCE
- 我有两个 GCE 实例(比如 node1、node2)。
- 我已经在 node1 中安装了 ansible 并且是 运行 在 node2 中启动服务的脚本。
- SSH 作为 root 在 GCE 实例中被禁用,所以我在 node1 中创建了一个单独的用户 (devops),运行 脚本作为 devops 用户。
- 两个实例都没有设置root密码,所以我能够成为root用户并成功执行whoami命令。
- 但是当我在创建一个单独的用户后尝试相同时它要求 "sudo: a password is required" 但没有设置 root 用户密码。
我尝试过的示例 ansible 剧本
https://gist.github.com/pavananms/a7a99a8b1f50ea3ab70e8dddbf4cb56c
我运行上面的脚本为
ansible-剧本test.yml
如果您不希望密码变成 app_user,您需要将此行添加到 /etc/sudoers 文件中:
app_user ALL=(ALL:ALL) ALL
但是如果你在这里看到我的测试用例:
https://gist.github.com/sherlockholmes/63607e10457d260c5d7c61bfc1f74fad
密码是第一个用户的密码,在我的例子中是 vagrant 用户。您可以将此密码作为额外变量传递。
--extra-vars='ansible_become_pass=4nsible'
如果您使用 devops
用户进行 ansible ssh 登录并尝试成为 sudo,则将以下条目添加到 target/remote 服务器上的 /etc/sudoers
文件。
devops ALL=(ALL) NOPASSWD:ALL
在命令中以纯文本形式传递任何密码对于 env 来说是有风险的,要传递 ansible 剧本或命令始终使用 ansible vault.
- 我有两个 GCE 实例(比如 node1、node2)。
- 我已经在 node1 中安装了 ansible 并且是 运行 在 node2 中启动服务的脚本。
- SSH 作为 root 在 GCE 实例中被禁用,所以我在 node1 中创建了一个单独的用户 (devops),运行 脚本作为 devops 用户。
- 两个实例都没有设置root密码,所以我能够成为root用户并成功执行whoami命令。
- 但是当我在创建一个单独的用户后尝试相同时它要求 "sudo: a password is required" 但没有设置 root 用户密码。
我尝试过的示例 ansible 剧本
https://gist.github.com/pavananms/a7a99a8b1f50ea3ab70e8dddbf4cb56c
我运行上面的脚本为
ansible-剧本test.yml
如果您不希望密码变成 app_user,您需要将此行添加到 /etc/sudoers 文件中:
app_user ALL=(ALL:ALL) ALL
但是如果你在这里看到我的测试用例:
https://gist.github.com/sherlockholmes/63607e10457d260c5d7c61bfc1f74fad
密码是第一个用户的密码,在我的例子中是 vagrant 用户。您可以将此密码作为额外变量传递。
--extra-vars='ansible_become_pass=4nsible'
如果您使用 devops
用户进行 ansible ssh 登录并尝试成为 sudo,则将以下条目添加到 target/remote 服务器上的 /etc/sudoers
文件。
devops ALL=(ALL) NOPASSWD:ALL
在命令中以纯文本形式传递任何密码对于 env 来说是有风险的,要传递 ansible 剧本或命令始终使用 ansible vault.