Commit 7dceecde by John Jarvis

Merge pull request #180 from edx/jarv/forum-cleanup

forum role cleanup
parents ccf3521b 6b136f80
---
# This playbook is to configuration
# the official edX sandbox instance
# sandbox.edx.org
- name: Configure instance(s)
hosts: tag_Name_edx-sandbox
sudo: True
gather_facts: True
vars:
migrate_db: True
mysql5_workaround: True
vars_files:
- "{{ secure_dir }}/vars/edx_sandbox.yml"
roles:
- common
- nginx
- edxlocal
# - edxapp
# - rabbitmq
# - oraclejdk
# - elasticsearch
# - { role: 'edxapp', celery_worker: True }
- role: rbenv
rbenv_user: "{{ forum_user }}"
rbenv_user_home: "{{ forum_home }}"
rbenv_ruby_version: "{{ forum_ruby_version }}"
- forum
...@@ -116,10 +116,10 @@ generic_env_config: &edxapp_generic_env ...@@ -116,10 +116,10 @@ generic_env_config: &edxapp_generic_env
'KEY_PREFIX': 'integration_celery' 'KEY_PREFIX': 'integration_celery'
'CELERY_BROKER_TRANSPORT': 'amqp' 'CELERY_BROKER_TRANSPORT': 'amqp'
'CELERY_BROKER_HOSTNAME': '' 'CELERY_BROKER_HOSTNAME': ''
'COMMENTS_SERVICE_URL': '' 'COMMENTS_SERVICE_URL': 'http://localhost:4567'
'LOGGING_ENV': 'sandbox' 'LOGGING_ENV': 'sandbox'
'SESSION_COOKIE_DOMAIN': !!null 'SESSION_COOKIE_DOMAIN': !!null
'COMMENTS_SERVICE_KEY': '' 'COMMENTS_SERVICE_KEY': 'password'
'SEGMENT_IO_LMS': true 'SEGMENT_IO_LMS': true
'CODE_JAIL': 'CODE_JAIL':
'limits': 'limits':
......
...@@ -56,12 +56,19 @@ ...@@ -56,12 +56,19 @@
- name: wait for mongo server to start - name: wait for mongo server to start
wait_for: port=27017 delay=2 wait_for: port=27017 delay=2
- name: create a mongodb user - name: create a mongodb user for edxapp
mongodb_user: > mongodb_user: >
database=edxapp database=edxapp
name=edxapp name=edxapp
password=password password=password
state=present state=present
- name: create a mongodb user for forums
mongodb_user: >
database=cs_comments_service
name=cs_comments_service
password=password
state=present
- name: install memcached - name: install memcached
apt: pkg=memcached state=present apt: pkg=memcached state=present
- name: elasticsearch | check for elasticsearch ---
command: test -f /var/tmp/elasticsearch-${elasticsearch_version}.deb
ignore_errors: true
register: elasticsearch_present
- name: elasticsearch | download elasticsearch # elasticsearch
get_url: url={{ elasticsearch_url }} dest=/var/tmp/{{ elasticsearch_file }} #
when: elasticsearch_present|failed # Dependencies:
tags: #
- elasticsearch # * common
- install # * oraclejdk
#
# Example play:
#
# roles:
# - common
# - oraclejdk
# - elasticsearch
- name: elasticsearch | check elasticsearch version - name: elasticsearch | download elasticsearch
shell: test -n "$(dpkg --list elasticsearch | grep {{ elasticsearch_version }})" get_url: >
ignore_errors: true url={{ elasticsearch_url }}
register: elasticsearch_installed dest=/var/tmp/{{ elasticsearch_file }}
force=no
- name: elasticsearch | install elasticsearch from local package - name: elasticsearch | install elasticsearch from local package
shell: executable=/bin/bash dpkg -i /var/tmp/elasticsearch-${elasticsearch_version}.deb shell: >
when: elasticsearch_installed|failed dpkg -i /var/tmp/elasticsearch-{{ elasticsearch_version }}.deb
executable=/bin/bash
creates=/usr/share/elasticsearch/bin/elasticsearch
tags: tags:
- elasticsearch - elasticsearch
- install - install
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
elasticsearch_version: "0.90.2" elasticsearch_version: "0.90.2"
elasticsearch_sha: "397227ce37f616734f39f6e93539c9eaa82bec9" elasticsearch_sha: "397227ce37f616734f39f6e93539c9eaa82bec9"
elasticsearch_file: "elasticsearch-${elastic_search_version}.deb" elasticsearch_file: "elasticsearch-{{ elasticsearch_version }}.deb"
elasticsearch_url: "https://download.elasticsearch.org/elasticsearch/elasticsearch/{{ elastic_search_file }}" elasticsearch_url: "https://download.elasticsearch.org/elasticsearch/elasticsearch/{{ elasticsearch_file }}"
\ No newline at end of file
---
- name: forum | restart the forum service - name: forum | restart the forum service
service: name=cs_comments_service state=restarted service: name=cs_comments_service state=restarted
---
- name: forum | stop the forum service
service: name=cs_comments_service state=stopped
tags:
- deploy
- name: forum | git checkout forum repo into {{ forum_code_dir }} - name: forum | git checkout forum repo into {{ forum_code_dir }}
git: dest={{ forum_code_dir }} repo={{ forum_source_repo }} version={{ forum_version }} git: dest={{ forum_code_dir }} repo={{ forum_source_repo }} version={{ forum_version }}
sudo: yes sudo: yes
sudo_user: "{{ forum_user }} " sudo_user: "{{ forum_user }}"
notify: notify:
- forum | restart the forum service - forum | restart the forum service
tags: tags:
...@@ -12,8 +19,11 @@ ...@@ -12,8 +19,11 @@
shell: executable=/bin/bash {{ forum_home }}/.rbenv/shims/bundle install chdir={{ forum_code_dir }} shell: executable=/bin/bash {{ forum_home }}/.rbenv/shims/bundle install chdir={{ forum_code_dir }}
sudo: yes sudo: yes
sudo_user: "{{ forum_user }}" sudo_user: "{{ forum_user }}"
notify:
- forum | restart the forum service
tags: tags:
- forum - forum
- deploy - deploy
- name: forum | restart the forum service
service: name=cs_comments_service state=restarted
tags:
- deploy
--- ---
# forum
# #
# This role depends upon the rbenv role which needs to # Dependencies:
# be included in the same playbook prior to this role.
# #
# * common
# * elasticsearch
# * oraclejdk
# * rbenv
#
#
# Example play:
# roles:
# - common
# - oraclejdk
# - elasticsearch
# - role: rbenv
# rbenv_user: "{{ forum_user }}"
# rbenv_user_home: "{{ forum_rbenv_dir }}"
# rbenv_ruby_version: "{{ forum_ruby_version }}"
# - forum
- name: forum | setup the forum env - name: forum | setup the forum env
template: src=forum_env.j2 dest={{ forum_home }}/forum_env owner={{ forum_user }} group={{ forum_user }} template: src=forum_env.j2 dest={{ forum_home }}/forum_env owner={{ forum_user }} group={{ forum_user }}
...@@ -40,17 +56,17 @@ ...@@ -40,17 +56,17 @@
tags: tags:
- forum - forum
- install - install
only_if: "'${ansible_distribution}' == 'Debian'" when: ansible_distribution == 'Debian'
- name: forum | copy cs_comments_service upstart script - name: forum | copy cs_comments_service upstart script
template: src=cs_comments_service.conf.j2 dest=/etc/init/cs_comments_service.conf owner=root group=root mode=750 template: src=cs_comments_service.conf.j2 dest=/etc/init/cs_comments_service.conf owner=root group=root mode=644
notify: notify:
- forum | restart the forum service - forum | restart the forum service
tags: tags:
- forum - forum
- install - install
only_if: "'${ansible_distribution}' == 'Ubuntu'" when: ansible_distribution == 'Ubuntu'
- include: deploy.yml - include: deploy.yml
- include: test.yml - include: test.yml
--- ---
- name: forum | test that the required service are listening - name: forum | test that the required service are listening
wait_for: port={{ item.port }} timeout=1 wait_for: port={{ item.port }} timeout=10
with_items: "{{ forum_services }}" with_items: "{{ forum_services }}"
tags: tags:
- forum - forum
......
--- ---
forum_user: "forum" forum_user: "forum"
forum_home: "/opt/forum" forum_home: "/opt/wwc/forum"
forum_ruby_version: "1.9.3-p448" forum_ruby_version: "1.9.3-p448"
forum_code_dir: "{{ forum_home }}/cs_comments_service" forum_code_dir: "{{ forum_home }}/cs_comments_service"
forum_source_repo: "https://github.com/edx/cs_comments_service.git" forum_source_repo: "https://github.com/edx/cs_comments_service.git"
...@@ -10,10 +10,11 @@ forum_mongo_user: "cs_comments_service" ...@@ -10,10 +10,11 @@ forum_mongo_user: "cs_comments_service"
forum_mongo_password: "password" forum_mongo_password: "password"
forum_mongo_host: "localhost" forum_mongo_host: "localhost"
forum_mongo_port: "27010" forum_mongo_port: "27010"
forum_mongo_url: "mongodb://{{ forum_mongo_user }}:{{ forum_mongo_password }}@{{ formum_mongo_host }}:{{ forum_mongo_port }}/{{ forum_mongo_database }}" forum_mongo_database: "cs_comments_service"
forum_mongo_url: "mongodb://{{ forum_mongo_user }}:{{ forum_mongo_password }}@{{ forum_mongo_host }}:{{ forum_mongo_port }}/{{ forum_mongo_database }}"
forum_rack_env: "development" forum_rack_env: "development"
forum_sinatra_env: "development" forum_sinatra_env: "development"
forum_api_id: "tX5Dslg1y3OsCpFzRq" forum_api_key: "password"
forum_elasticsearch_host: "localhost" forum_elasticsearch_host: "localhost"
forum_elasticsearch_port: "9200" forum_elasticsearch_port: "9200"
forum_elasticsearch_url: "http://{{ forum_elasticsearch_host }}:{{ forum_elasticsearch_port }}" forum_elasticsearch_url: "http://{{ forum_elasticsearch_host }}:{{ forum_elasticsearch_port }}"
......
---
# oraclejdk
#
# Dependencies:
#
# * common
#
# Example play:
#
# roles:
# - common
# - oraclejdk
- name: oraclejdk | check for Oracle Java version {{ oraclejdk_base }} - name: oraclejdk | check for Oracle Java version {{ oraclejdk_base }}
command: test -d /usr/lib/jvm/{{ oraclejdk_base }} command: test -d /usr/lib/jvm/{{ oraclejdk_base }}
ignore_errors: true ignore_errors: true
...@@ -7,11 +21,19 @@ ...@@ -7,11 +21,19 @@
- install - install
- name: oraclejdk | download Oracle Java - name: oraclejdk | download Oracle Java
shell: executable="/bin/bash curl -b gpw_e24=http%3A%2F%2Fwww.oracle.com -O -L {{ oraclejdk_url }} chdir=/var/tmp" creates="/var/tmp/{ oraclejdk_file }" shell: >
curl -b gpw_e24=http%3A%2F%2Fwww.oracle.com -O -L {{ oraclejdk_url }}
executable=/bin/bash
chdir=/var/tmp
creates=/var/tmp/{{ oraclejdk_file }}
when: oraclejdk_present|failed when: oraclejdk_present|failed
- name: oraclejdk | install Oracle Java - name: oraclejdk | install Oracle Java
shell: exectuable=/bin/bash mkdir -p /usr/lib/jvm && tar -C /usr/lib/jvm -zxvf /var/tmp/{{ oraclejdk_file }} creates="/usr/lib/jvm/{{ oraclejdk_base }}" shell: >
mkdir -p /usr/lib/jvm && tar -C /usr/lib/jvm -zxvf /var/tmp/{{ oraclejdk_file }}
creates=/usr/lib/jvm/{{ oraclejdk_base }}
exectuable=/bin/bash
sudo: true sudo: true
when: oraclejdk_present|failed when: oraclejdk_present|failed
tags: tags:
......
---
# rbenv
#
# Dependencies:
#
# * common
#
# Example play:
#
# roles:
# - common
# - role: rbenv
# rbenv_user: "{{ forum_user }}"
# rbenv_user_home: "{{ forum_rbenv_dir }}"
# rbenv_ruby_version: "{{ forum_ruby_version }}"
#
# Parameters:
#
# * rbenv_user
# * rbenv_user_home
# * rbenv_ruby_version
# #
# cribbed from https://github.com/mmoya/ansible-playbooks/blob/master/rbenv/main.yml # cribbed from https://github.com/mmoya/ansible-playbooks/blob/master/rbenv/main.yml
# with a number of changes. # with a number of changes.
...@@ -12,21 +34,35 @@ ...@@ -12,21 +34,35 @@
- fail: rbenv_ruby_version required for role - fail: rbenv_ruby_version required for role
when: rbenv_ruby_version is not defined when: rbenv_ruby_version is not defined
# - name: rbenv | create {{ rbenv_user_home }}
# It's unfortunate that this needs to happen here, # workaround for the case where the parent
# but the rbenv needs to exist when the service # directory doesn't exist
# that relies on it is provisioned and the service file: >
# user and it's home needs to exist for rbenv to path={{ rbenv_user_home }}
# install into. state=directory
#
- name: rbenv | create rbenv owner $forum_user - name: rbenv | create rbenv user {{ rbenv_user }}
user: name=$forum_user state=present shell=/bin/bash home=$forum_home user: >
name={{ rbenv_user }}
state=present
shell=/bin/bash
home={{ rbenv_user_home }}
createhome=yes
tags: tags:
- forum - forum
- update - update
- name: rbenv | ensure homedir permissions {{ rbenv_user_home }}
# workaround for the case where the parent
# directory doesn't exist
file: >
path={{ rbenv_user_home }}
owner={{ rbenv_user }}
group={{ rbenv_user }}
state=directory
- name: rbenv | install build depends - name: rbenv | install build depends
apt: pkg=$item state=present install_recommends=no apt: pkg={{ item }} state=present install_recommends=no
with_items: with_items:
- build-essential - build-essential
- git - git
...@@ -42,7 +78,10 @@ ...@@ -42,7 +78,10 @@
- install - install
- name: rbenv | update rbenv repo - name: rbenv | update rbenv repo
git: repo=https://github.com/sstephenson/rbenv.git dest={{ rbenv_user_home }}/.rbenv version={{ rbenv_version }} git: >
repo=https://github.com/sstephenson/rbenv.git
dest={{ rbenv_user_home }}/.rbenv
version={{ rbenv_version }}
sudo: true sudo: true
sudo_user: "{{ rbenv_user }}" sudo_user: "{{ rbenv_user }}"
tags: tags:
...@@ -58,11 +97,19 @@ ...@@ -58,11 +97,19 @@
- update - update
- name: rbenv | drop a bash_profile - name: rbenv | drop a bash_profile
copy: src=../../common/files/bash_profile dest={{ rbenv_user_home }}/.bash_profile owner={{ rbenv_user }} group={{ rbenv_user }} copy: >
src=../../common/files/bash_profile
dest={{ rbenv_user_home }}/.bash_profile
owner={{ rbenv_user }}
group={{ rbenv_user }}
- name: rbenv | ensure ruby_env exists - name: rbenv | ensure ruby_env exists
template: src=ruby_env.j2 dest={{ rbenv_user_home }}/ruby_env owner={{ rbenv_user }} group={{ rbenv_user }} template: >
src=ruby_env.j2
dest={{ rbenv_user_home }}/ruby_env
owner={{ rbenv_user }}
group={{ rbenv_user }}
tags: tags:
- ruby - ruby
- update - update
...@@ -74,7 +121,11 @@ ...@@ -74,7 +121,11 @@
line='. {{ rbenv_user_home }}/ruby_env' line='. {{ rbenv_user_home }}/ruby_env'
- name: rbenv | drop a bash_profile - name: rbenv | drop a bash_profile
copy: src=../../common/files/bash_profile dest={{ rbenv_user_home }}/.bash_profile owner={{ rbenv_user }} group={{ rbenv_user }} copy: >
src=../../common/files/bash_profile
dest={{ rbenv_user_home }}/.bash_profile
owner={{ rbenv_user }}
group={{ rbenv_user }}
- name: rbenv | check ruby-build installed - name: rbenv | check ruby-build installed
command: test -x /usr/local/bin/ruby-build command: test -x /usr/local/bin/ruby-build
...@@ -95,7 +146,7 @@ ...@@ -95,7 +146,7 @@
- install - install
- name: rbenv | clone ruby-build repo - name: rbenv | clone ruby-build repo
git: repo=https://github.com/sstephenson/ruby-build.git dest=${tempdir.stdout}/ruby-build git: repo=https://github.com/sstephenson/ruby-build.git dest={{ tempdir.stdout }}/ruby-build
when: rbuild_present|failed when: rbuild_present|failed
sudo: true sudo: true
sudo_user: "{{ rbenv_user }}" sudo_user: "{{ rbenv_user }}"
......
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