service

Ansible роль service

Добавьте пользовательские службы в вашу систему Linux.

GitHub Версия Проблемы Запросы на изменение Скачивания
github Version Issues PullRequests Ansible Role

Пример Playbook

Этот пример взят из molecule/default/converge.yml и тестируется при каждом пуше, запросе на изменение и релизе.

---
- name: Converge
  hosts: all
  become: true
  gather_facts: true

  vars:
    _service_test_command:
      default: /usr/bin/sleep
      Alpine: /bin/sleep
      Debian: /bin/sleep
      Ubuntu-16: /bin/sleep
      Ubuntu-18: /bin/sleep
    service_test_command: "{{ _service_test_command[ansible_distribution ~ '-' ~ ansible_distribution_major_version] | default(_service_test_command[ansible_os_family] | default(_service_test_command['default'])) }}"  # noqa 204 Долго.

  roles:
    - role: buluma.service
      service_list:
        - name: simple-service
          description: Простая служба
          start_command: "{{ service_test_command }} 3600"
          state: started
          enabled: true
        - name: stopped-service
          description: Простая служба
          start_command: "{{ service_test_command }} 3601"
          state: stopped
          enabled: false
        - name: specific-stop-service
          description: Служба с особой остановкой
          start_command: "{{ service_test_command }} 1440"
          stop_command: /usr/bin/killall -f "sleep 1440"
        - name: specific-user-group-service
          description: Служба для определенной группы пользователей
          start_command: "{{ service_test_command }} 28800"
          user_name: root
          group_name: root
        - name: specific-workingdirectory-service
          description: Служба с определенной рабочей директорией
          start_command: "{{ service_test_command }} 57600"
          working_directory: /tmp
        - name: specific-pattern-service
          description: Служба с определенным статусом
          start_command: "{{ service_test_command }} 115200"
          status_pattern: 115200
        - name: variable-service
          description: Служба с переменными окружения
          start_command: "{{ service_test_command }} ${time}"
          environment_variables:
            time: 230400
        - name: pidfile-service
          description: Служба с pid-файлом
          start_command: "{{ service_test_command }} 460800"
          pidfile: /var/run/pidfile-service.pid
        - name: environmentfile-service
          description: Служба с файлом окружения
          start_command: "{{ service_test_command }} 921600"
          environmentfile: /environmentfile.txt

Машина должна быть подготовлена. В CI это делается с помощью molecule/default/prepare.yml:

---
- name: Prepare
  hosts: all
  gather_facts: false
  become: true
  serial: 30%

  roles:
    - role: buluma.bootstrap

  post_tasks:
    - name: поместить /environmentfile.txt
      ansible.builtin.copy:
        content: "value=variable"
        dest: /environmentfile.txt
        mode: "0644"

Также см. полное объяснение и пример о том, как использовать эти роли.

Переменные роли

Значения переменных по умолчанию установлены в defaults/main.yml:

---
# файл по умолчанию для сервиса

# service_list может содержать список служб для добавления в систему.
# Обязательные элементы для каждого элемента:
# - name: (короткое) название службы, например "tomcat".
# - description: немного более длинное название, например "сервер приложений Tomcat".
# - start_command: команда для запуска демона,
#   например "/usr/local/bin/java -jar some.jar"
# Необязательные элементы:
# - stop_command: По умолчанию программа, которая запускается, будет найдена и остановлена.
#   В случае, если работающая программа была переименована или расширена (включая путь) во
#   время запуска, вы можете указать свою команду остановки, например "pkill foo"
# - status_pattern: Какую программу (или шаблон) искать при определении
#   статуса программы, например "artifactory".
# - type: Как запускается программа; "simple" или "forking". Simple означает, что
#   программа работает на переднем плане, например "nc -l 1234". Forking означает, что
#   сама программа создаёт дочерний процесс, например "nc -l 12345 &"
# - working_directory: Каталог, в который нужно перейти перед запуском службы.
# - environment_variables: Список переменных для установки. Например:
#   environment_variables:
#     variable1: value1
#     variable2: value2
# - after: Запуск после упомянутой службы.
# - restart_mode: Режим перезапуска, например "always".
# - restart_seconds: Время, необходимое для завершения перезапуска.
service_list: []

Требования

Состояние используемых ролей

Следующие роли используются для подготовки системы. Вы можете подготовить вашу систему другим способом.

Требование GitHub Версия
buluma.bootstrap Ansible Molecule Version

Контекст

Эта роль является частью многих совместимых ролей. Ознакомьтесь с документацией этих ролей для получения дополнительной информации.

Вот обзор связанных ролей:

dependencies

Совместимость

Эта роль была протестирована на следующих образах контейнеров:

контейнер теги
EL 8
Debian все
Fedora все
opensuse все
Ubuntu все
Kali все

Минимальная версия Ansible, требуемая для работы, — 2.12, тесты проводились на:

  • предыдущей версии.
  • текущей версии.
  • версии разработки.

Если вы обнаружите проблемы, пожалуйста, сообщите о них в GitHub

История изменений

История роли

Лицензия

Apache-2.0

Информация об авторе

Shadow Walker

О проекте

Add custom services to your Linux system.

Установить
ansible-galaxy install buluma/ansible-role-service
Лицензия
apache-2.0
Загрузки
394159
Владелец
DevOps Engineer