Files
devops-platform/ansible/playbooks/deploy_app.yml
T
2026-10-21 11:59:49 +03:00

57 lines
1.5 KiB
YAML

---
- name: Deploy DevOps application
hosts: targets
become: true
vars:
deploy_image: "mikhaillobanov/devops-platform:latest"
tasks:
- name: Create application directory
ansible.builtin.file:
path: /opt/devops-platform
state: directory
owner: root
group: root
mode: '0755'
- name: Copy Docker Compose configuration
ansible.builtin.copy:
src: "{{ playbook_dir }}/../../compose.yaml"
dest: /opt/devops-platform/compose.yaml
owner: root
group: root
mode: '0644'
- name: Deploy application with Docker Compose
ansible.builtin.command:
cmd: docker compose up -d --pull always
chdir: /opt/devops-platform
environment:
IMAGE: "{{ deploy_image }}"
register: deploy_result
changed_when: >
'Created' in deploy_result.stdout or
'Started' in deploy_result.stdout or
'Pulled' in deploy_result.stdout or
'Recreated' in deploy_result.stdout
- name: Wait for application health endpoint
ansible.builtin.uri:
url: http://127.0.0.1:8000/health
method: GET
status_code: 200
return_content: true
register: health_result
retries: 10
delay: 3
until: health_result.status == 200
- name: Show deployed image
ansible.builtin.debug:
msg: "Deployed image: {{ deploy_image }}"
- name: Show application health
ansible.builtin.debug:
var: health_result.json