sw_semaphore

Ansible-Semaphore - современный интерфейс для Ansible

Ansible Роль - Ansible-Semaphore

Роль для установки Ansible Semaphore на сервере с Linux.

Semaphore — легковесная альтернатива Ansible AWX. (Веб-интерфейс для использования Ansible)

Купите мне кофе

Molecule Test Status YamlLint Test Status PyLint Test Status Ansible-Lint Test Status Ansible Galaxy

Логи 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 role to provision Ansible-Semaphore on a linux server

Установить
ansible-galaxy install ansibleguy/sw_semaphore
Лицензия
gpl-3.0
Загрузки
1722
Владелец
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg