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