Добавление учетных записей с помощью Ansible
Oct 6, 2016 22:38 · 260 words · 2 minute read
Ранее мы уже рассматривали несколько вариантов использования системы управления конфигурациями Ansible
, теперь давайте разберемся как добавить пользователя на удаленный хост!
Считаем, что Ansible
установлен и настроен. Для создания пользователя на удаленном хосте мы будем использовать простой набор инструкций (плейбук), хотя можно подойти к вопросу более основательно и создать роль для управления пользователями (подробнее о ролях можно почитать здесь).
Создаем набор инструкций с именем useradd.yml
:
touch useradd.yml
Содержимое файла useradd.yml
следующее:
---
- hosts: all
become: yes
tasks:
- name: Add user to remote hosts
user: name=admin groups=sudo shell=/bin/bash password=$6$KjyfytoJ$hoQdVIGcRZgje2HpHFf8ldvooLfY774SrEpHkADUf3d7uGBSwVLeMXsPIfb4l2TaXWvprMz868ZbH8HLaiDeh.
- name: Add SSH keys to remote hosts
authorized_key: user=admin key="{{ lookup('file', "/home/admin/Downloads/key.pub") }}"
В данном примере поле hosts:
содержит группу, на которой будет запущена задача (task).
Дополнительно указано, что для выполнения задач требуется эскалация привилегий (become: yes
).
Примечание. become
используется начиная с версии Ansible
1.9, до этого для эскалации привилегий использовали sudo
.
Поле tasks:
содержит имена задач (Add user to remote hosts и Add SSH keys to remote hosts), имена модулей, которые должны выполняться (user
и authorized_key
) и аргументы, необходимые для выполнения модуля (для первого это name
, groups
, shell
, password
, для второго — user
, key
).
Запустить только что созданный набор инструкций можно следующей командой:
ansible-playbook playbooks/useradd.yml
PLAY [all] *********************************************************************
TASK [setup] *******************************************************************
ok: [test1]
ok: [test2]
TASK [Add user to remote hosts] ************************************************
changed: [test2]
changed: [test1]
TASK [Add SSH keys to remote hosts] ********************************************
changed: [test2]
changed: [test1]
PLAY RECAP *********************************************************************
test2 : ok=3 changed=2 unreachable=0 failed=0
test1 : ok=3 changed=2 unreachable=0 failed=0
После выполнения данного набора инструкций можно логиниться на удаленные хосты под только что созданной учетной записью.