- name: Deploy artifact to instance. hosts: localhost become: true gather_facts: false vars_files: - ../config/ansible.secret.json - ../config/infrastructure.secret.json vars: ansible_connection: aws_ssm ansible_python_interpreter: /usr/bin/python3 ansible_aws_ssm_plugin: "{{ ssm_plugin }}" ansible_aws_ssm_bucket_name: "{{ image_bucket }}" ansible_aws_ssm_instance_id: "{{ instance_id.value }}" ansible_aws_ssm_region: "{{ aws_region }}" ansible_aws_ssm_access_key_id: "{{ aws_access_key }}" ansible_aws_ssm_secret_access_key: "{{ aws_secret_key }}" tasks: - name: Stop server. community.docker.docker_container: name: "{{ item }}" state: stopped loop: [server, backup] - name: Copy backup from S3. environment: region: "{{ boot_region.value }}" access_key: "{{ boot_id.value }}" secret_key: "{{ boot_secret.value }}" amazon.aws.s3_object: bucket: "{{ restore_bucket | mandatory(msg='You must specify the bucket of the data.') }}" object: "{{ restore_key | mandatory(msg='You must specify the key of the data.') }}" dest: /home/ssm-user/backup.tar.gz mode: get - name: Ensure backup directory exists. ansible.builtin.file: path: /home/ssm-user/backup state: directory mode: '0777' - name: Extract backup. ansible.builtin.unarchive: src: /home/ssm-user/backup.tar.gz dest: /home/ssm-user/backup remote_src: true - name: Move backup files to data folder. ansible.builtin.copy: remote_src: true src: /home/ssm-user/backup/backup/my-app-backup/ dest: /home/ssm-user/data/ mode: '0777' - name: Update permissions. ansible.builtin.file: path: /home/ssm-user/data recurse: true mode: '0777' owner: 1000 group: 1000 - name: Restart containers. community.docker.docker_container: name: "{{ item }}" state: started loop: [server, backup]