Skip to content

Instantly share code, notes, and snippets.

@mokevnin
Last active December 31, 2015 20:39
Show Gist options
  • Select an option

  • Save mokevnin/8041479 to your computer and use it in GitHub Desktop.

Select an option

Save mokevnin/8041479 to your computer and use it in GitHub Desktop.
---
-
hosts: default
vars:
database: battle_development
server_name: "codebattle.me"
erlang:
directory: ~/.kerl/erlangs
version: r16b03
postgresql:
version: 9.1
password: my_secret_password
tasks:
-
name: apt-get update
apt: update_cache=true cache_valid_time=3600
sudo: true
-
name: install packages
apt: pkg={{ item }} state=installed
sudo: true
with_items:
- curl
- vim
- git
- runit
- python-pycurl
- postgresql-{{postgresql.version}}
- libpq-dev
- python-psycopg2
-
name: add repositories
sudo: true
apt_repository: repo='ppa:nginx/stable'
-
name: install nginx
apt: pkg=nginx state=installed
sudo: true
-
name: setup kerl
sudo: true
shell:
curl -O https://raw.github.com/spawngrid/kerl/master/kerl
&& chmod +x kerl
&& cp kerl /usr/local/bin
creates=/usr/local/bin/kerl
-
name: setup erlang
shell:
kerl build {{erlang.version | upper }} {{ erlang.version }}
&& kerl install {{ erlang.version }} {{ erlang.directory }}/{{ erlang.version }}
creates={{ erlang.directory }}/{{ erlang.version }}
-
name: update bashrc (erlang activation)
lineinfile:
dest=~/.bash_profile
regexp="{{ erlang.directory }}/(.+)/activate"
line=". {{ erlang.directory }}/{{ erlang.version }}/activate"
state=present
backup=yes
insertafter=EOF
create=yes
-
name: activate erlang
shell: . {{ erlang.directory }}/{{ erlang.version }}/activate
-
name: install RVM and Ruby
shell: curl -sSL https://get.rvm.io | bash -s stable --ruby --autolibs=enabled
creates=~/.rvm
-
name: update postgres client configuration
sudo: true
copy: src=files/pg_hba.conf dest=/etc/postgresql/{{postgresql.version}}/main/pg_hba.conf
notify:
- restart postgresql
-
meta: flush_handlers
-
name: update nginx vhost conf
sudo: true
template: src=templates/nginx.j2 dest=/etc/nginx/conf.d/battle.conf
notify:
- reload nginx
-
name: create postgres user (battle)
postgresql_user:
name=battle
password={{ postgresql.password }}
-
name: create battle dev db
postgresql_db:
name={{ database }}
handlers:
-
name: restart postgresql
sudo: true
service: name=postgresql state=restarted
-
name: reload nginx
sudo: true
service: name=nginx state=reloaded
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment