71 lines
2.1 KiB
YAML
71 lines
2.1 KiB
YAML
# Aby uruchomic ten playbook przez Dockera:
|
|
# docker run --rm -it \
|
|
# -v /home/jakub/services/connect_moria:/ansible/playbooks \
|
|
# -v ~/.ssh/id_rsa:/root/.ssh/id_rsa:ro \
|
|
# willhallonline/ansible:latest \
|
|
# /bin/sh -c "ansible-galaxy install geerlingguy.docker && ansible-playbook -i /ansible/playbooks/hosts.ini /ansible/playbooks/meteo_setup.yml"
|
|
|
|
- name: Setup weather-app and DB
|
|
hosts: moria
|
|
become: true
|
|
|
|
vars:
|
|
docker_registry_username: "<TWOJ_UZYTKOWNIK>"
|
|
docker_registry_password: "<TAJNE_HASLO>"
|
|
docker_image: "registry.cbpio.pl/twoj_uzytkownik/weather-app:latest"
|
|
|
|
pg_container_name: db
|
|
pg_image: postgres:16
|
|
pg_user: weather_user
|
|
pg_password: weather_pass
|
|
pg_db: weather
|
|
pg_volume: weather_data
|
|
pg_network: shared-net
|
|
|
|
roles:
|
|
- geerlingguy.docker
|
|
|
|
tasks:
|
|
- name: Docker login
|
|
community.docker.docker_login:
|
|
registry_url: registry.cbpio.pl
|
|
username: "{{ docker_registry_username }}"
|
|
password: "{{ docker_registry_password }}"
|
|
|
|
- name: Create network
|
|
community.docker.docker_network:
|
|
name: "{{ pg_network }}"
|
|
state: present
|
|
|
|
- name: Create volume
|
|
community.docker.docker_volume:
|
|
name: "{{ pg_volume }}"
|
|
|
|
- name: Start DB container
|
|
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: Start app container
|
|
community.docker.docker_container:
|
|
name: weather-app
|
|
image: "{{ docker_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 }}"
|