Initial commit
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*.log
|
||||||
|
*.pyc
|
||||||
|
**/__pycache__/
|
||||||
|
.env
|
||||||
|
.secrets
|
||||||
10
.gitlab-ci.yml
Normal file
10
.gitlab-ci.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
stages:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
linter:
|
||||||
|
stage: linter
|
||||||
|
image:
|
||||||
|
name: osshelp/drone-linter
|
||||||
|
entrypoint: [""]
|
||||||
|
script: [entrypoint.sh]
|
||||||
11
.yamllint
Normal file
11
.yamllint
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
brackets:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
line-length: disable
|
||||||
|
truthy: disable
|
||||||
9
README.md
Normal file
9
README.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# docker
|
||||||
|
|
||||||
|
Simple Ansible role for docker installation.
|
||||||
|
|
||||||
|
## Usage (example)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- role: docker
|
||||||
|
```
|
||||||
19
defaults/main.yml
Normal file
19
defaults/main.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
repo_key: 'https://download.docker.com/linux/ubuntu/gpg'
|
||||||
|
repo_branch: stable
|
||||||
|
repo_url: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_lsb.codename|lower }} {{ repo_branch }}"
|
||||||
|
|
||||||
|
|
||||||
|
dst_compose_files_dir: '/mnt/deploy/docker'
|
||||||
|
|
||||||
|
ipv6_enable: false
|
||||||
|
remap_enable: false
|
||||||
|
remap_user: dockremap
|
||||||
|
remap_subuid: 100000
|
||||||
|
metrics_enable: true
|
||||||
|
metrics_addr: 0.0.0.0
|
||||||
|
metrics_port: 19323
|
||||||
|
experimental_enable: "{{ metrics_enable }}"
|
||||||
|
tcp_listen: false
|
||||||
|
live_restore: true
|
||||||
|
swarm_init: false
|
||||||
6
handlers/main.yml
Normal file
6
handlers/main.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: reload docker unit
|
||||||
|
systemd: daemon_reload=yes
|
||||||
|
|
||||||
|
- name: restart docker service
|
||||||
|
systemd: name=docker state=restarted
|
||||||
11
meta/main.yml
Normal file
11
meta/main.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: OldTyT
|
||||||
|
description: Docker install on ubuntu
|
||||||
|
min_ansible_version: 2.8
|
||||||
|
platforms:
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
- jammy
|
||||||
|
galaxy_tags:
|
||||||
|
- dockerubuntuinstall
|
||||||
31
tasks/composes.yml
Normal file
31
tasks/composes.yml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
- name: create dir for ymls
|
||||||
|
file:
|
||||||
|
path: "{{ dst_compose_files_dir }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Save all env variables to a file
|
||||||
|
ansible.builtin.shell:
|
||||||
|
cmd: printenv > {{ dst_compose_files_dir }}/.env
|
||||||
|
args:
|
||||||
|
executable: /bin/bash
|
||||||
|
|
||||||
|
- name: create compose file
|
||||||
|
copy:
|
||||||
|
src: "{{ 'files/' + (inventory_hostname if molecule_file is not defined else 'molecule') + '/docker-compose.yml' }}"
|
||||||
|
dest: "{{ dst_compose_files_dir }}/docker-compose.yml"
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: deploy compose file
|
||||||
|
docker_compose:
|
||||||
|
env_file: "{{ dst_compose_files_dir }}/.env"
|
||||||
|
project_src: "{{ dst_compose_files_dir }}"
|
||||||
|
files: ["{{ dst_compose_files_dir }}/{{ item.name }}.yml"]
|
||||||
|
state: "{{ item.state | default('present') }}"
|
||||||
|
remove_orphans: "{{ item.remove_orphans | default('yes') }}"
|
||||||
|
recreate: "{{ item.recreate | default('smart') }}"
|
||||||
|
pull: "{{ item.pull | default('yes') }}"
|
||||||
|
stopped: "{{ item.stopped | default('no') }}"
|
||||||
|
timeout: "{{ item.timeout | default('10') }}"
|
||||||
|
debug: "{{ item.debug | default('no') }}"
|
||||||
20
tasks/config.yml
Normal file
20
tasks/config.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- name: create directories
|
||||||
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
with_items:
|
||||||
|
- /etc/systemd/system/docker.service.d
|
||||||
|
- /etc/docker
|
||||||
|
|
||||||
|
- name: create daemon.json
|
||||||
|
template:
|
||||||
|
src: daemon-json.j2
|
||||||
|
dest: /etc/docker/daemon.json
|
||||||
|
mode: 0640
|
||||||
|
register: docker_daemon_json
|
||||||
|
notify:
|
||||||
|
- restart docker service
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
52
tasks/install.yml
Normal file
52
tasks/install.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
- name: Update apt cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install utils
|
||||||
|
retries: 3
|
||||||
|
delay: 5
|
||||||
|
ansible.builtin.apt:
|
||||||
|
pkg:
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gpg
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 3600
|
||||||
|
|
||||||
|
- name: Make sure the APT keyring directory exists
|
||||||
|
file:
|
||||||
|
path: /etc/apt/keyrings
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Register the Docker GPG key with APT
|
||||||
|
become: true
|
||||||
|
ansible.builtin.apt_key:
|
||||||
|
url: "{{ repo_key }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Docker repository to APT sources
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ repo_url }}"
|
||||||
|
state: present
|
||||||
|
filename: docker
|
||||||
|
|
||||||
|
- name: create user for remap
|
||||||
|
user:
|
||||||
|
name: "{{ remap_user }}"
|
||||||
|
comment: "User for docker userns-remap"
|
||||||
|
state: present
|
||||||
|
create_home: false
|
||||||
|
when: remap_enable
|
||||||
|
|
||||||
|
- name: Install Docker-CE
|
||||||
|
retries: 3
|
||||||
|
delay: 5
|
||||||
|
ansible.builtin.apt:
|
||||||
|
pkg:
|
||||||
|
- docker-ce
|
||||||
|
update_cache: yes
|
||||||
|
cache_valid_time: 3600
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
15
tasks/main.yml
Normal file
15
tasks/main.yml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
- name: docker installation
|
||||||
|
include_tasks: install.yml
|
||||||
|
|
||||||
|
- name: docker configuration
|
||||||
|
include_tasks: config.yml
|
||||||
|
|
||||||
|
- name: Check for docker-compose.yml in the specific directory
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: "{{ 'files/' + (inventory_hostname if molecule_file is not defined else 'molecule') + '/docker-compose.yml' }}"
|
||||||
|
register: docker_compose_stat
|
||||||
|
|
||||||
|
- name: deploy compose files
|
||||||
|
include_tasks: composes.yml
|
||||||
|
when: docker_compose_stat.stat.exists
|
||||||
22
templates/daemon-json.j2
Normal file
22
templates/daemon-json.j2
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
{% if tcp_listen %} "hosts": ["tcp://{{ tcp_listen_addr | default('0.0.0.0') }}:{{ tcp_listen_port | default('2375') }}", "unix:///var/run/docker.sock"],
|
||||||
|
{% endif %}
|
||||||
|
{% if metrics_enable %} "metrics-addr" : "{{ metrics_addr | default('0.0.0.0') }}:{{ metrics_port | default('19323') }}",
|
||||||
|
{% endif %}
|
||||||
|
{% if experimental_enable %} "experimental" : true,
|
||||||
|
{% endif %}
|
||||||
|
{% if remap_enable %} "userns-remap" : "{{ remap_user | default('dockremap') }}",
|
||||||
|
{% endif %}
|
||||||
|
{% if insecure_registries is defined %} "insecure-registries" : [{% for registry in insecure_registries %}"{{ registry }}"{% if not loop.last %}, {% endif %}{% endfor %}],
|
||||||
|
{% endif %}
|
||||||
|
{% if registry_mirrors is defined %} "registry-mirrors": [{% for registry in registry_mirrors %}"{{ registry }}"{% if not loop.last %}, {% endif %}{% endfor %}],
|
||||||
|
{% endif %}
|
||||||
|
"log-opts": {
|
||||||
|
"compress": "{{ log.compress | default('false') }}",
|
||||||
|
"max-size": "{{ log.max_size | default('50m') }}",
|
||||||
|
"max-file": "{{ log.max_file | default('10') }}"
|
||||||
|
},
|
||||||
|
{% if live_restore and not swarm_init %} "live-restore": true,
|
||||||
|
{% endif %}
|
||||||
|
"ipv6": {{ 'true' if ipv6_enable else 'false' }}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user