我必须管理大量主机,其中只有一个用户能够从SSH访问(让我们称之为foo),然后必须以root身份登录才能执行特权命令.
Foo用户没有任何sudo权限,所以我被迫以root身份登录以执行特权命令.我实际上正在使用expect脚本来完成这项工作(ssh登录为foo,通过su以root身份登录),我想切换到Ansible.我知道我可以创建一个新用户并给予他sudo权限或者基本上给予foo sudo权限但是有可能做同样的事情我正在做与期待的Ansible吗?
我想将ssh连接作为foo,然后以root身份执行playbooks或任何类型的adhoc命令.我没有在Ansible文档中找到任何有关这方面的信息,所以我在这里问是否有人已经进行了这种审讯.
解决方法
使用ansible,您可以使用sudo或su:
- 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
此功能自this pull request起可用,目前在1.6.6中.