diff --git a/files/homepage/docker-compose.yml.j2 b/files/homepage/docker-compose.template.yml similarity index 64% rename from files/homepage/docker-compose.yml.j2 rename to files/homepage/docker-compose.template.yml index 46fa6e8..d0ec31d 100644 --- a/files/homepage/docker-compose.yml.j2 +++ b/files/homepage/docker-compose.template.yml @@ -1,10 +1,9 @@ services: homepage_app: - image: "{{ registry_homepage_web_image }}" + # noinspection ComposeUnknownValues + image: "{{ registry_homepage_nginx_image }}" container_name: homepage_app restart: unless-stopped - ports: - - "127.0.0.1:{{ homepage_port }}:80" networks: - "web_proxy_network" diff --git a/playbook-homepage-registry.yml b/playbook-homepage-registry.yml new file mode 100644 index 0000000..bcf6415 --- /dev/null +++ b/playbook-homepage-registry.yml @@ -0,0 +1,21 @@ +--- +- name: "Upload local homepage images to registry" + hosts: all + gather_facts: no + + vars_files: + - vars/ports.yml + - vars/secrets.yml + - vars/homepage.yml + - vars/homepage.images.yml + + tasks: + + - name: "Push web service image to remote registry" + community.docker.docker_image: + state: present + source: local + name: "{{ homepage_nginx_image }}" + repository: "{{ registry_homepage_nginx_image }}" + push: true + delegate_to: 127.0.0.1 diff --git a/playbook-homepage.yml b/playbook-homepage.yml index 349d7ab..73046dc 100644 --- a/playbook-homepage.yml +++ b/playbook-homepage.yml @@ -1,60 +1,28 @@ --- -# Play 1: Setup environment for the application -- name: "Setup environment for homepage application" +- name: "Setup and deploy homepage service" hosts: all + vars_files: - vars/ports.yml - vars/secrets.yml - vars/homepage.yml - tags: - - setup + - vars/homepage.images.yml + tasks: - name: "Create user and environment" ansible.builtin.import_role: name: owner vars: owner_name: "{{ app_user }}" - owner_extra_groups: - - "docker" - owner_ssh_keys: - - "{{ lookup('file', 'files/av_id_rsa.pub') }}" + owner_extra_groups: ["docker"] - name: "Login to yandex docker registry." ansible.builtin.script: cmd: "files/yandex-docker-registry-auth.sh" -# Play 2: Deploy the application -- name: "Deploy homepage application" - hosts: all - vars_files: - - vars/ports.yml - - vars/secrets.yml - - vars/homepage.yml - tags: - - deploy - tasks: - - name: "Check is web service image passed" - ansible.builtin.assert: - that: - - "homepage_web_image is defined" - fail_msg: 'You must pass variable "homepage_web_image"' - - - name: "Create full image name with container registry" - ansible.builtin.set_fact: - registry_homepage_web_image: "{{ (docker_registry_prefix, homepage_web_image) | path_join }}" - - - name: "Push web service image to remote registry" - community.docker.docker_image: - state: present - source: local - name: "{{ homepage_web_image }}" - repository: "{{ registry_homepage_web_image }}" - push: true - delegate_to: 127.0.0.1 - - name: "Copy docker compose file" ansible.builtin.template: - src: "./files/{{ app_name }}/docker-compose.yml.j2" + src: "./files/{{ app_name }}/docker-compose.template.yml" dest: "{{ base_dir }}/docker-compose.yml" owner: "{{ app_user }}" group: "{{ app_user }}" diff --git a/vars/homepage.images.yml b/vars/homepage.images.yml new file mode 100644 index 0000000..4f17b99 --- /dev/null +++ b/vars/homepage.images.yml @@ -0,0 +1,2 @@ +--- +homepage_nginx_image: "homepage-nginx:f797e17-1746518718" diff --git a/vars/homepage.yml b/vars/homepage.yml index 7f50930..8682166 100644 --- a/vars/homepage.yml +++ b/vars/homepage.yml @@ -4,4 +4,5 @@ app_user: "{{ app_name }}" base_dir: "/home/{{ app_user }}" docker_registry_prefix: "cr.yandex/crplfk0168i4o8kd7ade" -homepage_web_image: "{{ homepage_web_image | default(omit) }}" +# Registry images +registry_homepage_nginx_image: "{{ (docker_registry_prefix, homepage_nginx_image) | path_join }}"