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"
5 chdir: "{{ clever_app_root }}"
7 SYSLOG_UDP_SERVER: "{{ clever_syslog_server | default(syslog_server) }}"
8 CONFIGURATION_FILE: "{{ clever_login_file }}"
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"
14 chdir: "{{ clever_app_root }}"
16 DOMAIN: "{{ clever_domain | default(domain) }}"
17 CONFIGURATION_FILE: "{{ clever_login_file }}"
19 - name: Configure Build Instance
20 when: clever_build_flavor is defined
21 command: "clever scale --build-flavor {{ clever_build_flavor }}"
23 chdir: "{{ clever_app_root }}"
25 CONFIGURATION_FILE: "{{ clever_login_file }}"
27 - name: Configure Scalability
28 when: clever_scaling is defined
29 command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-set-scalability.sh"
31 chdir: "{{ clever_app_root }}"
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('') }}"
41 - name: Configure service dependencies
42 include_tasks: service-dep.yml
44 service_dep: "{{ item }}"
45 with_items: "{{ clever_service_dependencies }}"
47 - name: Push Environment
48 shell: "clever env import --json < {{ clever_app_confdir }}/env"
50 chdir: "{{ clever_app_root }}"
52 CONFIGURATION_FILE: "{{ clever_login_file }}"
55 - name: Deploy to Clever-Cloud
56 command: "{{ ansible_env.HOME }}/{{ clever_user_path }}/clever-deploy.sh"
58 chdir: "{{ clever_app_root }}"
60 CONFIGURATION_FILE: "{{ clever_login_file }}"
64 register: clever_deploy
68 - name: Wait up to 1 hour for deployment completion
70 jid: "{{ clever_deploy.ansible_job_id }}"
72 until: job_result.finished
75 retries: 120 # 1 hour (120 * 30 secs delay)
77 ##################################################################
78 # Re-deploy only if its the first clever deploy for that project #
79 ##################################################################
81 - name: Retry deploy to clever-cloud
82 include_tasks: redeploy.yml
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")
88 - name: Restart app on clever-cloud when error asks to restart
89 include_tasks: restart.yml
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")
95 - name: Deploy logs (stdout)
97 var: job_result.stdout_lines
98 when: job_result.stdout_lines is defined
100 - name: Deploy error logs (stderr)
102 var: job_result.stderr_lines
103 when: job_result.stderr_lines is defined
105 - name: Fail in case of timeout or failure
107 msg: "Deployment failed. Please check logs above."
108 when: not job_result.finished or not job_result.rc == 0