]>
Commit | Line | Data |
---|---|---|
1 | - name: Configure Drain | |
2 | when: syslog_server is defined or clever_syslog_server is defined | |
3 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-drain.sh" | |
4 | args: | |
5 | chdir: "{{ clever_app_root }}" | |
6 | environment: | |
7 | SYSLOG_UDP_SERVER: "{{ clever_syslog_server | default(syslog_server) }}" | |
8 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
9 | ||
10 | - name: Configure Domain | |
11 | when: domain is defined or clever_domain is defined | |
12 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-domain.sh" | |
13 | args: | |
14 | chdir: "{{ clever_app_root }}" | |
15 | environment: | |
16 | DOMAIN: "{{ clever_domain | default(domain) }}" | |
17 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
18 | ||
19 | - name: Configure Build Instance | |
20 | when: clever_build_flavor is defined | |
21 | command: "clever scale --build-flavor {{ clever_build_flavor }}" | |
22 | args: | |
23 | chdir: "{{ clever_app_root }}" | |
24 | environment: | |
25 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
26 | ||
27 | - name: Configure Scalability | |
28 | when: clever_scaling is defined | |
29 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-scalability.sh" | |
30 | args: | |
31 | chdir: "{{ clever_app_root }}" | |
32 | environment: | |
33 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
34 | INSTANCES: "{{ clever_scaling.instances.fixed | default ('') }}" | |
35 | MIN_INSTANCES: "{{ clever_scaling.instances.min | default('') }}" | |
36 | MAX_INSTANCES: "{{ clever_scaling.instances.max | default('') }}" | |
37 | FLAVOR: "{{ clever_scaling.flavor.fixed | default('') }}" | |
38 | MIN_FLAVOR: "{{ clever_scaling.flavor.min | default('') }}" | |
39 | MAX_FLAVOR: "{{ clever_scaling.flavor.max | default('') }}" | |
40 | ||
41 | - name: Configure service dependencies | |
42 | include_tasks: service-dep.yml | |
43 | vars: | |
44 | service_dep: "{{ item }}" | |
45 | with_items: "{{ clever_service_dependencies }}" | |
46 | ||
47 | - name: Push Environment | |
48 | shell: "clever env import --json < {{ clever_app_confdir }}/env" | |
49 | args: | |
50 | chdir: "{{ clever_app_root }}" | |
51 | environment: | |
52 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
53 | changed_when: false | |
54 | ||
55 | - name: Deploy to Clever-Cloud | |
56 | command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-deploy.sh" | |
57 | args: | |
58 | chdir: "{{ clever_app_root }}" | |
59 | environment: | |
60 | CONFIGURATION_FILE: "{{ clever_login_file }}" | |
61 | async: 3600 # 1 hour | |
62 | poll: 0 | |
63 | ignore_errors: true | |
64 | register: clever_deploy | |
65 | tags: | |
66 | - skip_ansible_lint | |
67 | ||
68 | - name: Wait up to 1 hour for deployment completion | |
69 | async_status: | |
70 | jid: "{{ clever_deploy.ansible_job_id }}" | |
71 | register: job_result | |
72 | until: job_result.finished | |
73 | ignore_errors: true | |
74 | delay: 30 | |
75 | retries: 120 # 1 hour (120 * 30 secs delay) | |
76 | ||
77 | ################################################################## | |
78 | # Re-deploy only if its the first clever deploy for that project # | |
79 | ################################################################## | |
80 | ||
81 | - name: Retry deploy to clever-cloud | |
82 | include_tasks: redeploy.yml | |
83 | when: | |
84 | - not job_result.finished or not job_result.rc == 0 | |
85 | - job_result.stderr is defined | |
86 | - job_result.stderr is search("Failed to read git object") | |
87 | ||
88 | - name: Restart app on clever-cloud when error asks to restart | |
89 | include_tasks: restart.yml | |
90 | when: | |
91 | - not job_result.finished or not job_result.rc == 0 | |
92 | - job_result.stderr is defined | |
93 | - job_result.stderr is search("clever restart") | |
94 | ||
95 | - name: Deploy logs (stdout) | |
96 | debug: | |
97 | var: job_result.stdout_lines | |
98 | when: job_result.stdout_lines is defined | |
99 | ||
100 | - name: Deploy error logs (stderr) | |
101 | debug: | |
102 | var: job_result.stderr_lines | |
103 | when: job_result.stderr_lines is defined | |
104 | ||
105 | - name: Fail in case of timeout or failure | |
106 | fail: | |
107 | msg: "Deployment failed. Please check logs above." | |
108 | when: not job_result.finished or not job_result.rc == 0 |