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.

Revisions

  1. mokevnin revised this gist Jan 4, 2014. 1 changed file with 22 additions and 21 deletions.
    43 changes: 22 additions & 21 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,9 @@
    hosts: default

    vars:
    database:
    password: my_secret_password
    # server_name: "codebattle.me"
    erlang:
    directory: ~/.kerl/erlangs
    version: r16b02
    @@ -21,11 +24,11 @@

    -
    name: create user
    user: name={{ user }} shell=/bin/bash
    user: name={{ deploy_user }} shell=/bin/bash

    -
    name: set up auth key
    authorized_key: user={{ user }} key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
    authorized_key: user={{ deploy_user }} key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

    -
    name: apt-get update
    @@ -70,23 +73,23 @@
    -
    name: build erlang
    sudo: true
    sudo_user: "{{ user }}"
    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: "{{ user }}"
    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: "{{ user }}"
    sudo_user: "{{ deploy_user }}"
    lineinfile:
    dest=~/.bash_profile
    regexp="{{ erlang.directory }}/(.+)/activate"
    @@ -111,37 +114,35 @@
    tags: [nginx]

    -
    name: create postgres user (battle)
    name: create postgres user
    sudo: true
    sudo_user: postgres
    postgresql_user:
    name={{ user }}
    postgresql_user: name={{ deploy_user }} password={{ database.password }}
    tags: [postgres]

    -
    name: create battle db
    sudo: true
    sudo_user: postgres
    postgresql_db:
    name={{ database }}
    postgresql_db: name={{ deploy_user }}
    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 }}
    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 erlang config
    copy: src=files/sys.config
    dest={{ project_root }}/shared/config/sys.config owner={{ user }}
    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:
    -
  2. mokevnin revised this gist Jan 4, 2014. 1 changed file with 66 additions and 24 deletions.
    90 changes: 66 additions & 24 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -3,63 +3,90 @@
    hosts: default

    vars:
    database: battle_development
    server_name: "codebattle.me"
    erlang:
    directory: ~/.kerl/erlangs
    version: r16b03
    version: r16b02
    postgresql:
    version: 9.1
    password: my_secret_password
    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
    sudo: true

    -
    name: install packages
    apt: pkg={{ item }} state=installed
    sudo: true
    with_items:
    - curl
    - vim
    - git
    - runit
    - gcc
    - make
    - libncurses5-dev
    - python-pycurl

    - postgresql-{{postgresql.version}}
    - postgresql-{{ postgresql.version }}
    - libpq-dev
    - python-psycopg2

    -
    name: add repositories
    sudo: true
    apt_repository: repo='ppa:nginx/stable'
    tags: [nginx]

    -
    name: install nginx
    apt: pkg=nginx state=installed
    sudo: true
    tags: [nginx]

    -
    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
    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
    shell:
    kerl build {{erlang.version | upper }} {{ erlang.version }}
    && kerl install {{ erlang.version }} {{ erlang.directory }}/{{ erlang.version }}
    sudo: true
    sudo_user: "{{ user }}"
    shell: kerl install {{ erlang.version }} {{ erlang.directory }}/{{ erlang.version }}
    creates={{ erlang.directory }}/{{ erlang.version }}
    tags: [erlang]

    -
    name: update bashrc (erlang activation)
    name: update bash_profile (erlang activation)
    sudo: true
    sudo_user: "{{ user }}"
    lineinfile:
    dest=~/.bash_profile
    regexp="{{ erlang.directory }}/(.+)/activate"
    @@ -68,44 +95,59 @@
    backup=yes
    insertafter=EOF
    create=yes

    -
    name: activate erlang
    shell: . {{ erlang.directory }}/{{ erlang.version }}/activate
    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
    sudo: true
    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=battle
    password={{ postgresql.password }}
    name={{ user }}
    tags: [postgres]

    -
    name: create battle dev db
    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
    sudo: true
    service: name=postgresql state=restarted

    -
    name: reload nginx
    sudo: true
    service: name=nginx state=reloaded
  3. mokevnin revised this gist Dec 30, 2013. 1 changed file with 3 additions and 10 deletions.
    13 changes: 3 additions & 10 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -78,16 +78,6 @@
    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
    @@ -97,12 +87,15 @@

    -
    name: create postgres user (battle)
    sudo: true
    sudo_user: postgres
    postgresql_user:
    name=battle
    password={{ postgresql.password }}

    -
    name: create battle dev db
    sudo_user: postgres
    postgresql_db:
    name={{ database }}

  4. mokevnin revised this gist Dec 29, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion playbook
    Original file line number Diff line number Diff line change
    @@ -36,7 +36,7 @@
    -
    name: add repositories
    sudo: true
    apt_repository: repo='ppa:nginx/stable' update_cache=yes
    apt_repository: repo='ppa:nginx/stable'

    -
    name: install nginx
  5. mokevnin revised this gist Dec 29, 2013. 1 changed file with 7 additions and 6 deletions.
    13 changes: 7 additions & 6 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -6,6 +6,7 @@
    database: battle_development
    server_name: "codebattle.me"
    erlang:
    directory: ~/.kerl/erlangs
    version: r16b03
    postgresql:
    version: 9.1
    @@ -54,28 +55,28 @@
    name: setup erlang
    shell:
    kerl build {{erlang.version | upper }} {{ erlang.version }}
    && kerl install {{ erlang.version }} ~/.kerl/erlangs/{{ erlang.version }}
    creates=~/.kerl/erlangs/{{ 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="erlangs/(.+)/activate"
    line=". ~/.kerl/erlangs/{{ erlang.version }}/activate"
    regexp="{{ erlang.directory }}/(.+)/activate"
    line=". {{ erlang.directory }}/{{ erlang.version }}/activate"
    state=present
    backup=yes
    insertafter=EOF
    create=yes

    -
    name: activate erlang
    shell: . ~/.kerl/erlangs/r16b02/activate
    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/bin/ruby
    creates=~/.rvm

    -
    name: update postgres client configuration
  6. mokevnin revised this gist Dec 29, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion playbook
    Original file line number Diff line number Diff line change
    @@ -55,7 +55,7 @@
    shell:
    kerl build {{erlang.version | upper }} {{ erlang.version }}
    && kerl install {{ erlang.version }} ~/.kerl/erlangs/{{ erlang.version }}
    creates=~/.kerl/erlangs/r16b03
    creates=~/.kerl/erlangs/{{ erlang.version }}

    -
    name: update bashrc (erlang activation)
  7. mokevnin revised this gist Dec 29, 2013. 1 changed file with 7 additions and 4 deletions.
    11 changes: 7 additions & 4 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -5,6 +5,8 @@
    vars:
    database: battle_development
    server_name: "codebattle.me"
    erlang:
    version: r16b03
    postgresql:
    version: 9.1
    password: my_secret_password
    @@ -51,15 +53,16 @@
    -
    name: setup erlang
    shell:
    kerl build R16B02 r16b02
    && kerl install r16b02 ~/.kerl/erlangs/r16b02
    creates=~/.kerl/erlangs/r16b02
    kerl build {{erlang.version | upper }} {{ erlang.version }}
    && kerl install {{ erlang.version }} ~/.kerl/erlangs/{{ erlang.version }}
    creates=~/.kerl/erlangs/r16b03

    -
    name: update bashrc (erlang activation)
    lineinfile:
    dest=~/.bash_profile
    line=". ~/.kerl/erlangs/r16b02/activate"
    regexp="erlangs/(.+)/activate"
    line=". ~/.kerl/erlangs/{{ erlang.version }}/activate"
    state=present
    backup=yes
    insertafter=EOF
  8. mokevnin revised this gist Dec 24, 2013. 1 changed file with 36 additions and 24 deletions.
    60 changes: 36 additions & 24 deletions playbook
    Original file line number Diff line number Diff line change
    @@ -3,11 +3,18 @@
    hosts: default

    vars:
    database: battle_development
    server_name: "codebattle.me"
    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
    @@ -33,6 +40,35 @@
    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 R16B02 r16b02
    && kerl install r16b02 ~/.kerl/erlangs/r16b02
    creates=~/.kerl/erlangs/r16b02

    -
    name: update bashrc (erlang activation)
    lineinfile:
    dest=~/.bash_profile
    line=". ~/.kerl/erlangs/r16b02/activate"
    state=present
    backup=yes
    insertafter=EOF
    create=yes

    -
    name: activate erlang
    shell: . ~/.kerl/erlangs/r16b02/activate

    -
    name: install RVM and Ruby
    shell: curl -sSL https://get.rvm.io | bash -s stable --ruby --autolibs=enabled
    @@ -66,30 +102,6 @@
    postgresql_db:
    name={{ database }}

    -
    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 R16B02 r16b02
    && kerl install r16b02 ~/.kerl/erlangs/r16b02
    creates=~/.kerl/erlangs/r16b02

    -
    name: activate erlang
    lineinfile:
    dest=~/.bash_profile
    line=". ~/.kerl/erlangs/r16b02/activate"
    state=present
    backup=yes
    insertafter=EOF

    handlers:
    -
    name: restart postgresql
  9. mokevnin renamed this gist Dec 19, 2013. 1 changed file with 25 additions and 1 deletion.
    26 changes: 25 additions & 1 deletion playbook for my project → playbook
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@
    vars:
    postgresql:
    version: 9.1
    password: ****
    password: my_secret_password

    tasks:
    -
    @@ -66,6 +66,30 @@
    postgresql_db:
    name={{ database }}

    -
    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 R16B02 r16b02
    && kerl install r16b02 ~/.kerl/erlangs/r16b02
    creates=~/.kerl/erlangs/r16b02

    -
    name: activate erlang
    lineinfile:
    dest=~/.bash_profile
    line=". ~/.kerl/erlangs/r16b02/activate"
    state=present
    backup=yes
    insertafter=EOF

    handlers:
    -
    name: restart postgresql
  10. mokevnin created this gist Dec 19, 2013.
    78 changes: 78 additions & 0 deletions playbook for my project
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,78 @@
    ---
    -
    hosts: default

    vars:
    postgresql:
    version: 9.1
    password: ****

    tasks:
    -
    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' update_cache=yes

    -
    name: install nginx
    apt: pkg=nginx state=installed
    sudo: true

    -
    name: install RVM and Ruby
    shell: curl -sSL https://get.rvm.io | bash -s stable --ruby --autolibs=enabled
    creates=~/.rvm/bin/ruby

    -
    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