Commit 05b6439b by John Jarvis

adding helper scripts in /edx/bin

This adds some helper scripts for managing the edx server.
parent 809170c9
...@@ -439,6 +439,12 @@ edxapp_all_req_files: ...@@ -439,6 +439,12 @@ edxapp_all_req_files:
# TODO: old style variable syntax is necessary # TODO: old style variable syntax is necessary
# for lists and dictionaries # for lists and dictionaries
edxapp_helper_scripts:
- edxapp-migrate
- edxapp-runserver
- edxapp-syncdb
- edxapp-update-assets
- edxapp-shell
edxapp_environment: edxapp_environment:
LANG: "{{ EDXAPP_LANG }}" LANG: "{{ EDXAPP_LANG }}"
...@@ -448,7 +454,14 @@ edxapp_environment: ...@@ -448,7 +454,14 @@ edxapp_environment:
GEM_HOME: "{{ edxapp_gem_root }}" GEM_HOME: "{{ edxapp_gem_root }}"
GEM_PATH: "{{ edxapp_gem_root }}" GEM_PATH: "{{ edxapp_gem_root }}"
PATH: "{{ edxapp_deploy_path }}" PATH: "{{ edxapp_deploy_path }}"
# the settings module for edxapp, DJANGO_SETTINGS_MODULE
# should be set to ${SERVICE_VARIANT}.${EDXAPP_SETTINGS}
# where SERVICE_VARIANT is lms or cms
EDX_PLATFORM_SETTINGS: aws
# Current set to the app dir for json config, this should
# be updated to /edx/etc/edxapp when the switch to
# yaml based configs is complete
CONFIG_ROOT: "{{ edxapp_app_dir }}"
edxapp_generic_auth_config: &edxapp_generic_auth edxapp_generic_auth_config: &edxapp_generic_auth
ANALYTICS_DATA_TOKEN: "{{ EDXAPP_ANALYTICS_DATA_TOKEN }}" ANALYTICS_DATA_TOKEN: "{{ EDXAPP_ANALYTICS_DATA_TOKEN }}"
......
...@@ -106,16 +106,24 @@ ...@@ -106,16 +106,24 @@
when: celery_worker is defined and not disable_edx_services when: celery_worker is defined and not disable_edx_services
sudo_user: "{{ supervisor_user }}" sudo_user: "{{ supervisor_user }}"
- name: create helper scripts for managing edxapp
template: >
src=edx/bin/{{ item[0] }}-{{ item[1] }}.j2
dest={{ COMMON_BIN_DIR }}/{{ item[0] }}-{{ item[1] }}
owner={{ edxapp_user }}
mode=0755
with_nested:
- edxapp_helper_scripts
- service_variants_enabled
# Syncdb with migrate when the migrate user is overridden in extra vars # Syncdb with migrate when the migrate user is overridden in extra vars
- name: syncdb and migrate - name: syncdb and migrate
shell: > command: "{{ COMMON_BIN_DIR }}/edxapp-syncdb-{{ item }}"
chdir={{ edxapp_code_dir }}
{{ edxapp_venv_bin}}/python manage.py {{ item }} syncdb --migrate --noinput --settings=aws_migrate
when: fake_migrations is not defined and migrate_db is defined and migrate_db|lower == "yes" and COMMON_MYSQL_MIGRATE_PASS and item != "lms-preview" when: fake_migrations is not defined and migrate_db is defined and migrate_db|lower == "yes" and COMMON_MYSQL_MIGRATE_PASS and item != "lms-preview"
environment: environment:
DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}" DB_MIGRATION_USER: "{{ COMMON_MYSQL_MIGRATE_USER }}"
DB_MIGRATION_PASS: "{{ COMMON_MYSQL_MIGRATE_PASS }}" DB_MIGRATION_PASS: "{{ COMMON_MYSQL_MIGRATE_PASS }}"
sudo_user: "{{ edxapp_user }}" EDX_PLATFORM_SETTINGS_OVERRIDE: "aws_migrate"
with_items: service_variants_enabled with_items: service_variants_enabled
notify: notify:
- "restart edxapp" - "restart edxapp"
...@@ -124,15 +132,9 @@ ...@@ -124,15 +132,9 @@
# Gather assets using paver if possible # Gather assets using paver if possible
- name: gather {{ item }} static assets with paver - name: gather {{ item }} static assets with paver
shell: > command: "{{ COMMON_BIN_DIR }}/edxapp-update-assets-{{ item }}"
SERVICE_VARIANT={{ item }} paver update_assets {{ item }} --settings=aws
executable=/bin/bash
chdir={{ edxapp_code_dir }}
sudo_user: "{{ edxapp_user }}"
when: celery_worker is not defined and not devstack and item != "lms-preview" when: celery_worker is not defined and not devstack and item != "lms-preview"
with_items: service_variants_enabled with_items: service_variants_enabled
notify: notify:
- "restart edxapp" - "restart edxapp"
- "restart edxapp_workers" - "restart edxapp_workers"
environment: "{{ edxapp_environment }}"
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py cms migrate --noinput --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py lms migrate --noinput --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py cms runserver {{ edxapp_cms_gunicorn_port }} --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py lms runserver {{ edxapp_lms_gunicorn_port }} --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py cms shell --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py lms shell --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py cms syncdb --migrate --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin}}/python manage.py lms syncdb --migrate --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin }}/paver update_assets cms --settings $EDX_PLATFORM_SETTINGS
{% include "edxapp_common.j2" %}
sudo -E -u {{ edxapp_user }} env "PATH=$PATH" {{ edxapp_venv_bin }}/paver update_assets lms --settings $EDX_PLATFORM_SETTINGS
#!/bin/bash
cd {{ edxapp_code_dir }}
source {{ edxapp_app_dir }}/edxapp_env
# The default settings set in edxapp_env can be overridden
# using the var $EDX_PLATFORM_SETTINGS_OVERRIDE
if [[ -n "$EDX_PLATFORM_SETTINGS_OVERRIDE" ]]; then
export EDX_PLATFORM_SETTINGS="$EDX_PLATFORM_SETTINGS_OVERRIDE"
fi
...@@ -138,22 +138,32 @@ ...@@ -138,22 +138,32 @@
mode=0644 mode=0644
- name: create a symlink for supervisortctl - name: create a symlink for supervisortctl
# these links are deprecated in favor of the shell wrapper
file: > file: >
src={{ supervisor_ctl }} src={{ supervisor_ctl }}
dest={{ COMMON_BIN_DIR }}/{{ supervisor_ctl|basename }} dest={{ COMMON_BIN_DIR }}/{{ supervisor_ctl|basename }}
state=link state=absent
when: supervisor_service == "supervisor" when: supervisor_service == "supervisor"
- name: create a symlink for supervisor cfg - name: create a symlink for supervisor cfg
# these links are deprecated in favor of the shell wrapper
file: > file: >
src={{ item }} src={{ item }}
dest={{ COMMON_CFG_DIR }}/{{ item|basename }} dest={{ COMMON_CFG_DIR }}/{{ item|basename }}
state=link state=absent
when: supervisor_service == "supervisor" when: supervisor_service == "supervisor"
with_items: with_items:
- "{{ supervisor_cfg }}" - "{{ supervisor_cfg }}"
- "{{ supervisor_cfg_dir }}" - "{{ supervisor_cfg_dir }}"
- name: create helper script for running supervisor
template: >
src=edx/bin/supervisorctl.j2
dest={{ COMMON_BIN_DIR }}/supervisorctl
owner={{ supervisor_service_user }}
mode=0755
when: supervisor_service == "supervisor"
- name: start supervisor - name: start supervisor
service: > service: >
name={{ supervisor_service }} name={{ supervisor_service }}
......
#!/bin/bash
sudo -u {{ supervisor_service_user }} {{ supervisor_ctl }} -c {{ supervisor_cfg }} $*
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