Ich habe einen Ubuntu 14.04 Server übernommen. Es hat einen Benutzer namens "Deployer" (wird mit Capistrano verwendet) und benötigt daher Sudo-Berechtigungen. Mit diesem Setup kann ich mich beim Server anmelden und Dinge tun wie:
workstation> ssh deployer@myserver
myserver> sudo apt-get install git
myserver> exit
workstation>
Ich versuche herauszufinden, wie man mit Ansible (Version 2.0.2.0 und Python 2.7.3) einen Benutzer namens "Deployer" erstellt und sich mit dieser ID beim Server anmeldet und dann so sudo-ish Dinge wie "apt" -get install ". Mein Spielbuch sieht so aus:
---
- 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
Nachdem ich dieses Playbook ausgeführt habe, kann ich als "Deployer" (z. B. ssh deployer @ myserver) auf den Computer ssh. Wenn ich jedoch einen sudo-Befehl ausführe, werde ich immer nach meinem sudo-Passwort gefragt.
Ich verstehe, dass der "Deployer" -Benutzer letztendlich seinen Weg in die visudo-Benutzerdatei finden muss, aber ich kann nicht herausfinden, welche magischen Ansible-Beschwörungsformeln aufgerufen werden müssen, damit ich als Deployer in den Computer ssh und dann einen sudo-Befehl (z. B. sudo) ausführen kann apt-get install git ") ohne Aufforderung zur Eingabe eines sudo-Passworts.
Ich habe hoch und niedrig gesucht und kann anscheinend kein Ansible-Playbook-Fragment finden, das den Benutzer "Deployer" in die Sudo-Gruppe einordnet, ohne ein Kennwort zu benötigen. Wie wird das gemacht?