作为用户和执行者的Ansible ssh具有root(期望像)


8

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

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

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

Answers:


13

使用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中存在。


1
谢谢。您如何为每个主机使用不同的su密码?ansible_su_pass不存在
Arka

您是否找到了选择安素通票的方法?
jeremieca 2015年

从1.9.4版开始,每个主机都不能使用不同的密码。您可以使用不同的ssh键。
bschlueter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.