Skip to content

Instantly share code, notes, and snippets.

@wolfeidau
Last active August 29, 2016 12:24
Show Gist options
  • Save wolfeidau/7968626 to your computer and use it in GitHub Desktop.
Save wolfeidau/7968626 to your computer and use it in GitHub Desktop.
Very simple ansible app setup
---
#
# Setup mysvchere in this environment
#
- name: Add the mysvchere user
user: name=mysvchere comment="My company mysvchere" system=yes shell="/bin/bash"
- name: Install mysvchere certificates
copy: src=server_crt.pem dest=/etc/ssl/certs/{{ mysvchere_hostname }}.crt mode=0644 owner=root group=root
- name: Install mysvchere key
copy: src=server_key.pem dest=/etc/ssl/private/{{ mysvchere_hostname }}.key mode=0600 owner=root group=root
- name: Configure nginx
template: src=nginx.conf dest=/etc/nginx/conf.d/mysvchere.conf mode=0644 owner=root group=root
notify:
- restart nginx
- name: Create service directory
file: path=/etc/service/mysvchere/log state=directory recurse=yes mode=0755 owner=mysvchere group=mysvchere
- name: Create runit service
template: src=mysvchere_service_run dest=/etc/service/mysvchere/run mode=0755 owner=mysvchere group=mysvchere
- name: Create runit logger
template: src=mysvchere_logger_run dest=/etc/service/mysvchere/log/run mode=0755 owner=mysvchere group=mysvchere
- name: Create app source directory
file: path=/home/mysvchere/source state=directory recurse=yes mode=0755 owner=mysvchere group=mysvchere
- name: Create app log directory
file: path=/home/mysvchere/shared/logs state=directory recurse=yes mode=0755 owner=mysvchere group=mysvchere
- name: Configure NODE_ENV environment
lineinfile: dest=/home/mysvchere/.profile regexp="^export NODE_ENV=" line="export NODE_ENV=production"
- name: Configure SOME_ID environment
lineinfile: dest=/home/mysvchere/.profile regexp="^export SOME_ID=" line="export SOME_ID={{ SOME_id }}"
- name: Configure SOME_SECRET environment
lineinfile: dest=/home/mysvchere/.profile regexp="^export SOME_SECRET=" line="export SOME_SECRET={{ SOME_secret }}"
- name: Configure DB_URL environment
lineinfile: dest=/home/mysvchere/.profile regexp="^export DB_URL=" line="export DB_URL={{ mycompany_db_url }}"
- name: Clone the application
action: git repo=git@github.com:mycompany/mysvchere.git dest=/home/mysvchere/source
- name: Change owner of sources
file: path=/home/mysvchere/source owner=mysvchere group=mysvchere recurse=yes
- name: Install ssh keys
action: authorized_key user=mysvchere key="{{ item }}"
with_items: $keys
- name: Change ownership of service control directory
file: path=/etc/service/mysvchere/supervise owner=mysvchere group=mysvchere recurse=yes
#!/bin/sh
exec svlogd -tt /home/mysvchere/shared/logs
#!/bin/bash
cd /home/mysvchere/current
exec 2>&1
. /etc/profile
. /home/mysvchere/.profile
exec chpst -u mysvchere:mysvchere node index.js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment