Created
April 14, 2016 07:02
-
-
Save hypersleep/85f704b03f960b7ad21209dc8401b2d3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: Deploy blog app | |
hosts: blog | |
vars_files: | |
- vars.yml | |
tasks: | |
- name: Send slack alert | |
local_action: | |
module: slack | |
domain: qlean.slack.com | |
channel: "#development_robot" | |
icon_emoji: ":squirrel:" | |
username: "Qlean белка" | |
token: secret_token | |
msg: "Запущен деплой приложения \"{{ app_name }}\"." | |
- name: Ensure docker service running | |
service: name=docker state=started | |
- name: Ensure apps directory exists | |
file: path={{ apps_path }} state=directory | |
when: lock|failed | |
- name: Check for first deploy | |
stat: path="{{ project_path }}" | |
register: first_deploy | |
- name: Create release directory | |
file: path={{ project_path }} state=directory | |
- name: Checkout git repo into release directory | |
git: | |
repo={{ git_repository }} | |
dest={{ project_path }} | |
version={{ git_branch }} | |
accept_hostkey=yes | |
force=yes | |
- name: Send database.yml | |
template: src=database.yml dest="{{ project_path }}/config" | |
- name: Send secrets.yml | |
template: src=secrets.yml dest="{{ project_path }}/config" | |
- name: Create tmp directory | |
file: path={{ project_path }}/tmp state=directory | |
- name: Build image | |
command: docker build -t {{ app_name }} {{ project_path }} | |
- name: Generate docker runtime | |
command: echo "docker run -v {{ project_path }}/tmp:/app/tmp -v {{ project_path }}/log:/app/log --link redis-blog:redis" | |
register: docker_runtime | |
- name: Create database | |
raw: "{{ docker_runtime.stdout }} --rm {{ app_name }} rake db:create" | |
when: first_deploy.stat.isdir is not defined | |
- name: Load schema | |
raw: "{{ docker_runtime.stdout }} --rm {{ app_name }} rake db:schema:load" | |
when: first_deploy.stat.isdir is not defined | |
- name: Migrate database | |
raw: "{{ docker_runtime.stdout }} --rm {{ app_name }} rake db:migrate" | |
- name: Send puma service file | |
template: src="services/{{ app_name }}-puma.service" dest=/etc/systemd/system | |
- name: Send sidekiq service file | |
template: src="services/{{ app_name }}-sidekiq.service" dest=/etc/systemd/system | |
- name: Reload systemd | |
raw: systemctl daemon-reload | |
- name: Restart puma container | |
service: name="{{ app_name }}-puma.service" state=restarted | |
- name: Restart sidekiq container | |
service: name="{{ app_name }}-sidekiq.service" state=restarted | |
- name: Enable puma container run on boot | |
service: name="{{ app_name }}-puma.service" enabled=yes | |
- name: Enable sidekiq container run on boot | |
service: name="{{ app_name }}-sidekiq.service" enabled=yes | |
- name: Send slack alert | |
local_action: | |
module: slack | |
domain: qlean.slack.com | |
channel: "#development_robot" | |
icon_emoji: ":squirrel:" | |
username: "Qlean белка" | |
token: secret_token | |
msg: "Деплой приложения \"{{ app_name }}\" успешно завершен." |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment