add support of runit service manager

This commit is contained in:
Yann Autissier
2022-01-09 17:32:54 +01:00
parent da2f3ed44a
commit 5594d58732
26 changed files with 190 additions and 51 deletions
+20 -2
View File
@@ -36,6 +36,24 @@ docker_daemon_config_storage: 'overlay2'
docker_daemon_config: { "storage-driver": "devicemapper" }
```
* `docker_distribution` - Docker package distribution
``` yaml
docker_distribution: debian
```
* `docker_distribution_release` - Docker package distribution release
``` yaml
docker_distribution_release: bullseye
```
* `docker_machine` - Docker package architecture
``` yaml
docker_machine: amd64
```
* `docker_package` - Name of the docker package
``` yaml
@@ -199,7 +217,7 @@ Both DOCKER_BUILD_PREFIX and DOCKER_BUILD_SUFFIX variables are empty, the Docker
The DOCKER_BUILD_PREFIX variable is populated with 'custom/' to force the Dockerfile to search for a `./custom/nginx.conf` file, ie /etc/docker/nginx/custom/nginx.conf file.
* Whith an image name suffixed with a dash, the docker-build command will search for a suffixed file as well.
* With an image name suffixed with a dash, the docker-build command will search for a suffixed file as well.
``` bash
# docker-build -c custom nginx-develop && docker-run -c custom nginx-develop
@@ -241,4 +259,4 @@ docker:
## Limitations
This role is known to work on Ubuntu, Debian, CentOS and Alpine Linux.
This role is known to work on Alpine Linux, Armbian, Centos, Debian, Devuan, Fedora, Raspbian, RedHat and Ubuntu.
@@ -1,7 +1,7 @@
#!/bin/bash
# Author: Yann Autissier <yann.autissier@gmail.com>
DOCKER_IMAGE_REPOSITORY="centile"
DOCKER_IMAGE_REPOSITORY="local"
DOCKER_BUILD_DIRECTORY="/etc/docker"
usage() {
@@ -30,9 +30,9 @@ usage() {
echo -e "Build a docker image named '${DOCKER_IMAGE_REPOSITORY}/elk-es01' with Dockerfile ${DOCKER_BUILD_DIRECTORY}/elk/Dockerfile"
echo -e "and build-arg DOCKER_BUILD_SUFFIX=-es01"
echo
echo -e "$0 -c elisa-sdc elk-es01"
echo -e "$0 -c custom elk-es01"
echo -e "Build a docker image named '${DOCKER_IMAGE_REPOSITORY}/elk-es01' with Dockerfile ${DOCKER_BUILD_DIRECTORY}/elk/Dockerfile,"
echo -e "build-arg DOCKER_BUILD_PREFIX=elisa-sdc/ and build-arg DOCKER_BUILD_SUFFIX=-es01"
echo -e "build-arg DOCKER_BUILD_PREFIX=custom/ and build-arg DOCKER_BUILD_SUFFIX=-es01"
echo
exit 1
}
@@ -1,7 +1,7 @@
#!/bin/bash
# Author: Yann Autissier <yann.autissier@gmail.com>
DOCKER_IMAGE_REPOSITORY="centile"
DOCKER_IMAGE_REPOSITORY="local"
DOCKER_BUILD_DIRECTORY="/etc/docker"
usage() {
+36 -2
View File
@@ -12,16 +12,50 @@ galaxy_info:
- name: Alpine
versions:
- all
- name: Debian
- name: Centos
versions:
- all
- name: Debian
versions:
- bookworm
- bullseye
- buster
- stretch
- jessie
- wheezy
- name: Devuan
versions:
- daedalus
- chimaera
- beowulf
- ascii
- jessie
- name: EL
versions:
- all
- name: Fedora
versions:
- all
- name: Raspbian
versions:
- bookworm
- bullseye
- buster
- stretch
- jessie
- name: Ubuntu
versions:
- all
- impish
- hirsute
- groovy
- focal
- eoan
- disco
- cosmic
- bionic
- artful
- zesty
- yakkety
- xenial
- trusty
+3 -14
View File
@@ -7,21 +7,10 @@
package: name="{{item.name}}" state="{{item.state}}"
become: yes
- name: packages - add docker GPG key
- import_tasks: packages_debian.yml
when: ansible_os_family|lower == "debian"
apt_key: url=https://download.docker.com/linux/debian/gpg
ignore_errors: true
become: yes
- name: packages - define arch
set_fact:
docker_apt_arch: "{% if ansible_machine == 'aarch64' %}arm64{% endif %}{% if ansible_machine == 'x86_64' %}amd64{% endif %}"
- name: packages - add docker APT repository
when: ansible_os_family|lower == "debian"
apt_repository:
repo: deb [arch={{docker_apt_arch}}] https://download.docker.com/linux/{{ansible_distribution|lower}} {{ansible_distribution_release}} stable
become: yes
tags:
- debian
- name: packages - add docker package
when: docker_package|length > 0
@@ -0,0 +1,53 @@
---
# file: tasks/packages_debian.yml
- name: packages - add docker GPG key
apt_key: url=https://download.docker.com/linux/debian/gpg
ignore_errors: true
become: yes
- name: packages - define docker_machine
set_fact:
docker_machine: "{% if ansible_machine == 'aarch64' %}arm64{% endif %}{% if ansible_machine == 'x86_64' %}amd64{% endif %}"
when: docker_machine is undefined
- name: packages - define docker_distribution
set_fact:
docker_distribution: "{% if ansible_distribution|lower == 'devuan' %}debian{% else %}{{ansible_distribution|lower}}{% endif %}"
when: docker_distribution is undefined
- name: packages - define docker_distribution_release - debian bookworm (not yet available)
set_fact:
docker_distribution_release: "bullseye"
when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'bookworm'
- name: packages - define docker_distribution_release - devuan daealus
set_fact:
docker_distribution_release: "bullseye"
when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'daedalus/ceres'
- name: packages - define docker_distribution_release - devuan chimaera
set_fact:
docker_distribution_release: "bullseye"
when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'chimaera'
- name: packages - define docker_distribution_release - devuan beowulf
set_fact:
docker_distribution_release: "buster"
when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'beowulf'
- name: packages - define docker_distribution_release - devuan ascii
set_fact:
docker_distribution_release: "stretch"
when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'ascii'
- name: packages - define docker_distribution_release
set_fact:
docker_distribution_release: "{{ansible_distribution_release|lower}}"
when: docker_distribution_release is undefined
- name: packages - add docker APT repository
apt_repository:
repo: deb [arch={{docker_machine}}] https://download.docker.com/linux/{{docker_distribution}} {{docker_distribution_release}} stable
become: yes
+13 -4
View File
@@ -2,7 +2,7 @@
# file: tasks/services.yml
- name: services - enable/disable docker services
when: docker_services is defined and ansible_service_mgr|lower != "openrc"
when: docker_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit"
with_items: "{{ docker_services|default([]) }}"
service:
name: "{{item.name}}"
@@ -10,13 +10,13 @@
enabled: "{{item.enabled}}"
become: yes
- name: services - openrc - force service status
- name: services - force service status - openrc
when: docker_services is defined and ansible_service_mgr|lower == "openrc"
shell: "kill -0 $(cat /run/{{item.name}}.pid) && [ ! -h /run/openrc/started/{{item.name}} ] && ln -s /etc/init.d/{{item.name}} /run/openrc/started/{{item.name}} && service {{item.name}} restart ||:"
with_items: "{{ docker_services|default([]) }}"
become: yes
- name: services - openrc - enable/disable docker services
- name: services - enable/disable docker services - openrc
when: docker_services is defined and ansible_service_mgr|lower == "openrc"
with_items: "{{ docker_services|default([]) }}"
service:
@@ -26,7 +26,16 @@
runlevel: boot
become: yes
- name: services - openrc - force service restart
- name: services - enable/disable docker services - runit
when: docker_services is defined and ansible_service_mgr|lower == "runit"
with_items: "{{ docker_services|default([]) }}"
sysvinit:
name: "{{item.name}}"
state: "{{item.state}}"
enabled: "{{item.enabled}}"
become: yes
- name: services - force service restart - openrc
when: ansible_service_mgr|lower == "openrc"
shell: "[ ! -d /var/lib/docker/tmp ] && service docker restart ||:"
become: yes