Skip to content

Commit 81562b8

Browse files
committed
New feature: copy files from s3
Now, it is possible to download files from a s3 bucket instead of copying from ansible inventory or has a template. GN-1143
1 parent 4221a6d commit 81562b8

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

defaults/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ docker_deploy_stack_template_backup: true
1414
docker_deploy_folders_additional: []
1515
docker_deploy_folders: "{{ docker_deploy_files + docker_deploy_templates + docker_deploy_git_repositories + docker_deploy_folders_additional }}"
1616
docker_deploy_files: []
17+
docker_deploy_s3: []
1718
docker_deploy_templates: []
1819
docker_deploy_git_repositories: []
1920
docker_deploy_configs: []

tasks/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
register: docker_deploy_files_out
5656
tags: docker_deploy
5757

58+
- name: Copy files from S3
59+
include_tasks: s3.yml
60+
when: "{{ docker_deploy_s3_files | length > 0 }}"
61+
tags: docker_deploy
62+
5863
- name: Template files with src
5964
template:
6065
src: "{{ item.src }}"

tasks/s3.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
- name: Install s3cmd
3+
package:
4+
name: s3cmd
5+
state: present
6+
tags: docker_deploy
7+
8+
- name: Download file from S3
9+
shell: "{{ s3cmd_prefix }} {{ item.src if item.src.startswith('s3://') else 's3://' + docker_deploy_s3_bucket + ( '' if item.src.startswith('/') else '/' ) + item.src }} {{ item.dest }}"
10+
vars:
11+
s3cmd_prefix: s3cmd get --force {{ '--host ' + docker_deploy_s3_host + ' --host-bucket ' + docker_deploy_s3_bucket }}
12+
environment:
13+
AWS_ACCESS_KEY_ID: "{{ docker_deploy_s3_access_key_id }}"
14+
AWS_SECRET_ACCESS_KEY: "{{ docker_deploy_s3_secret_access_key }}"
15+
when: item.src is defined and ( item.when | default(true) | bool )
16+
with_items: "{{ ( docker_deploy_s3_files | selectattr('service', 'in', limited_services.split(',') ) ) if limited_services is defined else docker_deploy_s3_files }}"
17+
loop_control:
18+
label: "{{ item.dest }}"
19+
register: docker_deploy_s3_out
20+
tags: docker_deploy
21+
22+
- name: Change permissions of s3 copied files
23+
file:
24+
dest: "{{ item.dest }}"
25+
mode: "{{ item.mode | default('0644') }}"
26+
owner: "{{ item.owner | default('root') }}"
27+
group: "{{ item.group | default('root') }}"
28+
when: item.src is defined and ( item.when | default(true) | bool )
29+
with_items: "{{ ( docker_deploy_s3_files | selectattr('service', 'in', limited_services.split(',') ) ) if limited_services is defined else docker_deploy_s3_files }}"
30+
loop_control:
31+
label: "{{ item.dest }}"
32+
register: docker_deploy_s3_permissions_out
33+
tags: docker_deploy

0 commit comments

Comments
 (0)