Всем привет. Разбираюсь с Ansible, решил начать с создания служебного пользователя, которым он будет ходить на сервера. Т.к. вручную это делать утомительно и нелогично, написал playbook:
---
- hosts: myservers
remote_user: myuser
become: yes
become_user: myuser
become_method: sudo
tasks:
- name: create ansible user
user:
name: ansible
shell: /bin/bash
home: /home/ansible
- name: copy ssh pubkey to home directory
authorized_key:
user: ansible
key: "{{ lookup('file', './ansible_pubkey') }}"
- name: adding ansible user to sudoers
lineinfile:
dest: /etc/sudoers
line: "ansible ALL=(ALL) NOPASSWD: ALL"
validate: 'visudo -cf %s'
Идея в том, чтобы запустить выполнение от личного пользователя с доступом по паролю. На всех серверах имеется мой админский аккаунт myuser, который имеет sudo-привелегии.
Запускаю выполнение playbook'a так:
ansible-playbook -i hosts add-ansible-user.yml -k
На что получаю ответ:
TASK [create ansible user] *****************************************************
fatal: [myserver]: FAILED! => {"changed": false, "cmd": "/sbin/useradd -d /home/ansible -s /bin/bash -m ansible", "failed": true, "msg": "[Errno 13] Отказано в доступе", "rc": 13}
Т.е. Ansible попадает на сервер по ssh, но не может выполнить таску из-за недостаточных прав. Локально sudo работает корректно. Ansible версии 2.0.1.0.
Что я делаю не так?