Commit 5194ab62 by Jason Bau

Playbook that installs ruby.

By default it installs 1.9.3-p374 in /opt/www/.rbenv and gems go
in /opt/www/.gem, which replicates the vagrant box
parent be8c7fd0
...@@ -7,3 +7,4 @@ ...@@ -7,3 +7,4 @@
- common - common
- nginx - nginx
- lms - lms
- ruby
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
- common - common
- nginx - nginx
- lms - lms
- ruby
post_tasks: post_tasks:
- local_action: command util/elb_reg.py -e {{ ",".join(elbs[ansible_ec2_instance_id]) }} -i {{ ansible_ec2_instance_id }} register - local_action: command util/elb_reg.py -e {{ ",".join(elbs[ansible_ec2_instance_id]) }} -i {{ ansible_ec2_instance_id }} register
# Register will pass in the same elb list and the same instance id # Register will pass in the same elb list and the same instance id
......
...@@ -7,3 +7,4 @@ ...@@ -7,3 +7,4 @@
- common - common
- nginx - nginx
- lms - lms
- ruby
--- ---
app_base_dir: /opt/wwc app_base_dir: /opt/wwc
ruby_base: /opt/www
#where are the secure files on the deploying machine? #where are the secure files on the deploying machine?
secure_file_dir: ../../edx-secret/ansible/vars/ secure_file_dir: ../../edx-secret/ansible/vars/
--- ---
- name: Create 'www' user (replicating historical environment)
user: name=www state=present
sudo: True
- name: Create 'edx' users group - name: Create 'edx' users group
group: name=edx state=present group: name=edx state=present
sudo: True sudo: True
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
- name: Create application root - name: Create application root
sudo: True sudo: True
file: path=$app_base_dir state=directory owner=root group=root file: path=$app_base_dir state=directory owner=root group=root
- name: Create ruby base
sudo: True
file: path=$ruby_base state=directory owner=www group=www
- name: Create log directory - name: Create log directory
sudo: True sudo: True
file: path=/mnt/logs state=directory file: path=/mnt/logs state=directory
......
#
#cribbed from https://github.com/mmoya/ansible-playbooks/blob/master/rbenv/main.yml
- name: rbenv | install build depends
sudo: true
apt: pkg=$item state=present install_recommends=no
with_items:
- build-essential
- git
- libcurl4-openssl-dev
- libmysqlclient-dev
- libreadline-dev
- libssl-dev
- libxml2-dev
- libxslt1-dev
- zlib1g-dev
- name: rbenv | update rbenv repo
sudo: true
git: repo=git://github.com/sstephenson/rbenv.git dest=$rbenv_root version=v0.4.0
- name: rbenv | add rbenv to path
sudo: true
file: path=/usr/local/bin/rbenv src=${rbenv_root}/bin/rbenv state=link
- name: rbenv | add rbenv initialization to profile
sudo: true
template: src=rbenv.sh.j2 dest=/etc/profile.d/rbenv.sh owner=root group=root mode=0755
- name: rbenv | check ruby-build installed
sudo: true
command: test -x /usr/local/bin/ruby-build
register: rbuild_present
ignore_errors: yes
- name: rbenv | create temporary directory
command: mktemp -d
register: tempdir
when_failed: $rbuild_present
- name: rbenv | clone ruby-build repo
git: repo=git://github.com/sstephenson/ruby-build.git dest=${tempdir.stdout}/ruby-build
when_failed: $rbuild_present
- name: rbenv | install ruby-build
sudo: true
command: ./install.sh chdir=${tempdir.stdout}/ruby-build
when_failed: $rbuild_present
- name: rbenv | remove temporary directory
file: path=${tempdir.stdout} state=absent
when_failed: $rbuild_present
- name: rbenv | check ruby $ruby_version installed
shell: RBENV_ROOT=${rbenv_root} rbenv versions | grep $ruby_version
register: ruby_installed
ignore_errors: yes
- name: rbenv | install ruby $ruby_version
shell: RBENV_ROOT=${rbenv_root} rbenv install $ruby_version
sudo: true
when_failed: $ruby_installed
- name: rbenv | set global ruby $ruby_version
shell: RBENV_ROOT=${rbenv_root} rbenv global $ruby_version
sudo: true
when_failed: $ruby_installed
- name: rbenv | rehash
shell: RBENV_ROOT=${rbenv_root} rbenv rehash
sudo: true
when_failed: $ruby_installed
- name: gem | gem install bundle
shell: RBENV_ROOT=${rbenv_root} GEM_HOME=${gem_home} ${rbenv_root}/shims/gem install bundle chdir=${app_base_dir}/mitx
sudo: true
- name: bundle | bundle install
shell: RBENV_ROOT=${rbenv_root} GEM_HOME=${gem_home} ${gem_home}/bin/bundle install chdir=${app_base_dir}/mitx
export RBENV_ROOT="{{ rbenv_root }}"
eval "$(rbenv init -)"
---
rbenv_root: "{{ ruby_base }}/.rbenv"
ruby_version: "1.9.3-p374"
gem_home: "{{ ruby_base }}/.gem"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment