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

Adi*_*hya 6 sudo ssh-keys ansible-playbook

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

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

有人可以帮我定义这个场景的hosts文件.

我当前的hosts文件是这样的:

[webserver]
web-01 ansible_ssh_host=192.168.0.11 ansible_ssh_user=root
Run Code Online (Sandbox Code Playgroud)

谢谢,

Arb*_*zar 9

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

[webserver]
web-01 ansible_ssh_host=192.168.0.11 ansible_ssh_user=USERNAME ansible_ssh_private_key_file=/secure/mykey
Run Code Online (Sandbox Code Playgroud)

但是请在你的剧本中制作sudo:真如下:

  ---
   - hosts: webserver
     sudo: True 
     remote_user: USERNAME
     gather_facts: True
     # Run these tasks  
     tasks:
       - name: Run this task.....
Run Code Online (Sandbox Code Playgroud)

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

USERNAME ALL=(ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)

请在最后一行之后添加此行

#includedir /etc/sudoers.d
Run Code Online (Sandbox Code Playgroud)

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

# Members of the admin group may gain root privileges
%sudo   ALL=(ALL:ALL) NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)