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
+1 -1
View File
@@ -25,7 +25,7 @@
- name: filesystems - btrfs
when: "disks_to_mount and ansible_cmdline.fstype == 'btrfs'"
import_tasks: filesystems-btrfs.yml
import_tasks: filesystems_btrfs.yml
tags:
- btrfs
+11 -2
View File
@@ -2,7 +2,7 @@
# file: tasks/services.yml
- name: services - enable/disable disks services
when: disks_services is defined and ansible_service_mgr|lower != "openrc"
when: disks_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit"
with_items: "{{ disks_services|default([]) }}"
service:
name: "{{item.name}}"
@@ -10,7 +10,7 @@
enabled: "{{item.enabled}}"
become: yes
- name: services - openrc - enable/disable disks services
- name: services - enable/disable disks services - openrc
when: disks_services is defined and ansible_service_mgr|lower == "openrc"
with_items: "{{ disks_services|default([]) }}"
service:
@@ -20,3 +20,12 @@
runlevel: boot
become: yes
- name: services - enable/disable disks services - runit
when: disks_services is defined and ansible_service_mgr|lower == "runit"
with_items: "{{ disks_services|default([]) }}"
sysvinit:
name: "{{item.name}}"
state: "{{item.state}}"
enabled: "{{item.enabled}}"
become: yes
+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
+2 -2
View File
@@ -6,7 +6,7 @@
package: name="cloud-init" state="present"
become: yes
- name: cloudinit - alpine - install cloud-init packages
- name: cloudinit - install cloud-init packages - alpine
when: hosts_cloudinit_enable|default(false) and ansible_os_family|lower == "alpine"
with_items:
- { "name": "cloud-init", "state": "present" }
@@ -37,7 +37,7 @@
enabled: yes
become: yes
- name: cloudinit - activate service (openrc)
- name: cloudinit - activate service - openrc
when: hosts_cloudinit_enable|default(false) and ansible_service_mgr|lower == "openrc"
service:
name: cloud-init
+13 -3
View File
@@ -1,14 +1,24 @@
---
# file: tasks/config.yml
- name: config - arch != x86 - do not run docker-compose in docker
- name: config - do not run docker-compose in docker - arch != x86
when: ansible_machine|lower != "x86_64"
lineinfile: dest="/etc/default/myos" state="present" line="DOCKER=false"
with_items:
- DOCKER=false
lineinfile:
path: /etc/default/myos
create: yes
line: '{{ item }}'
mode: '0644'
become: yes
- name: config - set MYOS config in /etc/default/myos
with_items:
- MYOS={{ lookup('env','ANSIBLE_MYOS') }}
lineinfile: dest="/etc/default/myos" create="yes" line="{{ item }}" mode="0644"
lineinfile:
path: /etc/default/myos
create: yes
line: '{{ item }}'
mode: '0644'
become: yes
+2 -2
View File
@@ -23,7 +23,7 @@
copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0755
become: yes
- name: files - systemd - copy files
- name: files - copy files - systemd
when: ansible_service_mgr|lower == "systemd"
with_items:
- /etc/systemd/system/ansible.service
@@ -33,7 +33,7 @@
copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0644
become: yes
- name: files - openrc - copy files
- name: files - copy files - openrc
when: ansible_service_mgr|lower == "openrc"
with_items:
- /etc/init.d/myos-openrc
+11 -2
View File
@@ -2,7 +2,7 @@
# file: tasks/services.yml
- name: services - enable/disable hosts services
when: hosts_services is defined and ansible_service_mgr|lower != "openrc"
when: hosts_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit"
with_items: "{{ hosts_services|default([]) }}"
service:
name: "{{item.name}}"
@@ -10,7 +10,7 @@
enabled: "{{item.enabled}}"
become: yes
- name: services - openrc - enable/disable hosts services
- name: services - enable/disable hosts services - openrc
when: hosts_services is defined and ansible_service_mgr|lower == "openrc"
with_items: "{{ hosts_services|default([]) }}"
service:
@@ -20,3 +20,12 @@
runlevel: boot
become: yes
- name: services - enable/disable hosts services - runit
when: hosts_services is defined and ansible_service_mgr|lower == "runit"
with_items: "{{ hosts_services|default([]) }}"
sysvinit:
name: "{{item.name}}"
state: "{{item.state}}"
enabled: "{{item.enabled}}"
become: yes
+1 -1
View File
@@ -70,7 +70,7 @@
- include myos/config
lineinfile: dest=~/.ssh/config create=yes line='{{item}}'
- name: ssh - update ~/.ssh/myos/config
- name: user - update ~/.ssh/myos/config
template:
src: ssh_config.j2
dest: ~/.ssh/myos/config
+1 -1
View File
@@ -6,7 +6,7 @@ hosts_packages_distro:
- { "name": "groff", "state": "present" }
- { "name": "openssh-client", "state": "present" }
- { "name": "pass", "state": "present" }
- { "name": "python-pip", "state": "present" }
- { "name": "python3-pip", "state": "present" }
- { "name": "rclone", "state": "present" }
- { "name": "util-linux", "state": "present" }
- { "name": "vim-nox", "state": "present" }
+11 -2
View File
@@ -2,7 +2,7 @@
# file: tasks/services.yml
- name: services - enable/disable remotes services
when: remotes_services is defined and ansible_service_mgr|lower != "openrc"
when: remotes_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit"
with_items: "{{ remotes_services|default([]) }}"
service:
name: "{{item.name}}"
@@ -10,7 +10,7 @@
enabled: "{{item.enabled}}"
become: yes
- name: services - openrc - enable/disable remotes services
- name: services - enable/disable remotes services - openrc
when: remotes_services is defined and ansible_service_mgr|lower == "openrc"
with_items: "{{ remotes_services|default([]) }}"
service:
@@ -20,3 +20,12 @@
runlevel: boot
become: yes
- name: services - enable/disable remotes services - runit
when: remotes_services is defined and ansible_service_mgr|lower == "runit"
with_items: "{{ remotes_services|default([]) }}"
sysvinit:
name: "{{item.name}}"
state: "{{item.state}}"
enabled: "{{item.enabled}}"
become: yes