Add Ansible/meteo_setup.yml

This commit is contained in:
2025-07-25 09:46:21 +00:00
parent 89ad89268b
commit 51367c52c0

97
Ansible/meteo_setup.yml Normal file
View File

@ -0,0 +1,97 @@
- name: Wdrożenie weather-app i usług wspierających za pomocą Dockera
hosts: my_hosts
become: true
vars:
docker_registry_url: registry.example.com
docker_registry_username: your_registry_user
docker_registry_password: "{{ vault_docker_registry_password }}"
weather_app_image: registry.example.com/weather/weather-app:latest
pg_container_name: db
pg_image: postgres:16
pg_user: weather_user
pg_password: "{{ vault_pg_password }}"
pg_db: weather
pg_volume: weather_data
pg_network: shared-net
roles:
- geerlingguy.docker
tasks:
- name: Zaloguj się do prywatnego rejestru Dockera
community.docker.docker_login:
registry_url: "{{ docker_registry_url }}"
username: "{{ docker_registry_username }}"
password: "{{ docker_registry_password }}"
- name: Upewnij się, że sieć Docker '{{ pg_network }}' istnieje
community.docker.docker_network:
name: "{{ pg_network }}"
state: present
- name: Utwórz wolumen Docker dla PostgreSQL
community.docker.docker_volume:
name: "{{ pg_volume }}"
- name: Pobierz najnowszy obraz aplikacji weather-app
community.docker.docker_image:
name: "{{ weather_app_image }}"
source: pull
force_source: true
- name: Uruchom kontener PostgreSQL
community.docker.docker_container:
name: "{{ pg_container_name }}"
image: "{{ pg_image }}"
restart_policy: always
state: started
env:
POSTGRES_USER: "{{ pg_user }}"
POSTGRES_PASSWORD: "{{ pg_password }}"
POSTGRES_DB: "{{ pg_db }}"
volumes:
- "{{ pg_volume }}:/var/lib/postgresql/data"
networks:
- name: "{{ pg_network }}"
- name: Uruchom kontener weather-app
community.docker.docker_container:
name: weather-app
image: "{{ weather_app_image }}"
restart_policy: always
state: started
ports:
- "8000:8000"
env:
DATABASE_URL: "postgresql+asyncpg://{{ pg_user }}:{{ pg_password }}@db:5432/{{ pg_db }}"
networks:
- name: "{{ pg_network }}"
- name: Uruchom kontener Redis
community.docker.docker_container:
name: redis
image: redis:7
restart_policy: always
state: started
networks:
- name: "{{ pg_network }}"
- name: Utwórz wolumen Docker dla MongoDB
community.docker.docker_volume:
name: mongo_data
state: present
- name: Uruchom kontener MongoDB
community.docker.docker_container:
name: mongo
image: mongo:6
restart_policy: always
state: started
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
networks:
- name: "{{ pg_network }}"