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:
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={{ user }} shell=/bin/bash
-
name: set up auth key
authorized_key: user={{ 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: "{{ user }}"
shell: kerl build {{ erlang.version | upper }} {{ erlang.version }}
creates=~/.kerl/builds/{{ erlang.version }}
tags: [erlang]
-
name: setup erlang
sudo: true
sudo_user: "{{ 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: "{{ 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 (battle)
sudo: true
sudo_user: postgres
postgresql_user:
name={{ user }}
tags: [postgres]
-
name: create battle db
sudo: true
sudo_user: postgres
postgresql_db:
name={{ database }}
tags: [postgres]
-
name: create shared config directory
file: dest={{ project_root }}/shared/config state=directory owner={{ user }} recurse=yes
tags: [files]
-
name: copy db config
copy: src=files/database.yml
dest={{ project_root }}/shared/config/database.yml owner={{ user }}
tags: [files]
-
name: copy erlang config
copy: src=files/sys.config
dest={{ project_root }}/shared/config/sys.config owner={{ user }}
tags: [files]
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