2020-01-24 20:58:57 -05:00
|
|
|
|
Конфигурация Ansible
|
|
|
|
|
====================
|
|
|
|
|
|
|
|
|
|
Конфигурация верхнего уровня для развёртывания инфраструктуры с помощью
|
|
|
|
|
[Ansible](https://www.ansible.com).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Содержание
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
* [Обзор](#конфигурация-ansible)
|
|
|
|
|
* [Содержание](#содержание)
|
|
|
|
|
* [Подготовка серверов](#подготовка-серверов)
|
|
|
|
|
* [Подготовка конфигурации](#подготовка-конфигурации)
|
|
|
|
|
* [Использование конфигурации](#использование-конфигурации)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подготовка серверов
|
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
|
|
Необходимо создать на серверах пользователя, добавить его в группу `sudo`,
|
|
|
|
|
установить ему пароль и записать его в инвентарь конфигурации. Это можно
|
|
|
|
|
сделать, выполнив указанные далее команды на сервере. Имя пользователя
|
|
|
|
|
`kotovalexarian` замените на ваше.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
adduser --gecos '' kotovalexarian
|
|
|
|
|
usermod -a -G sudo kotovalexarian
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Также нужно будет разрешить этому пользователю подключаться по SSH с помощью
|
|
|
|
|
вашего публичного ключа. Текущая конфигурация отключает возможность
|
|
|
|
|
аутентификации по паролю. Убедитесь, что вы можете войти с помощью публичного
|
|
|
|
|
ключа, иначе вы рискуете потерять доступ к серверу.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Подготовка конфигурации
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
Для ускорения работы Ansible используется библиотека
|
|
|
|
|
[Mitogen](https://mitogen.networkgenomics.com/). Необходимо установить её
|
|
|
|
|
в директорию `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](https://galaxy.ansible.com),
|
|
|
|
|
указанных в файле `requirements.yml`. Следующую команду нужно запускать
|
|
|
|
|
перед началом работы с конфигурацией, а также после добавления ролей
|
|
|
|
|
или изменения их версий:
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
ansible-galaxy install -r requirements.yml -f
|
|
|
|
|
```
|
|
|
|
|
|
2020-07-04 15:47:49 -04:00
|
|
|
|
В директорию `secrets` можно поместить файлы, имя которых соответствует
|
|
|
|
|
Ansible Vault ID, а содержимое является паролем от соответствующего Vault ID.
|
|
|
|
|
Тогда при использовании скриптов из директории `bin` не придётся указывать эти
|
|
|
|
|
Vault ID вручную.
|
|
|
|
|
|
2020-07-11 05:32:37 -04:00
|
|
|
|
В файл `admin` нужно поместить имя своего пользователя (например,
|
|
|
|
|
`kotovalexarian`).
|
|
|
|
|
|
2020-01-24 20:58:57 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Использование конфигурации
|
|
|
|
|
--------------------------
|
|
|
|
|
|
2020-03-15 17:52:19 -04:00
|
|
|
|
Проверка доступности всех серверов:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible all -m ping
|
2020-03-15 17:52:19 -04:00
|
|
|
|
```
|
|
|
|
|
|
2020-01-24 20:58:57 -05:00
|
|
|
|
Перезагрузка всех серверов:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible all -m reboot
|
2020-01-24 20:58:57 -05:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Обновление системных пакетов на всех серверах:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible all -m apt -a 'update_cache=yes upgrade=yes'
|
2020-01-24 20:58:57 -05:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Показать пароль пользователя для каждого сервера:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible all -m debug -a var=ansible_become_pass
|
2020-01-24 20:58:57 -05:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Развёртывание всей инфраструктуры:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible-playbook playbooks/deploy/site.yml
|
2020-01-24 20:58:57 -05:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Создание резервной копии всех данных:
|
|
|
|
|
|
|
|
|
|
```
|
2020-07-04 15:47:49 -04:00
|
|
|
|
./bin/ansible-playbook plybooks/backup/site.yml
|
2020-01-24 20:58:57 -05:00
|
|
|
|
```
|