我已經接管了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'中,大多數發行版都默認包含這個行... –