Ansible使用私钥和sudo用户进行主机配置

时间:2014-12-09 08:11:18

标签: sudo ssh-keys ansible-playbook

您好我已经为Ansible编写了一本剧本来安装一些应用程序。我遇到了麻烦,因为我必须以root身份运行所有东西,这不是一个好主意。

所以我创建了一个sudo用户并创建了一个用于身份验证的私钥。

有人可以帮我定义这种情况的主机文件。

我当前的主机文件是这样的:

[webserver]
web-01 ansible_ssh_host=192.168.0.11 ansible_ssh_user=root

谢谢,

1 个答案:

答案 0 :(得分:9)

您的新主机文件将如下所示:

[webserver]
web-01 ansible_ssh_host=192.168.0.11 ansible_ssh_user=USERNAME ansible_ssh_private_key_file=/secure/mykey

但是请在你的剧本中加上 sudo:True

  ---
   - hosts: webserver
     sudo: True 
     remote_user: USERNAME
     gather_facts: True
     # Run these tasks  
     tasks:
       - name: Run this task.....

一个重要的事情你的sudo用户应该密码少,为了实现你应该编辑你的sudoer文件。 如果您使用的是CentOS,请编辑/ etc / sudoers文件并添加以下行

USERNAME ALL=(ALL) NOPASSWD: ALL

请在最后一行

之后添加此行
#includedir /etc/sudoers.d

如果您使用的是Ubuntu,请使用 visudo 命令查找并编辑以下行:

# Members of the admin group may gain root privileges
%sudo   ALL=(ALL:ALL) NOPASSWD: ALL