我已经接管了Ubuntu 14.04服务器。它有一个叫做“部署者”(用于capistrano)的用户,因此它需要sudo权限。有了这个设置,我可以登录到服务器和做的东西,如:Ansible:使用sudo权限创建用户
workstation> ssh [email protected]
myserver> sudo apt-get install git
myserver> exit
workstation>
我试图找出如何使用Ansible(版本2.0.2.0和Python 2.7.3)创建一个用户名为“部署“并能够使用该ID登录到服务器,然后像sudo-ish那样的”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到机器的“部署”,(如SSH部署@ myserver的),但如果我运行sudo命令,它总是问我为我的sudo密码。
我知道“部署者”用户最终必须找到它进入visudo用户文件的方式,但我无法弄清楚要调用哪个神奇的Ansible咒语,以便我可以作为部署者ssh进入机器,然后运行sudo命令(例如sudo apt-get install git“),而不会提示你输入sudo密码。
我已经搜索了高和低,我似乎无法找到一个Ansible的剧本片段,把用户”部署者“如何做到这一点?
请在'lineinfile:'部分的末尾添加'validate:'visudo -cf%s''这一行,以便在保存之前进行验证。搞砸sudoers文件将永久锁定你sudo的访问权限。 –
自v1.9以来''key'参数'authorized_key' [接受密钥为字符串](http://docs.ansible.com/ansible/latest/authorized_key_module.html) – Tim
您也可以创建/复制文件在'/ etc/sudoers.d'中,大多数发行版都默认包含这个行... –