我已经接管了Ubuntu 14.04服务器。它有一个名为“ deployer”的用户(与capistrano一起使用),因此,它需要sudo特权。通过此设置,我可以登录服务器并执行以下操作:
workstation> ssh deployer@myserver
myserver> sudo apt-get install git
myserver> exit
workstation>
我试图弄清楚如何使用Ansible(2.0.2.0版和python 2.7.3版)创建一个名为“ deployer”的用户,并能够使用该ID登录到服务器,然后使用诸如“ apt”之类的类似东西。 -get install”。我的剧本看起来像这样:
---
- hosts: example
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes
cache_valid_time: 3600
- group: name=sudo state=present
- name: Add deployer user and add it to sudo
user: name=deployer
state=present
createhome=yes
become: yes
become_method: "sudo"
- name: Set up authorized keys for the deployer user
authorized_key: user=deployer key="{{item}}"
with_file:
- /home/jaygodse/.ssh/id_rsa.pub
运行完此剧本后,我可以作为“部署者”(例如ssh deployer @ myserver)以ssh身份进入计算机,但如果运行sudo命令,它将始终要求我提供sudo密码。
我了解“部署者”用户最终必须找到进入visudo用户文件的方式,但是我无法弄清楚要调用哪个神奇的Ansible咒语,以便我可以作为部署者使用ssh进入计算机,然后运行sudo命令(例如sudo apt-get install git“),而不会提示您输入sudo密码。
我搜索了很多内容,但似乎找不到Ansible剧本片段,该片段可将用户“部署者”放入sudo组而无需密码。怎么做?