diff --git a/devops/ansible/ansible.cfg b/devops/ansible/ansible.cfg index 1688503..3251b0d 100644 --- a/devops/ansible/ansible.cfg +++ b/devops/ansible/ansible.cfg @@ -2,4 +2,3 @@ inventory = inventory/hosts.ini host_key_checking = False timeout = 180 -interpreter_python= /usr/local/bin/python3.11.5 diff --git a/devops/ansible/app_api.yml b/devops/ansible/app_api.yml index 92b97ca..0d50e9c 100644 --- a/devops/ansible/app_api.yml +++ b/devops/ansible/app_api.yml @@ -7,7 +7,7 @@ gather_facts: true become: true vars: - docker_network: workspace + docker_network__name: workspace roles: - role: grzegorznowak.nvm_node nvm_node_version: 20.9.0 @@ -27,21 +27,21 @@ - role: geerlingguy.node_exporter - - role: create_docker_network + - role: docker_network - role: docker_loki_plugin - - role: start_docker - container_name: postgres - image: postgres:15.4 - networks: - - name: "{{ docker_network }}" - remove_existing_container: true - env: + - role: docker + docker__container_name: postgres + docker__image: postgres:15.4 + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: true + docker__env: POSTGRES_USER: "{{ postgres_user }}" POSTGRES_PASSWORD: "{{ postgres_password }}" POSTGRES_DB: "{{ postgres_db }}" - volumes: + docker__volumes: - "{{ postgres_volume }}" - ports: + docker__ports: - 5432:5432 diff --git a/devops/ansible/local.yml b/devops/ansible/local.yml index 03000bb..2470618 100644 --- a/devops/ansible/local.yml +++ b/devops/ansible/local.yml @@ -4,31 +4,31 @@ become: true gather_facts: false vars: - docker_network: workspace + docker_network__name: workspace roles: - - role: create_docker_network + - role: docker_network - - role: start_docker - container_name: nats - image: nats:latest - command: --jetstream --store_dir /data/nats-server/ -m 8222 - volumes: + - role: docker + docker__container_name: nats + docker__image: nats:latest + docker__command: --jetstream --store_dir /data/nats-server/ -m 8222 + docker__volumes: - /mnt/nats:/data/nats-server/jetstream - networks: - - name: "{{ docker_network }}" - remove_existing_container: true - ports: + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: true + docker__ports: - 4222:4222 - 6222:6222 - 8222:8222 - - role: start_docker - container_name: prometheus-nats-exporter - image: natsio/prometheus-nats-exporter:latest - networks: - - name: "{{ docker_network }}" - remove_existing_container: true - entrypoint: + - role: docker + docker__container_name: prometheus-nats-exporter + docker__image: natsio/prometheus-nats-exporter:latest + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: true + docker__entrypoint: - /prometheus-nats-exporter - -varz - -channelz @@ -41,27 +41,27 @@ - -gatewayz - -jsz=all - http://nats:8222/ - ports: + docker__ports: - 8223:7777 - - role: start_docker - container_name: postgres - image: postgres:13.1 - networks: - - name: "{{ docker_network }}" - remove_existing_container: false - env: + - role: docker + docker__container_name: postgres + docker__image: postgres:13.1 + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: false + docker__env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres - volumes: + docker__volumes: - /var/lib/postgres:/var/lib/postgresql/data - ports: + docker__ports: - 5432:5432 - role: grafana grafana__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" grafana__remove_existing_container: true grafana__ports: - 3050:3000 @@ -72,13 +72,13 @@ - role: prometheus prometheus__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" prometheus__remove_existing_container: true prometheus__template: "{{ playbook_dir }}/templates/prometheus/prometheus-local.yml.j2" - role: loki loki__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" loki__remove_existing_container: true loki__ports: - 3100:3100 diff --git a/devops/ansible/metrics.yml b/devops/ansible/metrics.yml index d06ef48..f317f70 100644 --- a/devops/ansible/metrics.yml +++ b/devops/ansible/metrics.yml @@ -4,16 +4,16 @@ gather_facts: true become: true vars: - docker_network: workspace + docker_network__name: workspace roles: - role: geerlingguy.docker docker_users: [ubuntu] - - role: create_docker_network + - role: docker_network - role: grafana grafana__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" grafana__remove_existing_container: true grafana__ports: - 3050:3000 @@ -24,13 +24,13 @@ - role: prometheus prometheus__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" prometheus__remove_existing_container: true prometheus__template: "{{ playbook_dir }}/templates/prometheus/prometheus.yml.j2" - role: loki loki__networks: - - name: "{{ docker_network }}" + - name: "{{ docker_network__name }}" loki__remove_existing_container: true loki__ports: - 3100:3100 diff --git a/devops/ansible/nats.yml b/devops/ansible/nats.yml index bc03651..4a8f64b 100644 --- a/devops/ansible/nats.yml +++ b/devops/ansible/nats.yml @@ -4,34 +4,34 @@ gather_facts: false become: true vars: - docker_network: workspace + docker_network__name: workspace roles: - role: geerlingguy.docker docker_users: [ubuntu] - - role: create_docker_network + - role: docker_network - - role: start_docker - container_name: nats - image: nats:latest - command: --jetstream --store_dir /data/nats-server/ -m 8222 - volumes: + - role: docker + docker__container_name: nats + docker__image: nats:latest + docker__command: --jetstream --store_dir /data/nats-server/ -m 8222 + docker__volumes: - /mnt/nats:/data/nats-server/jetstream - networks: - - name: "{{ docker_network }}" - remove_existing_container: true - ports: + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: true + docker__ports: - 4222:4222 - 6222:6222 - 8222:8222 - - role: start_docker - container_name: prometheus-nats-exporter - image: natsio/prometheus-nats-exporter:latest - networks: - - name: "{{ docker_network }}" - remove_existing_container: true - entrypoint: + - role: docker + docker__container_name: prometheus-nats-exporter + docker__image: natsio/prometheus-nats-exporter:latest + docker__networks: + - name: "{{ docker_network__name }}" + docker__remove_existing_container: true + docker__entrypoint: - /prometheus-nats-exporter - -varz - -channelz @@ -44,5 +44,5 @@ - -gatewayz - -jsz=all - http://nats:8222/ - ports: + docker__ports: - 8223:7777 diff --git a/devops/ansible/roles/create_docker_network/defaults/main.yml b/devops/ansible/roles/create_docker_network/defaults/main.yml deleted file mode 100644 index 487642a..0000000 --- a/devops/ansible/roles/create_docker_network/defaults/main.yml +++ /dev/null @@ -1,2 +0,0 @@ ---- -docker_network: default-network diff --git a/devops/ansible/roles/create_docker_network/tasks/main.yml b/devops/ansible/roles/create_docker_network/tasks/main.yml deleted file mode 100644 index 064d799..0000000 --- a/devops/ansible/roles/create_docker_network/tasks/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -- name: Create '{{ docker_network }}' network - community.docker.docker_network: - name: "{{ docker_network }}" diff --git a/devops/ansible/roles/docker/defaults/main.yml b/devops/ansible/roles/docker/defaults/main.yml new file mode 100644 index 0000000..86d773a --- /dev/null +++ b/devops/ansible/roles/docker/defaults/main.yml @@ -0,0 +1,12 @@ +--- +docker__container_name: +docker__image: +docker__network_mode: +docker__networks: [] +docker__remove_existing_container: true +docker__env: +docker__ports: +docker__command: +docker__volumes: +docker__entrypoint: +docker__restart_policy: always diff --git a/devops/ansible/roles/docker/tasks/main.yml b/devops/ansible/roles/docker/tasks/main.yml new file mode 100644 index 0000000..c9ff419 --- /dev/null +++ b/devops/ansible/roles/docker/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: Remove existing container {{ docker__container_name }} + community.docker.docker_container: + name: "{{ docker__container_name }}" + state: absent + when: docker__remove_existing_container + +- name: Run container {{ docker__container_name }} + community.docker.docker_container: + name: "{{ docker__container_name }}" + image: "{{ docker__image }}" + restart_policy: "{{ docker__restart_policy }}" + command: "{{ docker__command }}" + volumes: "{{ docker__volumes }}" + entrypoint: "{{ docker__entrypoint }}" + network_mode: "{{ docker__network_mode }}" + networks: "{{ docker__networks }}" + expose: "{{ docker__ports }}" + ports: "{{ docker__ports }}" + env: "{{ docker__env }}" diff --git a/devops/ansible/roles/docker_network/defaults/main.yml b/devops/ansible/roles/docker_network/defaults/main.yml new file mode 100644 index 0000000..691fc3f --- /dev/null +++ b/devops/ansible/roles/docker_network/defaults/main.yml @@ -0,0 +1,2 @@ +--- +docker_network__name: default-network diff --git a/devops/ansible/roles/docker_network/tasks/main.yml b/devops/ansible/roles/docker_network/tasks/main.yml new file mode 100644 index 0000000..ff14950 --- /dev/null +++ b/devops/ansible/roles/docker_network/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- name: Create network {{ docker_network__name }} + community.docker.docker_network: + name: "{{ docker_network__name }}" diff --git a/devops/ansible/roles/grafana/tasks/main.yml b/devops/ansible/roles/grafana/tasks/main.yml index e674e6a..fef75a5 100644 --- a/devops/ansible/roles/grafana/tasks/main.yml +++ b/devops/ansible/roles/grafana/tasks/main.yml @@ -1,5 +1,5 @@ --- -- name: Remove existing {{ grafana__container_name }} container +- name: Remove existing container {{ grafana__container_name }} community.docker.docker_container: name: "{{ grafana__container_name }}" state: absent @@ -21,16 +21,19 @@ ansible.builtin.template: src: "{{ grafana__config_template }}" dest: /etc/grafana/config.ini + mode: '0755' - name: Template config to /etc/grafana/datasource.yml ansible.builtin.template: src: "{{ grafana__datasource_template }}" dest: /etc/grafana/datasource.yml + mode: '0755' - name: Template config to /etc/grafana/dashboards.yaml ansible.builtin.template: src: "{{ grafana__dashboards_template }}" dest: /etc/grafana/dashboards.yaml + mode: '0755' - name: Deploy dashboards files ansible.builtin.copy: @@ -40,7 +43,7 @@ group: 472 mode: "0755" -- name: Run {{ grafana__container_name }} container +- name: Run container {{ grafana__container_name }} community.docker.docker_container: name: "{{ grafana__container_name }}" image: "{{ grafana__image }}" diff --git a/devops/ansible/roles/loki/tasks/main.yml b/devops/ansible/roles/loki/tasks/main.yml index d619f36..635c5a4 100644 --- a/devops/ansible/roles/loki/tasks/main.yml +++ b/devops/ansible/roles/loki/tasks/main.yml @@ -1,5 +1,5 @@ --- -- name: Remove existing {{ loki__container_name }} container +- name: Remove existing container {{ loki__container_name }} community.docker.docker_container: name: "{{ loki__container_name }}" state: absent @@ -15,8 +15,9 @@ ansible.builtin.template: src: "{{ loki__config_template }}" dest: /etc/loki/local-config.yaml + mode: "0755" -- name: Run {{ loki__container_name }} container +- name: Run container {{ loki__container_name }} community.docker.docker_container: name: "{{ loki__container_name }}" image: "{{ loki__image }}" diff --git a/devops/ansible/roles/prometheus/tasks/main.yml b/devops/ansible/roles/prometheus/tasks/main.yml index fbaee79..f198da0 100644 --- a/devops/ansible/roles/prometheus/tasks/main.yml +++ b/devops/ansible/roles/prometheus/tasks/main.yml @@ -1,5 +1,5 @@ --- -- name: Remove existing {{ prometheus__container_name }} container +- name: Remove existing container {{ prometheus__container_name }} community.docker.docker_container: name: "{{ prometheus__container_name }}" state: absent @@ -15,8 +15,9 @@ ansible.builtin.template: src: "{{ prometheus__template }}" dest: /etc/prometheus/prometheus.yml + mode: '0755' -- name: Run {{ prometheus__container_name }} container +- name: Run container {{ prometheus__container_name }} community.docker.docker_container: name: "{{ prometheus__container_name }}" image: "{{ prometheus__image }}" diff --git a/devops/ansible/roles/start_docker/defaults/main.yml b/devops/ansible/roles/start_docker/defaults/main.yml deleted file mode 100644 index 0aecf7a..0000000 --- a/devops/ansible/roles/start_docker/defaults/main.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- -container_name: -image: -network_mode: -networks: [] -remove_existing_container: true -env: -ports: -command: -volumes: -entrypoint: -restart_policy: always diff --git a/devops/ansible/roles/start_docker/tasks/main.yml b/devops/ansible/roles/start_docker/tasks/main.yml deleted file mode 100644 index fbe8b7b..0000000 --- a/devops/ansible/roles/start_docker/tasks/main.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- name: Remove existing {{ container_name }} container - community.docker.docker_container: - name: "{{ container_name }}" - state: absent - when: remove_existing_container - -- name: Run {{ container_name }} container - community.docker.docker_container: - name: "{{ container_name }}" - image: "{{ image }}" - restart_policy: "{{ restart_policy }}" - command: "{{ command }}" - volumes: "{{ volumes }}" - entrypoint: "{{ entrypoint }}" - network_mode: "{{ network_mode }}" - networks: "{{ networks }}" - expose: "{{ ports }}" - ports: "{{ ports }}" - env: "{{ env }}"