[ansible] added deploy role

This commit is contained in:
2018-03-28 16:38:16 +03:00
parent f6ebec32ca
commit 6d2a1a002b
26 changed files with 129 additions and 139 deletions

View File

@@ -0,0 +1,19 @@
- import_tasks: repo.yml
- import_tasks: npm.yml
- name: Copy config.json
copy:
src: "{{ release_dir }}/config.shmyga.ru.json"
dest: "{{ release_dir }}/config.json"
remote_src: true
- name: Gulp build
command: "gulp default"
args:
chdir: "{{ release_dir }}"
- name: Create symlink to release
file:
src: "{{ release_dir }}"
dest: "{{ project_dir }}/current"
state: link

View File

@@ -0,0 +1,21 @@
- name: Create directory for node_modules
file:
path: "{{ project_dir }}/npm"
state: directory
- name: Copy package.json
copy:
src: "{{ release_dir }}/package.json"
dest: "{{ project_dir }}/npm/"
remote_src: true
- name: npm install
command: npm install
args:
chdir: "{{ project_dir }}/npm/"
- name: Create symlink to node_modules
file:
src: "{{ project_dir }}/npm/node_modules"
dest: "{{ release_dir }}/node_modules"
state: link

View File

@@ -0,0 +1,17 @@
- name: Update git repository
git:
repo: "{{ repo_url }}"
dest: "{{ project_dir }}/repo"
- name: Creates directory for release
file:
path: "{{ release_dir }}"
state: directory
- name: Copy project files
synchronize:
src: "{{ project_dir }}/repo/"
dest: "{{ release_dir }}"
rsync_opts:
- "--exclude=.git"
delegate_to: "{{ inventory_hostname }}"

View File

@@ -0,0 +1,5 @@
ansible_user: holop
date_str: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}{{ ansible_date_time.hour }}{{ ansible_date_time.minute }}{{ ansible_date_time.second }}"
repo_url: "git@bitbucket.org:infernalgames/{{ project_name }}.git"
release_dir: "{{ project_dir }}/releases/{{ date_str }}"

View File

@@ -1,5 +0,0 @@
- name: install tankz systemd unit file
template: src=template/tankz.j2 dest=/etc/systemd/system/tankz.service
- name: start tankz
systemd: state=started name=tankz daemon_reload=yes

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Tank'z game server
[Service]
Type=simple
PIDFile=/var/run/tankz.pid
WorkingDirectory=/home/holop/repo/tankz/current/target
User=www-data
Group=www-data
ExecStart=/usr/bin/neko /home/holop/repo/tankz/current/target/tankz.n
TimeoutSec=300
Restart=always
[Install]
WantedBy=multi-user.target

View File

@@ -1,3 +0,0 @@
ansible_become: yes
ansible_user: barin
ansible_become_pass: 1234!QAZ

View File

@@ -0,0 +1,10 @@
- name: Install the package "Neko"
apt:
name: 'neko'
- name: Install the package "Node"
apt:
name: '{{ item }}'
with_items:
- nodejs
- npm

View File

@@ -0,0 +1,6 @@
- import_tasks: apt.yml
when: ansible_distribution|lower == 'ubuntu'
- import_tasks: npm.yml
- import_tasks: service.yml

View File

@@ -0,0 +1,4 @@
- name: Install "gulp-cli" node.js package globally.
npm:
name: gulp-cli
global: yes

View File

@@ -0,0 +1,10 @@
- name: "install {{ service_name }} systemd unit file"
template:
src: "template/service.j2"
dest: "/etc/systemd/system/{{ service_name }}.service"
- name: "start {{ service_name }} service"
systemd:
state: started
name: "{{ service_name }}"
daemon_reload: yes

View File

@@ -0,0 +1,15 @@
[Unit]
Description={{ service_description }}
[Service]
Type=simple
PIDFile=/var/run/{{ service_name }}.pid
WorkingDirectory={{ service_work_dir }}
User={{ service_user }}
Group={{ service_user }}
ExecStart={{ service_command }}
TimeoutSec=300
Restart=always
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,9 @@
ansible_become: yes
ansible_user: barin
ansible_become_pass: 1234!QAZ
service_name: "{{ project_name }}"
service_description: "{{ project_smartname }} server"
service_work_dir: "{{ project_dir }}/current/target"
service_command: "/usr/bin/neko {{ project_dir }}/current/target/{{ project_name }}.n"
service_user: www-data