react-project/deploy-api.yml
2024-02-28 12:42:50 +02:00

69 lines
1.7 KiB
YAML

- name: Deploy Application
hosts: api
remote_user: root
pre_tasks:
- name: "Assert project_name is provided and not empty"
assert:
that:
- project_name is not undefined and project_name != ""
tasks:
# debug section
- debug: var=inventory_hostname
- name: check resolv.conf file exists
stat:
path: /etc/resolv.conf
register: resolv_conf
- name: print a debug message when resolv.config file does not exists
debug:
msg: "The resolv.conf path doesn't exist."
when: resolv_conf.stat.exists == False
- name: "read /etc/resolv.conf"
command: /bin/cat /etc/resolv.conf
register: resolv_content
- debug: msg="{{ resolv_content.stdout_lines | quote }}"
## Login
- name: Login to registry
docker_login:
registry_url: "{{ registry_url }}"
username: "{{ registry_username }}"
password: "{{ registry_password }}"
reauthorize: true
# Deploy image
- name: Create config directory
file:
path: "{{ config_dir }}" # /etc/app-x-y
state: directory
recurse: yes
- name: Create .env file
file:
state: touch
path: "{{ config_dir }}/.env"
mode: '0600'
- name: Execute docker-compose
shell: cd "{{ config_dir }}" && docker-compose down
ignore_errors: true
- name: "Upload docker-compose template" # fills the tempalte with variables from ansile
template:
src: "templates/docker-compose-api.yml"
dest: "{{ config_dir }}/docker-compose.yml"
- name: Execute docker-compose
shell: cd "{{ config_dir }}" && docker-compose up -d
- name: Create log file
file:
path: "/var/log/{{ project_name }}"
state: directory
recurse: yes