Я взял на себя сервер 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» и иметь возможность войти на сервер с этим идентификатором, а затем такие sudo-ish вещи, как «apt -получить установку". Моя игровая книга выглядит так:
---
- 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 без запроса пароля. Как это делается?