1 Commits
main ... hannes

Author SHA1 Message Date
Johannes Lanzinger
df21e8921b update maybe working 2025-12-17 12:12:52 +01:00
14 changed files with 2126 additions and 119 deletions

View File

@@ -3,7 +3,7 @@ name: CI/CD Pipeline
"on": "on":
push: push:
branches: [main, flip_dev, hannes] branches: [main, flip_dev]
jobs: jobs:
lint: lint:
@@ -38,8 +38,6 @@ jobs:
apt-get update && apt-get install -y python3 python3-pip openssh-client bash git apt-get update && apt-get install -y python3 python3-pip openssh-client bash git
pip3 install --upgrade pip pip3 install --upgrade pip
pip3 install ansible pip3 install ansible
ansible-galaxy collection install community.docker:">=3.5.0"
- name: Setup SSH - name: Setup SSH
shell: bash shell: bash

View File

@@ -13,7 +13,7 @@
update_cache: true update_cache: true
- name: Install Docker - name: Install Docker
shell: curl -fsSL https://get.docker.com | bash shell: curl -fsSL https://get.docker.com | sh
args: args:
creates: /usr/bin/docker creates: /usr/bin/docker

View File

@@ -1,33 +1,21 @@
---
- hosts: all - hosts: all
become: true become: true
vars: vars:
monitor_dir: /opt/docker/monitoring monitor_dir: /opt/docker/monitoring
docker_network: monitoring
tasks: tasks:
- name: Ensure monitoring directory exists - name: Create monitoring directory
file: file:
path: "{{ monitor_dir }}" path: "{{ monitor_dir }}"
state: directory state: directory
owner: root
group: root
mode: '0755'
- name: Copy monitoring stack - name: Copy monitoring stack
copy: copy:
src: ../../docker/monitoring/ src: ../../docker/monitoring/
dest: "{{ monitor_dir }}" dest: "{{ monitor_dir }}"
owner: root
group: root
mode: '0755'
- name: Ensure monitoring Docker network exists - name: Start monitoring
docker_network: command: docker compose up -d
name: "{{ docker_network }}" args:
state: present chdir: "{{ monitor_dir }}"
- name: Start monitoring stack
community.docker.docker_compose_v2:
project_src: "{{ monitor_dir }}"
project_name: monitoring
state: present

View File

@@ -1,11 +0,0 @@
- name: Ensure snake_net exists for monitoring
docker_network:
name: snake_net
state: present
- name: Start monitoring stack
community.docker.docker_compose:
project_src: /opt/docker/monitoring
project_name: monitoring
state: present
restarted: true

View File

@@ -7,7 +7,3 @@ services:
restart: unless-stopped restart: unless-stopped
ports: ports:
- "8080:80" - "8080:80"
networks:
snake_net:
external: true

View File

@@ -8,11 +8,6 @@
group: root group: root
mode: '0755' mode: '0755'
- name: Ensure snake_net exists
docker_network:
name: snake_net
state: present
# Login to private registry # Login to private registry
- name: Login to private registry - name: Login to private registry
docker_login: docker_login:
@@ -36,8 +31,6 @@
ports: ports:
- "8080:80" # host port → container port - "8080:80" # host port → container port
pull: yes pull: yes
networks:
- name: snake_net

View File

@@ -1,43 +1,45 @@
---
version: '3.8' version: '3.8'
services:
prometheus:
image: prom/prometheus:latest
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
networks:
- snake_net
restart: unless-stopped
nginx-prometheus-exporter:
image: nginx/nginx-prometheus-exporter:latest
container_name: nginx-prometheus-exporter
ports:
- "9113:9113"
environment:
- NGINX_STATUS_URL=http://nginx:8080/metrics
networks:
- snake_net
grafana:
image: grafana/grafana:latest
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning:ro
- grafana_data:/var/lib/grafana
environment:
GF_SECURITY_ADMIN_PASSWORD: "admin"
GF_DASHBOARDS_DEFAULT_HOME_DASHBOARD_PATH: /var/lib/grafana/dashboards/home.json
ports:
- "3000:3000"
networks:
- snake_net
restart: unless-stopped
volumes:
grafana_data:
networks: networks:
snake_net: snake_net:
external: true external: true
services:
prometheus:
image: prom/prometheus:latest
container_name: monitoring-prometheus
ports:
- "9090:9090"
volumes:
- ./prometheus.yaml:/etc/prometheus/prometheus.yml
networks:
- snake_net
grafana:
image: grafana/grafana:latest
container_name: monitoring-grafana
ports:
- "3000:3000"
volumes:
- ./grafana/provisioning:/etc/grafana/provisioning
- ./grafana/dashboards:/var/lib/grafana/dashboards
networks:
- snake_net
nginx-exporter:
image: nginx/nginx-prometheus-exporter:latest
container_name: nginx-exporter
ports:
- "9113:9113"
networks:
- snake_net
blackbox-exporter:
image: prom/blackbox-exporter:latest
container_name: blackbox-exporter
ports:
- "9115:9115"
networks:
- snake_net

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
---
apiVersion: 1
providers:
- name: 'default'
folder: 'Home'
type: file
editable: true
options:
path: /var/lib/grafana/dashboards

View File

@@ -1,9 +0,0 @@
---
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true

View File

@@ -10,17 +10,3 @@ scrape_configs:
- job_name: 'nginx' - job_name: 'nginx'
static_configs: static_configs:
- targets: ['nginx-prometheus-exporter:9113'] - targets: ['nginx-prometheus-exporter:9113']
- job_name: 'snake-game'
metrics_path: /probe
params:
module: [http_2xx] # probe returns 1 if HTTP 200
static_configs:
- targets: ['snake-game:8080'] # snake game container + port
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115