add support of runit service manager
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user