Skip to content

Netrika/ansible-role-systemd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

systemd-service

Create and set systemd unit for service.

Role Variables

Parameter Choices/Defaults Comments
systemd_service_list Default: empty Список сервисов которые будут созданы
systemd_service_template Default: systemd.service.j2 Путь до шаблона юнита

Из systemd_service_list используются некоторые значения для определения дальнейшего поведения роли после создания сервиса. Рассмотрим пример:

systemd_service_list:
  - name: "{{ project_name }}-app"
    runtimedir: "{{ project_name }}"
    environmentfile: "{{ django_settings_path }}"
    pidfile: "/run/{{ project_name }}/{{ project_name }}.pid"
    workingdir: "{{ backend_current }}"
    user: "{{ project_user }}"
    execstart: {{ venv_path }}/bin/gunicorn example.wsgi:application
    execreload: /bin/kill -s HUP $MAINPID
    execstop: /bin/kill -s TERM $MAINPID
    description: "{{ project_name|upper }} gunicorn service."
    state: restarted
    enabled: true

Переменные определяющие дальнейшее поведение:

Parameter Choices/Defaults Comments
enabled Default: false Должен ли юнит запускаться при запуске ОС. Если значение state не указано данный параметр будет проигнорирован
name Default: undefined Имя создаваемого юнита
state Default: undefined В каком состоянии должен находится сервис
unit_path Default: etc/systemd/system Путь где будет создан юнит

Если используется стандартный шаблон можно выбрать следующие опции:

Parameter Choices/Defaults Comments
config_dest Default: undefined ЭКСПЕРЕМЕНТАЛЬНЫЙ ФУНКЦИОНАЛ. Позволяет скопировать дополнительные файлы конфигурации для запуска сервиса
config_src Default: undefined ЭКСПЕРЕМЕНТАЛЬНЫЙ ФУНКЦИОНАЛ. Позволяет скопировать дополнительные файлы конфигурации для запуска сервиса
description Default: item.name Описание сервиса
environmentfile Default: undefined Путь до файла с переменными окружения. See more
execreload Default: undefined Команда перезапуска сервиса. See more
execstart Default: undefined Команда запуска сервиса. See more
execstop Default: undefined Команда остановки сервиса. See more
group Default: item.user Группа от имени которой будет запущен сервис. See more
privatetmp Default: true See more
restart Default: always Определяет поведение сервиса при неожиданной остановке
restartsec Default: 1min Таймаут между попытки перезапуска сервиса
runtimedir Default: undefined Имя директории, которая будет создана в каталоге /run/. See more
syslogidentifier Default: undefined Если параметр определен потоки вывода и ошибок будут перенаправленны в syslog с тэгом указанным в переменной. See more
type Default: Simple See more
user Default: undefined Пользователь от имени которого будет запущен сервис. See more
workingdir Default: undefined Каталог в котором будет запущенно приложение. See more

Example Playbook

- name: Converge
  hosts: all
  become: true
  vars:
    - project: foo
    - systemd_service_list:
      - name: "{{ project_name }}-app"
        runtimedir: "{{ project_name }}"
        environmentfile: "{{ django_settings_path }}"
        pidfile: "/run/{{ project_name }}/{{ project_name }}.pid"
        workingdir: "{{ backend_current }}"
        user: "{{ project_user }}"
        execstart: {{ venv_path }}/bin/gunicorn example.wsgi:application
        execreload: /bin/kill -s HUP $MAINPID
        execstop: /bin/kill -s TERM $MAINPID
        description: "{{ project_name|upper }} gunicorn service."
        state: restarted
        enabled: true

  roles:
    - role: systemd-service

License

MIT

About

Role for setup systemd units

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published