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-10-22 14:33:23 +05:00
backups Backup "/var/www/html/wiki/images" 2020-01-24 07:21:12 +05:00
bin Add credentials 2020-10-22 14:33:23 +05:00
files Remove host "git.crypto-libertarian.com" 2020-10-09 16:53:14 +05:00
group_vars Revert "Remove hosts" 2020-10-09 16:50:47 +05:00
host_vars Add credentials 2020-10-22 14:33:23 +05:00
playbooks Configure Nginx 2020-10-22 11:07:54 +05:00
roles Add credentials 2020-10-22 14:33:23 +05:00
secrets Use multiple vault IDs with password files 2020-07-05 00:28:37 +05:00
templates Revert "Remove hosts" 2020-10-09 16:50:47 +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 Add host "website.fedihub.com" 2020-10-22 10:38:10 +05:00
LICENSE Remove old code 2020-01-14 11:25:45 +05:00
README.md Update README.md 2020-07-17 17:27:20 +05:00
requirements.txt Add Python requirement "jmespath" 2020-07-17 02:17:02 +05:00
requirements.yml Revert "Remove hosts" 2020-10-09 16:50:47 +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 playbooks/backup/site.yml

Шифрование секретных данных (somedata и somevault замените):

ansible-vault encrypt_string 'somedata' --vault-id somevault@secrets/somevault