Last active
December 31, 2015 20:39
-
-
Save mokevnin/8041479 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
--- | |
- | |
hosts: default | |
vars: | |
database: | |
password: my_secret_password | |
# server_name: "codebattle.me" | |
erlang: | |
directory: ~/.kerl/erlangs | |
version: r16b02 | |
postgresql: | |
version: 9.1 | |
project_root: /var/www/battle | |
tasks: | |
- | |
name: set locale | |
lineinfile: | |
dest=/etc/environment | |
line='LC_ALL="en_US.UTF-8"' | |
state=present | |
backup=yes | |
- | |
name: create user | |
user: name={{ deploy_user }} shell=/bin/bash | |
- | |
name: set up auth key | |
authorized_key: user={{ deploy_user }} key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}" | |
- | |
name: apt-get update | |
apt: update_cache=true cache_valid_time=3600 | |
- | |
name: install packages | |
apt: pkg={{ item }} state=installed | |
with_items: | |
- curl | |
- vim | |
- git | |
- runit | |
- gcc | |
- make | |
- libncurses5-dev | |
- python-pycurl | |
- postgresql-{{ postgresql.version }} | |
- libpq-dev | |
- python-psycopg2 | |
- | |
name: add repositories | |
apt_repository: repo='ppa:nginx/stable' | |
tags: [nginx] | |
- | |
name: install nginx | |
apt: pkg=nginx state=installed | |
tags: [nginx] | |
- | |
name: setup kerl | |
shell: | |
curl -O https://raw.github.com/spawngrid/kerl/master/kerl | |
&& chmod +x kerl | |
&& cp kerl /usr/local/bin | |
creates=/usr/local/bin/kerl | |
tags: [erlang] | |
- | |
name: build erlang | |
sudo: true | |
sudo_user: "{{ deploy_user }}" | |
shell: kerl build {{ erlang.version | upper }} {{ erlang.version }} | |
creates=~/.kerl/builds/{{ erlang.version }} | |
tags: [erlang] | |
- | |
name: setup erlang | |
sudo: true | |
sudo_user: "{{ deploy_user }}" | |
shell: kerl install {{ erlang.version }} {{ erlang.directory }}/{{ erlang.version }} | |
creates={{ erlang.directory }}/{{ erlang.version }} | |
tags: [erlang] | |
- | |
name: update bash_profile (erlang activation) | |
sudo: true | |
sudo_user: "{{ deploy_user }}" | |
lineinfile: | |
dest=~/.bash_profile | |
regexp="{{ erlang.directory }}/(.+)/activate" | |
line=". {{ erlang.directory }}/{{ erlang.version }}/activate" | |
state=present | |
backup=yes | |
insertafter=EOF | |
create=yes | |
tags: [erlang] | |
- | |
name: install RVM and Ruby | |
shell: curl -sSL https://get.rvm.io | bash -s stable --ruby --autolibs=enabled | |
creates=~/.rvm | |
tags: [ruby] | |
- | |
name: update nginx vhost conf | |
template: src=templates/nginx.j2 dest=/etc/nginx/conf.d/battle.conf | |
notify: | |
- reload nginx | |
tags: [nginx] | |
- | |
name: create postgres user | |
sudo: true | |
sudo_user: postgres | |
postgresql_user: name={{ deploy_user }} password={{ database.password }} | |
tags: [postgres] | |
- | |
name: create battle db | |
sudo: true | |
sudo_user: postgres | |
postgresql_db: name={{ deploy_user }} | |
tags: [postgres] | |
- | |
name: create shared directories | |
file: dest={{ project_root }}/shared/{{ item }} state=directory owner={{ deploy_user }} recurse=yes | |
tags: [files] | |
with_items: | |
- config | |
- backend | |
- | |
name: copy configs | |
copy: src=templates/{{ item.file }} | |
dest={{ project_root }}/shared/{{ item.folder }}/{{ item.file }} owner={{ deploy_user }} | |
tags: [files] | |
with_items: | |
- { folder: config, file: database.yml.j2 } | |
- { folder: backend, file: sys.config.j2 } | |
handlers: | |
- | |
name: restart postgresql | |
service: name=postgresql state=restarted | |
- | |
name: reload nginx | |
service: name=nginx state=reloaded |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment