Я взял сервер Ubuntu 14.04. У него есть пользователь, называемый "развертыватель" (используется с capistrano), и поэтому ему нужны привилегии sudo. С помощью этой настройки я могу войти на сервер и сделать что-то вроде:
workstation> ssh [email protected]
myserver> sudo apt-get install git
myserver> exit
workstation>
Я пытаюсь выяснить, как использовать Ansible (версия 2.0.2.0 и python 2.7.3) для создания пользователя, называемого "развертыватель" , и иметь возможность входа на сервер с этим идентификатором, а затем так судо-иш-вещи как "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 deployer @myserver), но если я запустил команду sudo, она всегда запрашивает у меня пароль sudo.
Я понимаю, что пользователь "развертывателя" в конечном итоге должен найти свой путь в файле пользователей visudo, но я не могу понять, какие магические заклинания Ansible вызываются, чтобы я мог ssh войти в машину в качестве развертывателя, а затем запустить команду sudo (например, sudo apt-get install git ") без запроса пароля sudo.
Я искал высокий и низкий, и я не могу найти фрагмент плеера Ansible, который помещает пользователя "развертыватель" в группу sudo, не требуя пароля. Как это делается?