以用户身份通过​​ Ansible ssh 执行并拥有 root 权限(期望类似)

以用户身份通过​​ Ansible ssh 执行并拥有 root 权限(期望类似)

我必须管理大量主机,其中只有一个用户能够从 SSH 访问(我们称他为 foo),然后必须以 root 身份登录才能执行特权命令。

Foo 用户没有任何 sudo 权限,因此我被迫以 root 身份登录才能执行特权命令。我实际上正在使用 expect 脚本来完成这项工作(以 foo 身份通过 ssh 登录,通过 su 以 root 身份登录),并且我想切换到 Ansible。我知道我可以创建一个新用户并授予他 sudo 权限,或者基本上将 sudo 权限授予 foo,但是是否可以使用 Ansible 执行与使用 expect 相同的操作?

我想以 foo 身份进行 ssh 连接,然后以 root 身份执行 playbook 或任何类型的临时命令。我在 Ansible 文档中找不到有关此内容的任何信息,因此我在这里询问是否有人已经进行过此类询问。

答案1

通过ansible,您可以使用sudosu

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami

您也可以从命令行执行此操作:

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml

此功能自此请求请求,目前存在于版本 1.6.6 中。

相关内容