Create and set systemd unit for service.
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 |
- 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
MIT