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-15 02:11:33 +05:00
backups Backup "/var/www/html/wiki/images" 2020-01-24 07:21:12 +05:00
bin Improve scripts 2020-07-11 14:50:45 +05:00
files Remove unnecessary logs 2020-07-14 02:05:23 +05:00
group_vars Turn group-specific iptables rules into host-specific 2020-07-13 17:37:13 +05:00
host_vars Use Nginx from role "kotovalexarian.common" 2020-07-15 01:47:26 +05:00
playbooks Improve PostgreSQL dumps 2020-07-15 02:11:33 +05:00
roles/matrix Use Nginx from role "kotovalexarian.common" 2020-07-15 01:47:26 +05:00
secrets Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
templates Improve PostgreSQL dumps 2020-07-15 02:11:33 +05:00
vendor Add host "articles.crypto-libertarian.com" 2020-01-14 15:00:26 +05:00
.gitignore Improve experience for multiple admins 2020-07-11 14:33:58 +05:00
ansible.cfg Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
hosts Revert "Add host "turn.crypto-libertarian.com"" 2020-07-11 20:42:11 +05:00
LICENSE Remove old code 2020-01-14 11:25:45 +05:00
README.md Improve experience for multiple admins 2020-07-11 14:33:58 +05:00
requirements.txt Upgrade Python requirement "ansible" 2020-06-10 16:10:24 +05:00
requirements.yml Upgrade role "kotovalexarian.common" 2020-07-15 02:01:52 +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 вручную.

В файл 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 plybooks/backup/site.yml