1
0
Fork 0
Ansible configuration
This repository has been archived on 2023-03-27. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2020-07-05 11:13:37 +05:00
backups Backup "/var/www/html/wiki/images" 2020-01-24 07:21:12 +05:00
bin Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
files Remove host "rpi-01.dyn.crypto-libertarian.com" and unnecessary code 2020-07-01 06:06:12 +05:00
group_vars Improve project structure 2020-07-04 19:43:04 +05:00
host_vars Add role "postgres" 2020-07-05 11:13:37 +05:00
playbooks Add role "postgres" 2020-07-05 11:13:37 +05:00
roles Add role "postgres" 2020-07-05 11:13:37 +05:00
secrets Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
vendor Add host "articles.crypto-libertarian.com" 2020-01-14 15:00:26 +05:00
.gitignore Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
ansible.cfg Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
hosts Store become passwords for multiple admins 2020-07-04 21:19:29 +05:00
LICENSE Remove old code 2020-01-14 11:25:45 +05:00
README.md Fix docs 2020-07-05 00:47:49 +05:00
requirements.txt Upgrade Python requirement "ansible" 2020-06-10 16:10:24 +05:00
requirements.yml Upgrade role "kotovalexarian.common" 2020-07-03 15:48:17 +05:00

Конфигурация 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 вручную.

Использование конфигурации

Проверка доступности всех серверов:

./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 plybooks/backup/site.yml