| backups | ||
| bin | ||
| files | ||
| group_vars | ||
| host_vars | ||
| playbooks | ||
| roles | ||
| secrets | ||
| templates | ||
| vendor | ||
| .gitignore | ||
| ansible.cfg | ||
| hosts | ||
| LICENSE | ||
| README.md | ||
| requirements.txt | ||
| requirements.yml | ||
Конфигурация Ansible
Конфигурация верхнего уровня для развёртывания инфраструктуры с помощью Ansible.
Содержание
Подготовка серверов
Необходимо создать на серверах пользователя, добавить его в группу sudo,
установить ему пароль и записать его в инвентарь конфигурации. Это можно
сделать, выполнив указанные далее команды на сервере. Имя пользователя
kotovalexarian замените на ваше.
adduser --gecos '' kotovalexarian
usermod -a -G sudo kotovalexarian
Также нужно будет разрешить этому пользователю подключаться по SSH с помощью вашего публичного ключа. Текущая конфигурация отключает возможность аутентификации по паролю. Убедитесь, что вы можете войти с помощью публичного ключа, иначе вы рискуете потерять доступ к серверу.
Подготовка конфигурации
Для ускорения работы Ansible используется библиотека
Mitogen. Необходимо установить её
в директорию vendor:
wget -O vendor/mitogen-0.2.8.tar.gz https://networkgenomics.com/try/mitogen-0.2.8.tar.gz
tar -xzf vendor/mitogen-0.2.8.tar.gz -C vendor/
Конфигурация зависит от ролей Ansible Galaxy,
указанных в файле requirements.yml. Следующую команду нужно запускать
перед началом работы с конфигурацией, а также после добавления ролей
или изменения их версий:
ansible-galaxy install -r requirements.yml -f
В директорию secrets можно поместить файлы, имя которых соответствует
Ansible Vault ID, а содержимое является паролем от соответствующего Vault ID.
Тогда при использовании скриптов из директории bin не придётся указывать эти
Vault ID вручную.
В файл admin нужно поместить имя своего пользователя (например,
kotovalexarian).
Использование конфигурации
Проверка доступности всех серверов:
./bin/ansible all -m ping
Перезагрузка всех серверов:
./bin/ansible all -m reboot
Обновление системных пакетов на всех серверах:
./bin/ansible all -m apt -a 'update_cache=yes upgrade=yes'
Показать пароль пользователя для каждого сервера:
./bin/ansible all -m debug -a var=ansible_become_pass
Развёртывание всей инфраструктуры:
./bin/ansible-playbook playbooks/deploy/site.yml
Создание резервной копии всех данных:
./bin/ansible-playbook playbooks/backup/site.yml
Шифрование секретных данных (somedata и somevault замените):
ansible-vault encrypt_string 'somedata' --vault-id somevault@secrets/somevault