98 lines
2.8 KiB
YAML
98 lines
2.8 KiB
YAML
- 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 }}"
|