您好我已经为Ansible编写了一本剧本来安装一些应用程序。我遇到了麻烦,因为我必须以root身份运行所有东西,这不是一个好主意。
所以我创建了一个sudo用户并创建了一个用于身份验证的私钥。
有人可以帮我定义这种情况的主机文件。
我当前的主机文件是这样的:
[webserver]
web-01 ansible_ssh_host=192.168.0.11 ansible_ssh_user=root
谢谢,
答案 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