From b80bc110c30685264e7d5469f67c8558a757c10e Mon Sep 17 00:00:00 2001 From: Kris Lamoureux Date: Sat, 18 Jul 2020 01:58:57 -0400 Subject: [PATCH] Integrate Nextcloud and Traefik into Dockerbox --- dev/dockerbox.yml | 2 ++ dev/host_vars/dockerbox.yml | 23 ++++++++++++++++++----- roles/jenkins/defaults/main.yml | 0 roles/jenkins/tasks/main.yml | 12 +++++++++--- roles/prometheus/tasks/main.yml | 26 ++++++++++++++++++++++---- 5 files changed, 51 insertions(+), 12 deletions(-) create mode 100644 roles/jenkins/defaults/main.yml diff --git a/dev/dockerbox.yml b/dev/dockerbox.yml index a1996c9..9bc3acf 100644 --- a/dev/dockerbox.yml +++ b/dev/dockerbox.yml @@ -6,5 +6,7 @@ roles: - base - docker + - traefik + - nextcloud - jenkins - prometheus diff --git a/dev/host_vars/dockerbox.yml b/dev/host_vars/dockerbox.yml index 1b609f2..dd3e108 100644 --- a/dev/host_vars/dockerbox.yml +++ b/dev/host_vars/dockerbox.yml @@ -1,18 +1,31 @@ # base allow_reboot: false manage_network: false -network_type: static -ip_inter: eth1 -ip_addr: 192.168.1.2/24 -ip_gateway: 192.168.1.1 # docker docker_user: vagrant +# traefik +traefik_dashboard: true +traefik_domain: traefik.vm.krislamo.org +traefik_auth: admin:$apr1$T1l.BCFz$Jyg8msXYEAUi3LLH39I9d1 # admin:admin + +# nextcloud +nextcloud_version: stable +nextcloud_admin: admin +nextcloud_pass: password +nextcloud_domain: cloud.vm.krislamo.org + +nextcloud_dbversion: latest +nextcloud_dbpass: password + # jenkins -jenkins_version: 2.229 +jenkins_version: lts +jenkins_domain: jenkins.vm.krislamo.org # prometheus prom_name: prometheus prom_version: latest +prom_domain: prom.vm.krislamo.org +grafana_domain: grafana.vm.krislamo.org prom_targets: "['127.0.0.1', '127.0.0.1:9100']" diff --git a/roles/jenkins/defaults/main.yml b/roles/jenkins/defaults/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/jenkins/tasks/main.yml b/roles/jenkins/tasks/main.yml index 3abdd23..760be5c 100644 --- a/roles/jenkins/tasks/main.yml +++ b/roles/jenkins/tasks/main.yml @@ -33,7 +33,13 @@ state: started restart_policy: always ports: - - 8080:8080 - 50000:50000 - volumes: - - /home/{{ docker_user }}/jenkins:/var/jenkins_home + volumes: "/home/{{ docker_user }}/jenkins:/var/jenkins_home" + networks_cli_compatible: true + networks: + - name: traefik + labels: + traefik.http.routers.jenkins.rule: "Host(`{{ jenkins_domain }}`)" + traefik.http.routers.jenkins.entrypoints: websecure + traefik.docker.network: traefik + traefik.enable: "true" diff --git a/roles/prometheus/tasks/main.yml b/roles/prometheus/tasks/main.yml index 6007264..544b9b4 100644 --- a/roles/prometheus/tasks/main.yml +++ b/roles/prometheus/tasks/main.yml @@ -18,6 +18,10 @@ src: prometheus-config.yml dest: /home/{{ docker_user }}/prometheus/prometheus.yml +- name: Create Prometheus network + docker_network: + name: "{{ prom_name }}" + - name: Start Prometheus container docker_container: name: "{{ prom_name }}" @@ -26,12 +30,26 @@ restart_policy: always volumes: - /home/{{ docker_user }}/prometheus:/etc/prometheus - ports: - - "80:9090" + networks_cli_compatible: true + networks: + - name: "{{ prom_name }}" + - name: traefik + labels: + traefik.http.routers.prometheus.rule: "Host(`{{ prom_domain }}`)" + traefik.http.routers.prometheus.entrypoints: websecure + traefik.docker.network: traefik + traefik.enable: "true" - name: Start Grafana container docker_container: name: grafana image: grafana/grafana:latest - ports: - - "3000:3000" + networks_cli_compatible: true + networks: + - name: "{{ prom_name }}" + - name: traefik + labels: + traefik.http.routers.grafana.rule: "Host(`{{ grafana_domain }}`)" + traefik.http.routers.grafana.entrypoints: websecure + traefik.docker.network: traefik + traefik.enable: "true"