Ansible ssh 作为用户并执行具有 root(期望)

Ark*_*rka 8 root sudo expect ansible

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

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

我想以 foo 身份进行 ssh 连接,然后以 root 身份执行剧本或任何类型的临时命令。我在 Ansible 文档中没有找到任何关于此的信息,所以我在这里询问是否有人已经接受过这种审讯。

daw*_*wud 13

使用ansible,您可以使用sudosu

- hosts: example.com
  gather_facts: False
  su: yes
  su_user: root
  tasks:
    - shell: whoami
Run Code Online (Sandbox Code Playgroud)

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

ansible-playbook --su --su-user=root --ask-su-pass playbook.yml
Run Code Online (Sandbox Code Playgroud)

此功能自此拉取请求以来一直可用,并存在于当前 1.6.6 中。