created roles and playbooks for schreinerei och.
This commit is contained in:
35
roles/docker_npm/readme.md
Normal file
35
roles/docker_npm/readme.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# Readme
|
||||
|
||||
## General
|
||||
|
||||
this playbook is used to deploy docker and nginxproxymanager as docker containers on any hosts.
|
||||
|
||||
## inventory
|
||||
|
||||
setup a group in your inventory with the name: npm
|
||||
also if this container is deployed, some other roles will be trying to use the variable 'proxy_type', be sure to set it in your host vars to 'npm'
|
||||
|
||||
## vars
|
||||
|
||||
### group vars
|
||||
|
||||
````
|
||||
group_vars_npm_db_host:
|
||||
group_vars_npm_db_name:
|
||||
group_vars_npm_app_host:
|
||||
group_vars_npm_docker_paths:
|
||||
- /opt/docker/config/npm
|
||||
````
|
||||
|
||||
### host vars
|
||||
host_vars_npm_db_root_password:
|
||||
host_vars_npm_db_user:
|
||||
host_vars_npm_db_user_password:
|
||||
|
||||
## first start
|
||||
|
||||
login to your npm after the deployment
|
||||
|
||||
url: http://ip/hostname:8082
|
||||
user: admin@example.com
|
||||
pass: changeme
|
||||
28
roles/docker_npm/tasks/main.yml
Normal file
28
roles/docker_npm/tasks/main.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
|
||||
- name: NPM | create project folders
|
||||
ansible.builtin.file:
|
||||
state: directory
|
||||
mode: '0755'
|
||||
path: "{{ item }}"
|
||||
owner: root
|
||||
group: root
|
||||
with_items: "{{ group_vars_npm_docker_paths }}"
|
||||
|
||||
- name: NPM | create docker network "proxy"
|
||||
community.docker.docker_network:
|
||||
name: proxy
|
||||
state: present
|
||||
|
||||
- name: NPM | copy docker-compose file
|
||||
ansible.builtin.template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: /opt/docker/config/npm/docker-compose.yml
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
|
||||
- name: NPM | start docker container
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/docker/config/npm
|
||||
state: present
|
||||
56
roles/docker_npm/templates/docker-compose.yml.j2
Normal file
56
roles/docker_npm/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,56 @@
|
||||
---
|
||||
|
||||
services:
|
||||
{{ group_vars_npm_db_host }}:
|
||||
image: 'jc21/mariadb-aria:latest'
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- npm
|
||||
container_name: {{ group_vars_npm_db_host }}
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: {{ host_vars_npm_db_root_password }}
|
||||
MYSQL_DATABASE: {{ group_vars_npm_db_name }}
|
||||
MYSQL_USER: {{ host_vars_npm_db_user}}
|
||||
MYSQL_PASSWORD: {{ host_vars_npm_db_user_password }}
|
||||
MARIADB_AUTO_UPGRADE: '1'
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
|
||||
{{ group_vars_npm_app_host }}:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
container_name: {{ group_vars_npm_app_host }}
|
||||
networks:
|
||||
- npm
|
||||
- proxy
|
||||
ports:
|
||||
- '80:80' # Public HTTP Port
|
||||
- '443:443' # Public HTTPS Port
|
||||
- '8082:81' # Admin Web Port
|
||||
environment:
|
||||
DB_MYSQL_HOST: {{ group_vars_npm_db_host }}
|
||||
DB_MYSQL_PORT: 3306
|
||||
DB_MYSQL_USER: {{ host_vars_npm_db_user }}
|
||||
DB_MYSQL_PASSWORD: {{ host_vars_npm_db_user_password }}
|
||||
DB_MYSQL_NAME: nginx
|
||||
DISABLE_IPV6: 'true'
|
||||
volumes:
|
||||
- data:/data
|
||||
- letsencrypt:/etc/letsencrypt
|
||||
- custom:/etc/nginx/custom
|
||||
depends_on:
|
||||
- {{ group_vars_npm_db_host }}
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
npm:
|
||||
|
||||
volumes:
|
||||
data:
|
||||
driver: local
|
||||
letsencrypt:
|
||||
driver: local
|
||||
custom:
|
||||
driver: local
|
||||
mysql:
|
||||
driver: local
|
||||
Reference in New Issue
Block a user