我接管了一个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”之类的 sudo 命令。我的 Playbook 如下:
---
- 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
在运行此playbook之后,我可以使用“deployer”作为用户名通过ssh登录到机器上(例如ssh deployer@myserver),但是如果我运行sudo命令,则始终要求我输入sudo密码。我知道“deployer”用户最终必须进入visudo用户文件,但我无法找出哪些神奇的Ansible咒语可以调用,以便我可以使用deployer作为用户名通过ssh登录到机器,然后运行sudo命令(例如sudo apt-get install git),而不需要提示sudo密码。我已经四处搜索,但似乎找不到将用户“deployer”添加到sudo组中而又不需要密码的Ansible playbook片段。请问如何实现?