From 582ee4342b67ebf6a8ab7fae1df49e9aa153ca66 Mon Sep 17 00:00:00 2001 From: Anton Vakhrushev Date: Sat, 27 Aug 2016 10:37:49 +0300 Subject: [PATCH] Add ansible tasks --- ansible/ansible.cfg | 1 + ansible/deploy.retry | 1 + ansible/deploy.yml | 10 +++++++ ansible/hosts-eos | 2 ++ ansible/hosts-vagrant | 2 ++ ansible/roles/nginx/handlers/main.yml | 3 ++ ansible/roles/nginx/tasks/main.yml | 33 +++++++++++++++++++++ ansible/roles/nginx/templates/homepage.tpl | 10 +++++++ ansible/roles/server/tasks/main.yml | 25 ++++++++++++++++ ansible/roles/server/templates/timezone.tpl | 1 + ansible/rollback.yml | 9 ++++++ ansible/setup.retry | 1 + ansible/setup.yml | 12 ++++++++ ansible/vars/all.yml | 17 +++++++++++ 14 files changed, 127 insertions(+) create mode 100644 ansible/ansible.cfg create mode 100644 ansible/deploy.retry create mode 100644 ansible/deploy.yml create mode 100644 ansible/hosts-eos create mode 100644 ansible/hosts-vagrant create mode 100755 ansible/roles/nginx/handlers/main.yml create mode 100755 ansible/roles/nginx/tasks/main.yml create mode 100755 ansible/roles/nginx/templates/homepage.tpl create mode 100755 ansible/roles/server/tasks/main.yml create mode 100755 ansible/roles/server/templates/timezone.tpl create mode 100644 ansible/rollback.yml create mode 100644 ansible/setup.retry create mode 100644 ansible/setup.yml create mode 100755 ansible/vars/all.yml diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg new file mode 100644 index 0000000..0440d48 --- /dev/null +++ b/ansible/ansible.cfg @@ -0,0 +1 @@ +[defaults] diff --git a/ansible/deploy.retry b/ansible/deploy.retry new file mode 100644 index 0000000..2fd28df --- /dev/null +++ b/ansible/deploy.retry @@ -0,0 +1 @@ +192.168.33.20 diff --git a/ansible/deploy.yml b/ansible/deploy.yml new file mode 100644 index 0000000..f1379ff --- /dev/null +++ b/ansible/deploy.yml @@ -0,0 +1,10 @@ +--- +- name: Deploy homepage + hosts: all + become: true + + vars_files: + - vars/all.yml + + roles: + - { role: carlosbuenosvinos.ansistrano-deploy } diff --git a/ansible/hosts-eos b/ansible/hosts-eos new file mode 100644 index 0000000..8071b22 --- /dev/null +++ b/ansible/hosts-eos @@ -0,0 +1,2 @@ +[vagrant] +82.196.12.157 ansible_connection=ssh ansible_user=av diff --git a/ansible/hosts-vagrant b/ansible/hosts-vagrant new file mode 100644 index 0000000..d75642f --- /dev/null +++ b/ansible/hosts-vagrant @@ -0,0 +1,2 @@ +[vagrant] +192.168.33.20 ansible_connection=ssh ansible_user=vagrant diff --git a/ansible/roles/nginx/handlers/main.yml b/ansible/roles/nginx/handlers/main.yml new file mode 100755 index 0000000..1899c9c --- /dev/null +++ b/ansible/roles/nginx/handlers/main.yml @@ -0,0 +1,3 @@ +--- +- name: restart nginx + service: name=nginx enabled=yes state=restarted \ No newline at end of file diff --git a/ansible/roles/nginx/tasks/main.yml b/ansible/roles/nginx/tasks/main.yml new file mode 100755 index 0000000..9d18223 --- /dev/null +++ b/ansible/roles/nginx/tasks/main.yml @@ -0,0 +1,33 @@ +--- +- name: Install Nginx + become: yes + apt: pkg=nginx state=latest + +- name: Create nginx congig + become: yes + template: + src: homepage.tpl + dest: /etc/nginx/sites-available/{{ site.domain }} + notify: restart nginx + +- name: Create symlink to site + become: yes + file: + src: /etc/nginx/sites-available/{{ site.domain }} + dest: /etc/nginx/sites-enabled/{{ site.domain }} + state: link + notify: restart nginx + +- name: Delete default site + become: yes + file: + path: /etc/nginx/sites-available/default + state: absent + notify: restart nginx + +- name: Delete default site symlink + become: yes + file: + path: /etc/nginx/sites-enabled/default + state: absent + notify: restart nginx diff --git a/ansible/roles/nginx/templates/homepage.tpl b/ansible/roles/nginx/templates/homepage.tpl new file mode 100755 index 0000000..3987025 --- /dev/null +++ b/ansible/roles/nginx/templates/homepage.tpl @@ -0,0 +1,10 @@ +server { + listen 80; + server_name {{ site.domain }} www.{{ site.domain }}; + + location / { + root /var/www/{{ site.www_dir }}/current/web; + index index.html; + try_files $uri /index.html; + } +} diff --git a/ansible/roles/server/tasks/main.yml b/ansible/roles/server/tasks/main.yml new file mode 100755 index 0000000..9e52123 --- /dev/null +++ b/ansible/roles/server/tasks/main.yml @@ -0,0 +1,25 @@ +--- +- name: Update apt + sudo: yes + apt: update_cache=yes + +- name: Install System Packages + sudo: yes + apt: pkg={{ item }} state=latest + with_items: + - curl + - wget + - python-software-properties + - git + +- name: Configure the timezone + sudo: yes + template: src=timezone.tpl dest=/etc/timezone + +- name: Configure the timezone + sudo: yes + file: src=/usr/share/zoneinfo/{{ server.timezone }} dest=/etc/localtime state=link force=yes backup=yes + +- name: Set default system language pack + shell: locale-gen {{ server.locale }} + sudo: yes diff --git a/ansible/roles/server/templates/timezone.tpl b/ansible/roles/server/templates/timezone.tpl new file mode 100755 index 0000000..15f415e --- /dev/null +++ b/ansible/roles/server/templates/timezone.tpl @@ -0,0 +1 @@ +{{ server.timezone }} diff --git a/ansible/rollback.yml b/ansible/rollback.yml new file mode 100644 index 0000000..f25dc15 --- /dev/null +++ b/ansible/rollback.yml @@ -0,0 +1,9 @@ +--- +- name: Rollback example app to my-server.com + hosts: all + + vars_files: + - vars/all.yml + + roles: + - { role: carlosbuenosvinos.ansistrano-rollback } diff --git a/ansible/setup.retry b/ansible/setup.retry new file mode 100644 index 0000000..2fd28df --- /dev/null +++ b/ansible/setup.retry @@ -0,0 +1 @@ +192.168.33.20 diff --git a/ansible/setup.yml b/ansible/setup.yml new file mode 100644 index 0000000..91b9516 --- /dev/null +++ b/ansible/setup.yml @@ -0,0 +1,12 @@ +--- +- hosts: all + + become: true + become_method: sudo + + vars_files: + - vars/all.yml + + roles: + - server + - nginx diff --git a/ansible/vars/all.yml b/ansible/vars/all.yml new file mode 100755 index 0000000..bf77352 --- /dev/null +++ b/ansible/vars/all.yml @@ -0,0 +1,17 @@ +--- +server: + timezone: UTC + locale: en_US.UTF-8 + +site: + www_dir: anwinged + domain: anwinged.ru + + +# Vars for ansistrano + +ansistrano_deploy_from: "{{ playbook_dir }}/../web" +ansistrano_deploy_to: "/var/www/{{ site.www_dir }}" +ansistrano_keep_releases: 3 +ansistrano_deploy_via: copy +