65 lines
2.0 KiB
YAML
65 lines
2.0 KiB
YAML
---
|
|
|
|
- hosts: webservers
|
|
user: ubuntu
|
|
sudo: True
|
|
|
|
tasks:
|
|
- include_vars: vars.yaml
|
|
|
|
- name: ensure log directory
|
|
action: file dest={{log_dir}} state=directory
|
|
|
|
- name: deploy code from repository
|
|
git: repo={{repo_url}} dest={{src_dir}} remote={{repo_remote}} version={{repo_branch}} accept_hostkey=yes
|
|
notify:
|
|
- restart nginx
|
|
- restart webapp
|
|
|
|
- name: install python requirements
|
|
action: pip requirements={{src_dir}}/requirements.txt state=present
|
|
|
|
- name: copy hellow_webapp.ini
|
|
action: template src=templates/hello_webapp.ini dest={{src_dir}}/hello_webapp.ini
|
|
|
|
- name: create nginx site config
|
|
action: template src=templates/nginx_site.conf dest=/etc/nginx/sites-available/{{app_name}}.conf
|
|
notify:
|
|
- restart nginx
|
|
|
|
- name: link nginx config
|
|
action: file src=/etc/nginx/sites-available/{{app_name}}.conf dest=/etc/nginx/sites-enabled/{{app_name}}.conf state=link
|
|
|
|
- name: create upstart script for webapp
|
|
action: template src=templates/hello_webapp.conf dest=/etc/init/hello_webapp.conf
|
|
|
|
- name: ensure secrets directory
|
|
action: file dest={{src_dir}}/devops/secret_files state=directory
|
|
|
|
- name: Copy secret.json file
|
|
copy: src=secret_files/secret.json dest={{src_dir}}/devops/secret_files/secret.json
|
|
|
|
- name: make src_dir writeable by webgroup
|
|
action: file path={{src_dir}} mode=u=rwX,g=rwX,o=X recurse=yes group=webgroup
|
|
|
|
- name: make log_dir writeable by webgroup
|
|
action: file path={{log_dir}} mode=u=rwX,g=rwX,o=X recurse=yes group=webgroup
|
|
|
|
# - name: crontab to check alerts
|
|
# cron: name="check alerts" minute="*" job="curl {{prod_url}}/get_all_tix/"
|
|
|
|
- name: restart server and webapp
|
|
command: /bin/true
|
|
notify:
|
|
- restart nginx
|
|
- restart webapp
|
|
|
|
|
|
handlers:
|
|
|
|
- name: restart nginx
|
|
action: service name=nginx state=restarted
|
|
|
|
- name: restart webapp
|
|
action: service name={{app_name}} state=restarted
|