From fca0d8655b067f09a2f304e787a090e738a6f8ff Mon Sep 17 00:00:00 2001 From: git Date: Sat, 4 May 2024 21:42:44 +0200 Subject: [PATCH] jellyfin, monitoring, dns --- roles/docker_spin_up/tasks/jellyfin.yml | 29 +++++++ roles/docker_spin_up/tasks/monitoring.yml | 82 +++++++++++++++++++ .../templates/promtail-config.yml | 60 ++++++++++++++ .../tasks/resolvconf_copy.yml | 8 ++ roles/linux_config_init/templates/resolvconf | 2 + 5 files changed, 181 insertions(+) create mode 100644 roles/docker_spin_up/tasks/jellyfin.yml create mode 100644 roles/docker_spin_up/tasks/monitoring.yml create mode 100644 roles/docker_spin_up/templates/promtail-config.yml create mode 100644 roles/linux_config_init/tasks/resolvconf_copy.yml create mode 100644 roles/linux_config_init/templates/resolvconf diff --git a/roles/docker_spin_up/tasks/jellyfin.yml b/roles/docker_spin_up/tasks/jellyfin.yml new file mode 100644 index 0000000..fd9d613 --- /dev/null +++ b/roles/docker_spin_up/tasks/jellyfin.yml @@ -0,0 +1,29 @@ +- name: Dir-jellyfin-config + ansible.builtin.file: + path: "{{ docker_homepath }}/config" + owner: "{{ user }}" + group: "{{ primary_group }}" + state: directory + mode: '0711' + +- name: Dir-jellyfin-cache + ansible.builtin.file: + path: "{{ docker_homepath }}/cache" + owner: "{{ user }}" + group: "{{ primary_group }}" + state: directory + mode: '0711' + + +- name: jellyfin + community.docker.docker_container: + name: jellyfin + image: jellyfin/jellyfin:2024042215 + user: "{{ uid }}:{{ gid }}" + volumes: + - "/bigpool/tata/Music:/Music:ro" + - "{{ docker_homepath }}/config:/config" + - "{{ docker_homepath }}/cache:/cache" + restart_policy: unless-stopped + networks: + - name: http \ No newline at end of file diff --git a/roles/docker_spin_up/tasks/monitoring.yml b/roles/docker_spin_up/tasks/monitoring.yml new file mode 100644 index 0000000..cb8bea6 --- /dev/null +++ b/roles/docker_spin_up/tasks/monitoring.yml @@ -0,0 +1,82 @@ +--- +- name: Dir-loki + ansible.builtin.file: + path: "{{ docker_homepath }}/loki-data" + owner: "{{ user }}" + group: "{{ primary_group }}" + state: directory + mode: '0711' + +- name: Dir-grafana + ansible.builtin.file: + path: "{{ docker_homepath }}/grafana-data" + owner: "{{ user }}" + group: "{{ primary_group }}" + state: directory + mode: '0711' + +- name: Dir-promtail + ansible.builtin.file: + path: "{{ docker_homepath }}/promtail-data" + owner: "{{ user }}" + group: "{{ primary_group }}" + state: directory + mode: '0711' + +- name: promtail config copy + template: + src: ../templates/promtail-config.yml + dest: "{{ docker_homepath }}/promtail-data/promtail-config.yml" + owner: "{{ user}}" + group: "{{ primary_group }}" + mode: '0644' + +- name: loki + community.docker.docker_container: + name: loki + user: "{{ uid }}:{{ gid }}" + image: 'grafana/loki:main-2c878c8' + restart_policy: unless-stopped + #ports: + # - '3100:3100' + volumes: + - "{{ docker_homepath }}/loki-data:/loki" + - "/etc/resolv.conf:/etc/resolv.conf:ro" + - "/etc/timezone:/etc/timezone:ro" + - "/etc/localtime:/etc/localtime:ro" + networks: + - name: http + +- name: grafana + community.docker.docker_container: + name: grafana + image: 'grafana/grafana:10.2.6' + user: "{{ uid }}:{{ gid }}" + restart_policy: unless-stopped + #ports: + # - '3000:3000' + volumes: + - "{{ docker_homepath }}/grafana-data:/var/lib/grafana" + - "/etc/timezone:/etc/timezone:ro" + - "/etc/localtime:/etc/localtime:ro" + networks: + - name: http + +- name: promtail + community.docker.docker_container: + name: promtail + image: 'grafana/promtail:main-e2952b9' + user: "0:0" + restart_policy: unless-stopped + command: -config.file=/etc/promtail/promtail-config.yml -config.expand-env=true + #ports: + # - '3000:3000' + volumes: + - "{{ docker_homepath }}/promtail-data:/etc/promtail" + - "/var/log:/var/log:ro" + - "/run/log/journal/:/run/log/journal/:ro" + - "/etc/machine-id:/etc/machine-id:ro" + - "/etc/timezone:/etc/timezone:ro" + - "/etc/localtime:/etc/localtime:ro" + networks: + - name: http \ No newline at end of file diff --git a/roles/docker_spin_up/templates/promtail-config.yml b/roles/docker_spin_up/templates/promtail-config.yml new file mode 100644 index 0000000..c70257c --- /dev/null +++ b/roles/docker_spin_up/templates/promtail-config.yml @@ -0,0 +1,60 @@ +server: + http_listen_port: 9080 + grpc_listen_port: 0 +positions: + filename: /tmp/positions.yaml +clients: + - url: http://loki:3100/loki/api/v1/push + #- url: https://loki.internal.matous.vondrejka.cz/loki/api/v1/push + +scrape_configs: + - job_name: journal + journal: + json: false + max_age: 12h + path: /var/log/journal + labels: + job: systemd-journal + relabel_configs: + - source_labels: ['__journal__systemd_unit'] + target_label: 'unit' + + + - job_name: docker + static_configs: + - targets: + - localhost + labels: + job: containerlogs + __path__: /var/lib/docker/containers/*/*log + + pipeline_stages: + - json: + expressions: + output: log + stream: stream + attrs: + - json: + expressions: + tag: + source: attrs + - regex: + expression: (?P(?:[^|]*[^|])).(?P(?:[^|]*[^|])).(?P(?:[^|]*[^|])).(?P(?:[^|]*[^|])) + source: tag + - timestamp: + format: RFC3339Nano + source: time + - labels: + tag: + stream: + image_name: + container_name: + image_id: + container_id: + - output: + source: output/*-json.log + + +#scrape_configs: +#- job_name: journald +# journal: {} diff --git a/roles/linux_config_init/tasks/resolvconf_copy.yml b/roles/linux_config_init/tasks/resolvconf_copy.yml new file mode 100644 index 0000000..044f8aa --- /dev/null +++ b/roles/linux_config_init/tasks/resolvconf_copy.yml @@ -0,0 +1,8 @@ +--- +- name: Copy /etc/network/interfaces + template: + src: ../templates/resolvconf + dest: /etc/resolv.conf + owner: root + group: root + mode: '0644' \ No newline at end of file diff --git a/roles/linux_config_init/templates/resolvconf b/roles/linux_config_init/templates/resolvconf new file mode 100644 index 0000000..767c5a5 --- /dev/null +++ b/roles/linux_config_init/templates/resolvconf @@ -0,0 +1,2 @@ +nameserver 192.168.6.7 +nameserver 8.8.8.8