sw_semaphore
Ansible Роль - Ansible-Semaphore
Роль для установки Ansible Semaphore на сервере с Linux.
Semaphore — легковесная альтернатива Ansible AWX. (Веб-интерфейс для использования Ansible)
Логи Molecule: Краткие, Полные
Проверено на:
- Debian 11
Установка
# последняя версия
ansible-galaxy role install git+https://github.com/ansibleguy/sw_semaphore
# из galaxy
ansible-galaxy install ansibleguy.sw_semaphore
# или в пользовательский путь для ролей
ansible-galaxy install ansibleguy.sw_semaphore --roles-path ./roles
# установить зависимости
ansible-galaxy install -r requirements.yml
Использование
Хотите простой интерфейс Ansible? Ознакомьтесь с моим Ansible WebUI
Конфигурация
Минимальная конфигурация:
semaphore:
nginx:
domain: 'semaphore.test.ansibleguy.net'
# опционально:
# версия: '2.8.90'
# админ:
# пользователь: 'admin'
# имя: 'AnsibleGuy'
# email: '[email protected]'
Определите настройки по мере необходимости:
semaphore:
manage:
webserver: true # установить и настроить локальный nginx с минимальным сертификатом
database: true # установить и настроить локальную mariadb
backup: true # установить службу для ежедневного резервного копирования локальной базы данных (если база данных управляется)
user: true # создать сервисного пользователя 'semaphore'
ansible_cfg: true # установить /home/semaphore/.ansible.cfg
admin: true # добавить администраторского пользователя после установки
version: '2.8.90' # смотрите: https://github.com/ansible-semaphore/semaphore/releases
persistent_requirements: false
admin:
user: 'admin'
email: '[email protected]'
pwd: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
config: # ключ-значение в соответствии с 'config.json': https://docs.ansible-semaphore.com/administration-guide/configuration
concurrency_mode: 'node'
email_sender: '[email protected]'
email_host: 'mail.template.ansibleguy.net'
email_alert: true
# опционально
ldap_enable: true
ldap_needtls: true
ldap_binddn: 'service_semaphore'
ldap_bindpassword: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
ldap_server: 'ldap.template.ansibleguy.net:636'
ldap_searchfilter: '(&(mail=%s)(objectClass=person)(memberOf:=CN=semaphore,OU=Groups,DC=template,DC=ansibleguy,DC=net))' # вход с помощью электронной почты; должен быть в группе 'semaphore'
# опционально => смотрите: https://docs.ansible-semaphore.com/administration-guide/security#database-encryption
cookie_hash: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
cookie_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
access_key_encryption: !vault |
$ANSIBLE_VAULT;1.1;AES256
...
requirements: # требования вашей среды выполнения
pip: ['httpx'] # любые модули python3
collections: ['community.general'] # любые коллекции ansible (если persistent_requirements=true)
roles: [] # любые роли ansible (если persistent_requirements=true)
ansible_config: # /home/semaphore/.ansible.cfg => если manage.ansible_cfg=true; смотрите: https://docs.ansible.com/ansible/latest/reference_appendices/config.html
defaults: # секция
remote_port: 48322
vault_id_match: 'semaphore'
diff:
context: 2
backup:
retention_days: 30
Вы можете использовать 'ansible-vault' для шифрования своих паролей:
ansible-vault encrypt_string
Выполнение
Запустите плейбук:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
Также доступны некоторые полезные теги:
- webserver
- database
- config
- requirements
Чтобы отладить ошибки, вы можете установить переменную 'debug' во время выполнения:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Функциональность
Установка пакетов
- Ansible-Semaphore в указанной версии
- Python3 PIP
- Виртуальная среда Python3
- Ansible
- общие зависимости Jinja-Filter Ansible
- Git
Конфигурация
Служба: 'semaphore.service'
Сервисный пользователь: 'semaphore'
Настройки по умолчанию:
- Каталоги:
- Venv: '/var/local/lib/semaphore_venv'
- Конфигурация: '/etc/semaphore'
- Резервная копия: '/var/backups/semaphore'
- Временные/Исполняемые: '/tmp/.semaphore'
- Каталоги:
Настройки по умолчанию (опции):
- Прокси Nginx => с использованием Этой роли
- База данных MariaDB => с использованием Этой роли
- Ежедневное резервное копирование локальной базы данных (если база данных управляется)
- Служба резервного копирования: 'semaphore-backup.service'
- Установка 'ansible.cfg' для сервисного пользователя
- Добавление администратора после установки
Настройки по умолчанию (опции, которые можно отменить):
- Постоянные требования
- Обновление службы: 'semaphore-requirements.service'
- Постоянные требования
Информация
Примечание: эта роль в настоящее время поддерживает только системы на основе debian.
Примечание: большую часть функциональности роли можно включать или отключать.
Для всех доступных опций - смотрите стандартную конфигурацию, размещенную в основном файле по умолчанию!
Предупреждение: Не каждая заданная вами настройка/переменная будет проверяться на допустимость. Плохая конфигурация может сломать роль!
Примечание: Если вы хотите использовать docker => вам стоит ознакомиться с официальным docker-образом Ansible-Semaphore!
Информация: Постоянные требования можно использовать для ускорения выполнения:
Они будут устанавливать и обновлять роли ansible и коллекции ansible с использованием внешнего сервиса/таймера.
По умолчанию semaphore будет повторно устанавливать их при каждом выполнении.
Чтобы это работало, вам также нужно убедиться, что файлы требований отсутствуют в ваших репозиториях:
- $REPO/collections/requirements.yml
- $REPO/roles/requirements.yml
ansible-galaxy install ansibleguy/sw_semaphore