Compare commits
2 Commits
f46be75cc1
...
mediawiki
Author | SHA1 | Date | |
---|---|---|---|
db8bb672d3 | |||
ed9100bc8f
|
@@ -5,6 +5,6 @@
|
|||||||
- host_vars/bitwarden.yml
|
- host_vars/bitwarden.yml
|
||||||
roles:
|
roles:
|
||||||
- base
|
- base
|
||||||
- proxy
|
|
||||||
- docker
|
- docker
|
||||||
|
- traefik
|
||||||
- bitwarden
|
- bitwarden
|
||||||
|
@@ -2,9 +2,6 @@
|
|||||||
allow_reboot: false
|
allow_reboot: false
|
||||||
manage_network: false
|
manage_network: false
|
||||||
|
|
||||||
# nginx proxy
|
|
||||||
proxy: helloworld
|
|
||||||
|
|
||||||
# docker
|
# docker
|
||||||
docker_users:
|
docker_users:
|
||||||
- vagrant
|
- vagrant
|
||||||
@@ -16,9 +13,6 @@ traefik_domain: traefik.vm.krislamo.org
|
|||||||
traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin
|
traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin
|
||||||
#traefik_acme_email: realemail@example.com # Let's Encrypt settings
|
#traefik_acme_email: realemail@example.com # Let's Encrypt settings
|
||||||
#traefik_production: true
|
#traefik_production: true
|
||||||
traefik_ports:
|
|
||||||
- "8000:80"
|
|
||||||
- "4430:443"
|
|
||||||
|
|
||||||
# bitwarden
|
# bitwarden
|
||||||
# Get Installation ID & Key at https://bitwarden.com/host/
|
# Get Installation ID & Key at https://bitwarden.com/host/
|
||||||
|
17
dev/host_vars/mediawiki.yml
Normal file
17
dev/host_vars/mediawiki.yml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# base
|
||||||
|
allow_reboot: false
|
||||||
|
manage_network: false
|
||||||
|
|
||||||
|
# docker
|
||||||
|
docker_users:
|
||||||
|
- vagrant
|
||||||
|
|
||||||
|
# traefik
|
||||||
|
traefik_version: latest
|
||||||
|
traefik_dashboard: true
|
||||||
|
traefik_domain: traefik.vm.krislamo.org
|
||||||
|
traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin
|
||||||
|
#traefik_acme_email: realemail@example.com # Let's Encrypt settings
|
||||||
|
#traefik_production: true
|
||||||
|
|
||||||
|
# mediawiki
|
10
dev/mediawiki.yml
Normal file
10
dev/mediawiki.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
- name: Install MediaWiki Server
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
vars_files:
|
||||||
|
- host_vars/mediawiki.yml
|
||||||
|
roles:
|
||||||
|
- base
|
||||||
|
- docker
|
||||||
|
- traefik
|
||||||
|
- mediawiki
|
2
roles/.gitignore
vendored
2
roles/.gitignore
vendored
@@ -7,11 +7,11 @@
|
|||||||
!gitea*/
|
!gitea*/
|
||||||
!jenkins*/
|
!jenkins*/
|
||||||
!libvirt*/
|
!libvirt*/
|
||||||
|
!mediawiki*/
|
||||||
!minecraft*/
|
!minecraft*/
|
||||||
!nextcloud*/
|
!nextcloud*/
|
||||||
!nginx*/
|
!nginx*/
|
||||||
!prometheus*/
|
!prometheus*/
|
||||||
!proxy/*
|
|
||||||
!rsnapshot*/
|
!rsnapshot*/
|
||||||
!traefik*/
|
!traefik*/
|
||||||
!unifi*/
|
!unifi*/
|
||||||
|
1
roles/mediawiki/defaults/main.yml
Normal file
1
roles/mediawiki/defaults/main.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
mediawiki_name: mediawiki
|
51
roles/mediawiki/tasks/main.yml
Normal file
51
roles/mediawiki/tasks/main.yml
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
- name: Create MediaWiki Network
|
||||||
|
docker_network:
|
||||||
|
name: "{{ mediawiki_name }}"
|
||||||
|
|
||||||
|
- name: Start MediaWiki's database container
|
||||||
|
docker_container:
|
||||||
|
name: "{{ mediawiki_dbname }}"
|
||||||
|
image: mariadb:{{ mediawiki_dbversion }}
|
||||||
|
state: started
|
||||||
|
restart_policy: always
|
||||||
|
volumes: "{{ mediawiki_dbroot }}:/var/lib/mysql"
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "{{ mediawiki_name }}"
|
||||||
|
env:
|
||||||
|
MYSQL_RANDOM_ROOT_PASSWORD: "true"
|
||||||
|
MYSQL_DATABASE: "{{ mediawiki_dbname }}"
|
||||||
|
MYSQL_USER: "{{ mediawiki_dbuser }}"
|
||||||
|
MYSQL_PASSWORD: "{{ mediawiki_dbpass }}"
|
||||||
|
|
||||||
|
- name: Start mediawiki container
|
||||||
|
docker_container:
|
||||||
|
name: "{{ mediawiki_name }}"
|
||||||
|
image: mediawiki/mediawiki:{{ mediawiki_version }}
|
||||||
|
state: started
|
||||||
|
restart_policy: always
|
||||||
|
networks_cli_compatible: true
|
||||||
|
ports: "{{ mediawiki_ports }}"
|
||||||
|
networks:
|
||||||
|
- name: "{{ mediawiki_name }}"
|
||||||
|
- name: traefik
|
||||||
|
# volumes:
|
||||||
|
# env:
|
||||||
|
# USER_UID: "1000"
|
||||||
|
# USER_GID: "1000"
|
||||||
|
# DB_TYPE: mysql
|
||||||
|
# DB_HOST: "{{ gitea_dbname }}"
|
||||||
|
# DB_NAME: "{{ gitea_dbname }}"
|
||||||
|
# DB_USER: "{{ gitea_dbuser }}"
|
||||||
|
# DB_PASSWD: "{{ gitea_dbpass }}"
|
||||||
|
# ROOT_URL: "https://{{ gitea_domain }}/"
|
||||||
|
# SSH_DOMAIN: "{{ gitea_domain }}"
|
||||||
|
# DOMAIN: "{{ gitea_domain }}"
|
||||||
|
# labels:
|
||||||
|
# traefik.http.routers.gitea.rule: "Host(`{{ gitea_domain }}`)"
|
||||||
|
# traefik.http.routers.gitea.entrypoints: websecure
|
||||||
|
# traefik.http.routers.gitea.tls.certresolver: letsencrypt
|
||||||
|
# traefik.http.routers.gitea.middlewares: "securehttps@file"
|
||||||
|
# traefik.http.services.gitea.loadbalancer.server.port: "3000"
|
||||||
|
# traefik.docker.network: traefik
|
||||||
|
# traefik.enable: "true"
|
@@ -1,7 +1,37 @@
|
|||||||
- import_tasks: proxy.yml
|
- name: Create nginx root
|
||||||
tags: proxy
|
file:
|
||||||
when: proxy is defined
|
path: "{{ nginx_root }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
- import_tasks: webserver.yml
|
- name: Generate deploy keys
|
||||||
tags: nginx
|
openssh_keypair:
|
||||||
when: nginx_domain is defined
|
path: "{{ nginx_repo_key }}"
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Clone static website files
|
||||||
|
git:
|
||||||
|
repo: "{{ nginx_repo_url }}"
|
||||||
|
dest: "{{ nginx_html }}"
|
||||||
|
version: "{{ nginx_repo_branch }}"
|
||||||
|
key_file: "{{ nginx_repo_key }}"
|
||||||
|
separate_git_dir: "{{ nginx_repo_dest }}"
|
||||||
|
|
||||||
|
- name: Start nginx container
|
||||||
|
docker_container:
|
||||||
|
name: "{{ nginx_name }}"
|
||||||
|
image: nginx:{{ nginx_version }}
|
||||||
|
state: started
|
||||||
|
restart_policy: always
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: traefik
|
||||||
|
volumes:
|
||||||
|
- "{{ nginx_html }}:/usr/share/nginx/html:ro"
|
||||||
|
labels:
|
||||||
|
traefik.http.routers.nginx.rule: "Host(`{{ nginx_domain }}`)"
|
||||||
|
traefik.http.middlewares.nginxauth.basicauth.users: "{{ nginx_auth }}"
|
||||||
|
traefik.http.routers.nginx.entrypoints: websecure
|
||||||
|
traefik.http.routers.nginx.tls.certresolver: letsencrypt
|
||||||
|
traefik.http.routers.nginx.middlewares: "securehttps@file,nginxauth"
|
||||||
|
traefik.docker.network: traefik
|
||||||
|
traefik.enable: "true"
|
||||||
|
@@ -1,17 +0,0 @@
|
|||||||
- name: Install nginx
|
|
||||||
apt:
|
|
||||||
name: nginx
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Install nginx configuration
|
|
||||||
template:
|
|
||||||
src: nginx.conf.j2
|
|
||||||
dest: /etc/nginx/nginx.conf
|
|
||||||
mode: '0644'
|
|
||||||
register: nginx_conf
|
|
||||||
|
|
||||||
- name: Reload nginx
|
|
||||||
service:
|
|
||||||
name: nginx
|
|
||||||
state: reloaded
|
|
||||||
enabled: true
|
|
@@ -1,37 +0,0 @@
|
|||||||
- name: Create nginx root
|
|
||||||
file:
|
|
||||||
path: "{{ nginx_root }}"
|
|
||||||
state: directory
|
|
||||||
|
|
||||||
- name: Generate deploy keys
|
|
||||||
openssh_keypair:
|
|
||||||
path: "{{ nginx_repo_key }}"
|
|
||||||
state: present
|
|
||||||
|
|
||||||
- name: Clone static website files
|
|
||||||
git:
|
|
||||||
repo: "{{ nginx_repo_url }}"
|
|
||||||
dest: "{{ nginx_html }}"
|
|
||||||
version: "{{ nginx_repo_branch }}"
|
|
||||||
key_file: "{{ nginx_repo_key }}"
|
|
||||||
separate_git_dir: "{{ nginx_repo_dest }}"
|
|
||||||
|
|
||||||
- name: Start nginx container
|
|
||||||
docker_container:
|
|
||||||
name: "{{ nginx_name }}"
|
|
||||||
image: nginx:{{ nginx_version }}
|
|
||||||
state: started
|
|
||||||
restart_policy: always
|
|
||||||
networks_cli_compatible: true
|
|
||||||
networks:
|
|
||||||
- name: traefik
|
|
||||||
volumes:
|
|
||||||
- "{{ nginx_html }}:/usr/share/nginx/html:ro"
|
|
||||||
labels:
|
|
||||||
traefik.http.routers.nginx.rule: "Host(`{{ nginx_domain }}`)"
|
|
||||||
traefik.http.middlewares.nginxauth.basicauth.users: "{{ nginx_auth }}"
|
|
||||||
traefik.http.routers.nginx.entrypoints: websecure
|
|
||||||
traefik.http.routers.nginx.tls.certresolver: letsencrypt
|
|
||||||
traefik.http.routers.nginx.middlewares: "securehttps@file,nginxauth"
|
|
||||||
traefik.docker.network: traefik
|
|
||||||
traefik.enable: "true"
|
|
@@ -1,45 +0,0 @@
|
|||||||
user www-data;
|
|
||||||
worker_processes auto;
|
|
||||||
pid /run/nginx.pid;
|
|
||||||
include /etc/nginx/modules-enabled/*.conf;
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
http {
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
|
||||||
sendfile on;
|
|
||||||
#tcp_nopush on;
|
|
||||||
keepalive_timeout 65;
|
|
||||||
#gzip on;
|
|
||||||
|
|
||||||
include /etc/nginx/conf.d/*.conf;
|
|
||||||
}
|
|
||||||
|
|
||||||
## tcp LB and SSL passthrough for backend ##
|
|
||||||
stream {
|
|
||||||
upstream traefik {
|
|
||||||
server 127.0.0.1:4430 max_fails=3 fail_timeout=10s;
|
|
||||||
}
|
|
||||||
|
|
||||||
log_format basic '$remote_addr [$time_local] '
|
|
||||||
'$protocol $status $bytes_sent $bytes_received '
|
|
||||||
'$session_time "$upstream_addr" '
|
|
||||||
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/traefik_access.log basic;
|
|
||||||
error_log /var/log/nginx/traefik_error.log;
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 443;
|
|
||||||
proxy_pass traefik;
|
|
||||||
proxy_next_upstream on;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,5 +0,0 @@
|
|||||||
- name: Reload nginx
|
|
||||||
service:
|
|
||||||
name: nginx
|
|
||||||
state: reloaded
|
|
||||||
listen: reload_nginx
|
|
@@ -1,12 +0,0 @@
|
|||||||
- name: Install nginx
|
|
||||||
apt:
|
|
||||||
name: nginx
|
|
||||||
state: present
|
|
||||||
update_cache: true
|
|
||||||
|
|
||||||
- name: Install nginx configuration
|
|
||||||
template:
|
|
||||||
src: nginx.conf.j2
|
|
||||||
dest: /etc/nginx/nginx.conf
|
|
||||||
mode: '0644'
|
|
||||||
notify: reload_nginx
|
|
Reference in New Issue
Block a user