Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
configuration
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
configuration
Commits
d56788f6
Commit
d56788f6
authored
Oct 31, 2013
by
John Jarvis
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #390 from edx/jarv/edxapp-env
Some environment changes to speed up deploys
parents
08c5c421
fbee5b87
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
254 additions
and
132 deletions
+254
-132
playbooks/roles/certs/tasks/main.yml
+5
-2
playbooks/roles/devpi/defaults/main.yml
+15
-2
playbooks/roles/devpi/handlers/main.yml
+7
-4
playbooks/roles/devpi/tasks/main.yml
+44
-18
playbooks/roles/devpi/templates/devpi.conf.j2
+7
-0
playbooks/roles/edxapp/defaults/main.yml
+15
-7
playbooks/roles/edxapp/meta/main.yml
+1
-0
playbooks/roles/edxapp/tasks/deploy.yml
+65
-46
playbooks/roles/edxapp/tasks/main.yml
+14
-12
playbooks/roles/edxapp/tasks/service_variant_config.yml
+4
-4
playbooks/roles/edxapp/templates/edxapp_env.j2
+6
-0
playbooks/roles/ora/tasks/main.yml
+5
-2
playbooks/roles/supervisor/defaults/main.yml
+3
-0
playbooks/roles/supervisor/handlers/main.yml
+1
-1
playbooks/roles/supervisor/tasks/main.yml
+51
-22
playbooks/roles/supervisor/templates/devpi.conf.j2
+0
-7
playbooks/roles/supervisor/templates/supervisor-upstart.conf.j2
+1
-1
playbooks/roles/xqueue/tasks/main.yml
+5
-2
playbooks/roles/xserver/tasks/main.yml
+5
-2
No files found.
playbooks/roles/certs/tasks/main.yml
View file @
d56788f6
...
@@ -77,6 +77,9 @@
...
@@ -77,6 +77,9 @@
-
name
:
certs | create a symlink for venv python
-
name
:
certs | create a symlink for venv python
file
:
>
file
:
>
src="{{ certs_venv_bin }}/
python
"
src="{{ certs_venv_bin }}/
{{ item }}
"
dest={{ COMMON_BIN_DIR }}/
python
.certs
dest={{ COMMON_BIN_DIR }}/
{{ item }}
.certs
state=link
state=link
with_items
:
-
python
-
pip
playbooks/roles/devpi/defaults/main.yml
View file @
d56788f6
---
---
devpi_venv_dir
:
"
{{
COMMON_APP_DIR
}}/devpi/venvs/devpi"
devpi_app_dir
:
"
{{
COMMON_APP_DIR
}}/devpi"
devpi_data_dir
:
"
{{
COMMON_DATA_DIR
}}/devpi"
devpi_mirror_dir
:
"
{{
devpi_data_dir
}}/data"
devpi_log_dir
:
"
{{
COMMON_LOG_DIR
}}/devpi"
devpi_venvs_dir
:
"
{{
devpi_app_dir
}}/venvs"
devpi_venv_dir
:
"
{{
devpi_venvs_dir
}}/devpi"
devpi_venv_bin
:
"
{{
devpi_venv_dir
}}/bin"
devpi_supervisor_ctl
:
"
{{
devpi_venv_bin
}}/supervisorctl"
devpi_pip_pkgs
:
devpi_pip_pkgs
:
-
devpi-server
-
devpi-server
-
eventlet
-
eventlet
devpi_nginx_port
:
80
devpi_nginx_port
:
80
devpi_port
:
4040
devpi_port
:
4040
devpi_data_dir
:
/var/devpi/data
devpi_user
:
devpi
devpi_user
:
devpi
devpi_group
:
devpi
devpi_group
:
devpi
devpi_server_name
:
'
pypy.*'
devpi_server_name
:
'
pypy.*'
devpi_supervisor_user
:
devpi.supervisor
devpi_supervisor_app_dir
:
"
{{
devpi_app_dir
}}/supervisor"
devpi_supervisor_cfg_dir
:
"
{{
devpi_supervisor_app_dir
}}/conf.d"
devpi_supervisor_data_dir
:
"
{{
devpi_data_dir
}}/supervisor"
devpi_supervisor_cfg
:
"
{{
devpi_supervisor_app_dir
}}/supervisor.conf"
devpi_supervisor_log_dir
:
"
{{
devpi_log_dir
}}/supervisor"
playbooks/roles/devpi/handlers/main.yml
View file @
d56788f6
...
@@ -13,13 +13,16 @@
...
@@ -13,13 +13,16 @@
---
---
-
name
:
devpi | restart devpi
-
name
:
devpi | restart devpi
supervisorctl
:
>
supervisorctl
:
>
state=restarted
state=restarted
config={{ supervisor_cfg }}
supervisorctl_path={{ devpi_supervisor_ctl }}
config={{ devpi_supervisor_cfg }}
name=devpi-server
name=devpi-server
sudo_user
:
"
{{
devpi_supervisor_user
}}"
-
name
:
devpi | start devpi
-
name
:
devpi | start devpi
supervisorctl
:
>
supervisorctl
:
>
state=started
state=started
config={{ supervisor_cfg }}
supervisorctl_path={{ devpi_supervisor_ctl }}
config={{ devpi_supervisor_cfg }}
name=devpi-server
name=devpi-server
sudo_user
:
"
{{
devpi_supervisor_user
}}"
playbooks/roles/devpi/tasks/main.yml
View file @
d56788f6
...
@@ -33,36 +33,62 @@
...
@@ -33,36 +33,62 @@
-
name
:
devpi | create devpi user
-
name
:
devpi | create devpi user
user
:
>
user
:
>
name={{ devpi_user }}
name={{ devpi_user }}
s
tate=present
s
hell=/bin/false createhome=no
-
name
:
devpi | create
virtualenv directory
-
name
:
devpi | create
devpi application directories
file
:
>
file
:
>
path={{
devpi_venv_dir
}}
path={{
item
}}
state=directory
state=directory
owner={{ devpi_user }}
owner={{ devpi_user }}
group={{ devpi_group }}
group={{ devpi_supervisor_user }}
notify
:
devpi | restart devpi
notify
:
supervisor | restart supervisor
with_items
:
-
"
{{
devpi_app_dir
}}"
-
"
{{
devpi_venv_dir
}}"
-
name
:
devpi | create the devpi data directory
-
name
:
devpi | create the devpi data directory
, needs write access by the service user
file
:
>
file
:
>
path={{
devpi_data_dir
}}
path={{
item
}}
state=directory
state=directory
owner={{ devpi_user }}
owner={{ devpi_supervisor_user }}
group={{ devpi_group }}
group={{ devpi_user }}
with_items
:
-
"
{{
devpi_data_dir
}}"
-
"
{{
devpi_mirror_dir
}}"
-
name
:
devpi | install devpi pip pkgs
-
name
:
devpi | install devpi pip pkgs
pip
:
>
pip
:
>
name={{ item }}
name={{ item }}
state=present
state=present
virtualenv={{ devpi_venv_dir }}
virtualenv={{ devpi_venv_dir }}
sudo_user
:
"
{{
devpi_user
}}"
with_items
:
devpi_pip_pkgs
with_items
:
devpi_pip_pkgs
notify
:
devpi | restart devpi
notify
:
supervisor | restart supervisor
-
name
:
supervisor | ensure supervisor is started
-
name
:
devpi | writing supervisor script
service
:
name=supervisor state=started
template
:
>
src=devpi.conf.j2 dest={{ devpi_supervisor_cfg_dir }}/devpi.conf
owner={{ devpi_user }} group={{ devpi_user }} mode=0644
notify
:
supervisor | restart supervisor
-
name
:
devpi | create a symlink for venv python, pip and supervisor
file
:
>
src="{{ devpi_venv_bin }}/{{ item }}"
dest={{ COMMON_BIN_DIR }}/{{ item }}.devpi
state=link
with_items
:
-
python
-
pip
-
supervisorctl
-
name
:
devpi | create a symlink for supervisor config
file
:
>
src="{{ devpi_supervisor_app_dir }}/supervisord.conf"
dest={{ COMMON_CFG_DIR }}/supervisord.conf.devpi
state=link
-
name
:
devpi | ensure devpi is running
# flush queued up handlers so that devpi
supervisorctl
:
>
# is restarted since downstream roles
state=started
# will need to use it
config={{ supervisor_cfg }}
-
meta
:
flush_handlers
name=devpi-server
playbooks/roles/devpi/templates/devpi.conf.j2
0 → 100644
View file @
d56788f6
[program:devpi-server]
command={{ devpi_venv_bin }}/devpi-server --port {{ devpi_port }} --serverdir {{ devpi_mirror_dir }}
user={{ devpi_supervisor_user }}
priority=999
stdout_logfile={{ devpi_supervisor_log_dir }}/%(program_name)-stdout.log
stderr_logfile={{ devpi_supervisor_log_dir }}/%(program_name)-stderr.log
autostart=True
playbooks/roles/edxapp/defaults/main.yml
View file @
d56788f6
...
@@ -111,6 +111,7 @@ edxapp_staticfile_dir: "{{ edxapp_data_dir }}/staticfiles"
...
@@ -111,6 +111,7 @@ edxapp_staticfile_dir: "{{ edxapp_data_dir }}/staticfiles"
edxapp_course_data_dir
:
"
{{
edxapp_data_dir
}}/data"
edxapp_course_data_dir
:
"
{{
edxapp_data_dir
}}/data"
edxapp_upload_dir
:
"
{{
edxapp_data_dir
}}/uploads"
edxapp_upload_dir
:
"
{{
edxapp_data_dir
}}/uploads"
edxapp_theme_dir
:
"
{{
edxapp_data_dir
}}/themes"
edxapp_theme_dir
:
"
{{
edxapp_data_dir
}}/themes"
edxapp_pypi_local_mirror
:
"
http://localhost:{{
devpi_port
}}/root/pypi/+simple"
edxapp_workers
:
edxapp_workers
:
-
queue
:
low
-
queue
:
low
service_variant
:
cms
service_variant
:
cms
...
@@ -134,15 +135,22 @@ edxapp_workers:
...
@@ -134,15 +135,22 @@ edxapp_workers:
service_variant
:
lms
service_variant
:
lms
concurrency
:
2
concurrency
:
2
edxapp_all_req_files
:
-
"
{{
pre_requirements_file
}}"
-
"
{{
post_requirements_file
}}"
-
"
{{
repo_requirements_file
}}"
-
"
{{
github_requirements_file
}}"
-
"
{{
local_requirements_file
}}"
-
"
{{
sandbox_base_requirements
}}"
-
"
{{
sandbox_local_requirements
}}"
-
"
{{
sandbox_post_requirements
}}"
-
"
{{
edxapp_code_dir
}}/package.json"
-
"
{{
edxapp_code_dir
}}/Gemfile"
# TODO: old style variable syntax is necessary
# TODO: old style variable syntax is necessary
# here until ansible 1.4
# for lists and dictionaries
edxapp_deploy_environment
:
edxapp_environment
:
LANG
:
$EDXAPP_LANG
LANG
:
$EDXAPP_LANG
NO_PREREQ_INSTALL
:
1
NO_PREREQ_INSTALL
:
1
SKIP_WS_MIGRATIONS
:
1
SKIP_WS_MIGRATIONS
:
1
...
...
playbooks/roles/edxapp/meta/main.yml
View file @
d56788f6
...
@@ -4,3 +4,4 @@ dependencies:
...
@@ -4,3 +4,4 @@ dependencies:
rbenv_user
:
"
{{
edxapp_user
}}"
rbenv_user
:
"
{{
edxapp_user
}}"
rbenv_dir
:
"
{{
edxapp_app_dir
}}"
rbenv_dir
:
"
{{
edxapp_app_dir
}}"
rbenv_ruby_version
:
"
{{
edxapp_ruby_version
}}"
rbenv_ruby_version
:
"
{{
edxapp_ruby_version
}}"
-
devpi
playbooks/roles/edxapp/tasks/deploy.yml
View file @
d56788f6
...
@@ -30,15 +30,14 @@
...
@@ -30,15 +30,14 @@
# Do A Checkout
# Do A Checkout
-
name
:
edxapp | checkout edx-platform repo into {{edxapp_code_dir}}
-
name
:
edxapp | checkout edx-platform repo into {{edxapp_code_dir}}
git
:
dest={{edxapp_code_dir}} repo={{edx_platform_repo}} version={{edx_platform_commit}}
git
:
dest={{edxapp_code_dir}} repo={{edx_platform_repo}} version={{edx_platform_commit}}
register
:
edx_platform_chec
kout
register
:
ch
kout
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
tags
:
-
deploy
-
deploy
-
name
:
edxapp | git clean after checking out edx-platform
-
name
:
edxapp | git clean after checking out edx-platform
shell
:
cd {{edxapp_code_dir}} && git clean -xdf
shell
:
cd {{edxapp_code_dir}} && git clean -xdf
when
:
edx_platform_chec
kout.changed
when
:
ch
kout.changed
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
tags
:
-
deploy
-
deploy
...
@@ -51,16 +50,43 @@
...
@@ -51,16 +50,43 @@
tags
:
tags
:
-
deploy
-
deploy
-
name
:
edxapp | create checksum for requirements, package.json and Gemfile
shell
:
>
/usr/bin/md5sum {{ " ".join(edxapp_all_req_files) }} 2>/dev/null > /var/tmp/edxapp.req.new
sudo_user
:
"
{{
edxapp_user
}}"
ignore_errors
:
true
when
:
chkout.changed
tags
:
-
deploy
-
stat
:
path=/var/tmp/edxapp.req.new
register
:
new
tags
:
deploy
-
stat
:
path=/var/tmp/edxapp.req.installed
register
:
inst
tags
:
deploy
# Substitute github mirror in all requirements files
-
name
:
edxapp | Updating requirement files for git mirror
command
:
|
/bin/sed -i -e 's/github\.com/{{ COMMON_GIT_MIRROR }}/g' {{ item }}
with_items
:
edxapp_all_req_files
sudo_user
:
"
{{
edxapp_user
}}"
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
tags
:
deploy
# Ruby plays that need to be run after platform updates.
# Ruby plays that need to be run after platform updates.
-
name
:
edxapp | gem install bundler
-
name
:
edxapp | gem install bundler
shell
:
>
shell
:
>
gem install bundle
gem install bundle
chdir={{ edxapp_code_dir }}
chdir={{ edxapp_code_dir }}
executable=/bin/bash
executable=/bin/bash
environment
:
"
{{
edxapp_
deploy_
environment
}}"
environment
:
"
{{
edxapp_environment
}}"
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
-
name
:
edxapp | bundle install
-
name
:
edxapp | bundle install
shell
:
>
shell
:
>
...
@@ -68,37 +94,18 @@
...
@@ -68,37 +94,18 @@
chdir={{ edxapp_code_dir }}
chdir={{ edxapp_code_dir }}
executable=/bin/bash
executable=/bin/bash
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
environment
:
"
{{
edxapp_
deploy_
environment
}}"
environment
:
"
{{
edxapp_environment
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
# Node play that need to be run after platform updates.
# Node play that need to be run after platform updates.
-
name
:
edxapp | Install edx-platform npm dependencies
-
name
:
edxapp | Install edx-platform npm dependencies
shell
:
npm install chdir={{ edxapp_code_dir }}
shell
:
npm install chdir={{ edxapp_code_dir }}
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
environment
:
"
{{
edxapp_
deploy_
environment
}}"
environment
:
"
{{
edxapp_environment
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
# Python plays that need to be run after platform updates.
# Substitute github mirror in all requirements files
#
-
name
:
edxapp | Updating requirement files for git mirror
command
:
|
/bin/sed -i -e 's/github\.com/{{ COMMON_GIT_MIRROR }}/g' {{ item }}
with_items
:
-
"
{{
pre_requirements_file
}}"
-
"
{{
post_requirements_file
}}"
-
"
{{
repo_requirements_file
}}"
-
"
{{
github_requirements_file
}}"
-
"
{{
local_requirements_file
}}"
-
"
{{
sandbox_base_requirements
}}"
-
"
{{
sandbox_local_requirements
}}"
-
"
{{
sandbox_post_requirements
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
-
deploy
# Install the python pre requirements into {{ edxapp_venv_dir }}
# Install the python pre requirements into {{ edxapp_venv_dir }}
-
name
:
edxapp | install python pre-requirements
-
name
:
edxapp | install python pre-requirements
...
@@ -106,20 +113,24 @@
...
@@ -106,20 +113,24 @@
requirements="{{pre_requirements_file}}"
requirements="{{pre_requirements_file}}"
virtualenv="{{edxapp_venv_dir}}"
virtualenv="{{edxapp_venv_dir}}"
state=present
state=present
extra_args="-i {{
COMMON_PYPI_MIRROR_URL
}}"
extra_args="-i {{
edxapp_pypi_local_mirror
}}"
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
environment
:
"
{{
edxapp_environment
}}"
-
deploy
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
tags
:
deploy
# Install the python modules into {{ edxapp_venv_dir }}
# Install the python modules into {{ edxapp_venv_dir }}
-
name
:
edxapp | install python base-requirements
-
name
:
edxapp | install python base-requirements
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# installs everything into that virtual environment.
# installs everything into that virtual environment.
shell
:
cd {{ edxapp_code_dir }} && {{ edxapp_venv_dir }}/bin/pip install -i {{ COMMON_PYPI_MIRROR_URL }} --exists-action w --use-mirrors -r {{ base_requirements_file }}
shell
:
>
{{ edxapp_venv_dir }}/bin/pip install -i {{ edxapp_pypi_local_mirror }} --exists-action w --use-mirrors -r {{ base_requirements_file }}
chdir={{ edxapp_code_dir }}
environment
:
"
{{
edxapp_environment
}}"
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
# Install the python post requirements into {{ edxapp_venv_dir }}
# Install the python post requirements into {{ edxapp_venv_dir }}
-
name
:
edxapp | install python post-requirements
-
name
:
edxapp | install python post-requirements
...
@@ -127,24 +138,25 @@
...
@@ -127,24 +138,25 @@
requirements="{{post_requirements_file}}"
requirements="{{post_requirements_file}}"
virtualenv="{{edxapp_venv_dir}}"
virtualenv="{{edxapp_venv_dir}}"
state=present
state=present
extra_args="-i {{
COMMON_PYPI_MIRROR_URL
}}"
extra_args="-i {{
edxapp_pypi_local_mirror
}}"
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
environment
:
"
{{
edxapp_environment
}}"
-
deploy
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
tags
:
deploy
# Install the final python modules into {{ edxapp_venv_dir }}
# Install the final python modules into {{ edxapp_venv_dir }}
-
name
:
edxapp | install python post-post requirements
-
name
:
edxapp | install python post-post requirements
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# installs everything into that virtual environment.
# installs everything into that virtual environment.
shell
:
cd {{ edxapp_code_dir }} && {{ edxapp_venv_dir }}/bin/pip install -i {{
COMMON_PYPI_MIRROR_URL
}} --exists-action w --use-mirrors -r {{ item }}
shell
:
cd {{ edxapp_code_dir }} && {{ edxapp_venv_dir }}/bin/pip install -i {{
edxapp_pypi_local_mirror
}} --exists-action w --use-mirrors -r {{ item }}
with_items
:
with_items
:
-
"
{{
repo_requirements_file
}}"
-
"
{{
repo_requirements_file
}}"
-
"
{{
github_requirements_file
}}"
-
"
{{
github_requirements_file
}}"
-
"
{{
local_requirements_file
}}"
-
"
{{
local_requirements_file
}}"
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
# Install the sandbox python modules into {{ edxapp_venv_dir }}
# Install the sandbox python modules into {{ edxapp_venv_dir }}
...
@@ -152,15 +164,22 @@
...
@@ -152,15 +164,22 @@
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# Need to use shell rather than pip so that we can maintain the context of our current working directory; some
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# requirements are pathed relative to the edx-platform repo. Using the pip from inside the virtual environment implicitly
# installs everything into that virtual environment.
# installs everything into that virtual environment.
shell
:
cd {{ edxapp_code_dir }} && {{ edxapp_venv_dir }}/bin/pip install -i {{
COMMON_PYPI_MIRROR_URL
}} --exists-action w --use-mirrors -r {{ item }}
shell
:
cd {{ edxapp_code_dir }} && {{ edxapp_venv_dir }}/bin/pip install -i {{
edxapp_pypi_local_mirror
}} --exists-action w --use-mirrors -r {{ item }}
with_items
:
with_items
:
-
"
{{
sandbox_base_requirements
}}"
-
"
{{
sandbox_base_requirements
}}"
-
"
{{
sandbox_local_requirements
}}"
-
"
{{
sandbox_local_requirements
}}"
-
"
{{
sandbox_post_requirements
}}"
-
"
{{
sandbox_post_requirements
}}"
when
:
install_sandbox_reqs_into_regular_venv
when
:
install_sandbox_reqs_into_regular_venv
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
tags
:
when
:
chkout.changed and not inst.stat.exists or new.stat.md5 != inst.stat.md5
-
deploy
tags
:
deploy
-
name
:
edxapp | create checksum for installed requirements
shell
:
cp /var/tmp/edxapp.req.new /var/tmp/edxapp.req.installed
sudo_user
:
"
{{
edxapp_user
}}"
when
:
chkout.changed
tags
:
deploy
# https://code.launchpad.net/~wligtenberg/django-openid-auth/mysql_fix/+merge/22726
# https://code.launchpad.net/~wligtenberg/django-openid-auth/mysql_fix/+merge/22726
# This is necessary for when syncdb is run and the django_openid_auth module is installed,
# This is necessary for when syncdb is run and the django_openid_auth module is installed,
...
...
playbooks/roles/edxapp/tasks/main.yml
View file @
d56788f6
...
@@ -12,28 +12,20 @@
...
@@ -12,28 +12,20 @@
name="{{ edxapp_user }}" home="{{ edxapp_app_dir }}"
name="{{ edxapp_user }}" home="{{ edxapp_app_dir }}"
createhome=no shell=/bin/false
createhome=no shell=/bin/false
-
name
:
edxapp | create edxapp
app dir
-
name
:
edxapp | create edxapp
user dirs
file
:
>
file
:
>
path="{{ item }}" state=directory
path="{{ item }}" state=directory
owner="{{ edxapp_user }}" group="{{ common_web_group }}"
owner="{{ edxapp_user }}" group="{{ common_web_group }}"
with_items
:
with_items
:
-
"
{{
edxapp_app_dir
}}"
-
"
{{
edxapp_app_dir
}}"
-
"
{{
edxapp_venvs_dir
}}"
-
"
{{
edxapp_venvs_dir
}}"
-
"
{{
edxapp_theme_dir
}}"
-
name
:
edxapp | create edxapp log dir
-
name
:
edxapp | create edxapp log dir
file
:
>
file
:
>
path="{{ edxapp_log_dir }}" state=directory
path="{{ edxapp_log_dir }}" state=directory
owner="{{ common_log_user }}" group="{{ common_log_user }}"
owner="{{ common_log_user }}" group="{{ common_log_user }}"
-
name
:
edxapp | create edxapp writable dirs
file
:
>
path="{{ item }}" state=directory
owner="{{ edxapp_user }}" group="{{ edxapp_user }}"
with_items
:
-
"
{{
edxapp_staticfile_dir
}}"
-
"
{{
edxapp_theme_dir
}}"
-
name
:
edxapp | create web-writable edxapp data dirs
-
name
:
edxapp | create web-writable edxapp data dirs
file
:
>
file
:
>
path="{{ item }}" state=directory
path="{{ item }}" state=directory
...
@@ -53,10 +45,20 @@
...
@@ -53,10 +45,20 @@
mode=0750
mode=0750
with_items
:
service_variants_enabled
with_items
:
service_variants_enabled
-
name
:
edxapp | setup the edxapp env
template
:
>
src=edxapp_env.j2 dest={{ edxapp_app_dir }}/edxapp_env
owner={{ edxapp_user }} group={{ common_web_user }}
mode=0644
-
include
:
deploy.yml
-
include
:
deploy.yml
-
name
:
edxapp | create a symlink for venv python
-
name
:
edxapp | create a symlink for venv python
file
:
>
file
:
>
src="{{ edxapp_venv_bin }}/
python
"
src="{{ edxapp_venv_bin }}/
{{ item }}
"
dest={{ COMMON_BIN_DIR }}/
python
.edxapp
dest={{ COMMON_BIN_DIR }}/
{{ item }}
.edxapp
state=link
state=link
with_items
:
-
python
-
pip
playbooks/roles/edxapp/tasks/service_variant_config.yml
View file @
d56788f6
...
@@ -59,22 +59,22 @@
...
@@ -59,22 +59,22 @@
executable=/bin/bash
executable=/bin/bash
chdir={{ edxapp_code_dir }}
chdir={{ edxapp_code_dir }}
sudo_user
:
"
{{
edxapp_user
}}"
sudo_user
:
"
{{
edxapp_user
}}"
when
:
celery_worker is not defined
when
:
c
hkout.changed and c
elery_worker is not defined
with_items
:
service_variants_enabled
with_items
:
service_variants_enabled
environment
:
"
{{
edxapp_
deploy_
environment
}}"
environment
:
"
{{
edxapp_environment
}}"
tags
:
tags
:
-
deploy
-
deploy
-
name
:
edxapp | syncdb and migrate
-
name
:
edxapp | syncdb and migrate
shell
:
sudo -u {{ edxapp_user }} SERVICE_VARIANT=lms {{ edxapp_venv_bin}}/django-admin.py syncdb --migrate --noinput --settings=lms.envs.aws --pythonpath={{ edxapp_code_dir }}
shell
:
sudo -u {{ edxapp_user }} SERVICE_VARIANT=lms {{ edxapp_venv_bin}}/django-admin.py syncdb --migrate --noinput --settings=lms.envs.aws --pythonpath={{ edxapp_code_dir }}
when
:
migrate_db is defined and migrate_db|lower == "yes"
when
:
chkout and
migrate_db is defined and migrate_db|lower == "yes"
tags
:
tags
:
-
deploy
-
deploy
-
name
:
edxapp | db migrate
-
name
:
edxapp | db migrate
shell
:
sudo -u {{ edxapp_user }} SERVICE_VARIANT=lms {{ edxapp_venv_bin }}/django-admin.py migrate --noinput --settings=lms.envs.aws --pythonpath={{ edxapp_code_dir }}
shell
:
sudo -u {{ edxapp_user }} SERVICE_VARIANT=lms {{ edxapp_venv_bin }}/django-admin.py migrate --noinput --settings=lms.envs.aws --pythonpath={{ edxapp_code_dir }}
when
:
migrate_only is defined and migrate_only|lower == "yes"
when
:
chkout.changed and
migrate_only is defined and migrate_only|lower == "yes"
tags
:
tags
:
-
deploy
-
deploy
...
...
playbooks/roles/edxapp/templates/edxapp_env.j2
0 → 100644
View file @
d56788f6
# {{ ansible_managed }}
{% for name,value in edxapp_environment.items() %}
{%- if value %}
export {{ name }}="{{ value }}"
{%- endif %}
{% endfor %}
playbooks/roles/ora/tasks/main.yml
View file @
d56788f6
...
@@ -30,5 +30,8 @@
...
@@ -30,5 +30,8 @@
-
name
:
ora | create a symlink for venv python
-
name
:
ora | create a symlink for venv python
file
:
>
file
:
>
src="{{ ora_venv_bin }}/python"
src="{{ ora_venv_bin }}/{{ item }}"
dest={{ COMMON_BIN_DIR }}/python.ora state=link
dest={{ COMMON_BIN_DIR }}/{{ item }}.ora state=link
with_items
:
-
python
-
pip
playbooks/roles/supervisor/defaults/main.yml
View file @
d56788f6
...
@@ -25,3 +25,6 @@ supervisor_ctl: "{{ supervisor_venv_bin }}/supervisorctl"
...
@@ -25,3 +25,6 @@ supervisor_ctl: "{{ supervisor_venv_bin }}/supervisorctl"
supervisor_user
:
supervisor
supervisor_user
:
supervisor
supervisor_log_dir
:
"
{{
COMMON_LOG_DIR
}}/supervisor"
supervisor_log_dir
:
"
{{
COMMON_LOG_DIR
}}/supervisor"
supervisor_cfg
:
"
{{
supervisor_app_dir
}}/supervisord.conf"
supervisor_cfg
:
"
{{
supervisor_app_dir
}}/supervisord.conf"
# upstart service name and user
supervisor_service
:
supervisor
supervisor_service_user
:
"
{{
common_web_user
}}"
playbooks/roles/supervisor/handlers/main.yml
View file @
d56788f6
-
name
:
supervisor | restart supervisor
-
name
:
supervisor | restart supervisor
service
:
>
service
:
>
name=
supervisor
name=
{{ supervisor_service }}
state=restarted
state=restarted
-
name
:
supervisor | reload supervisor
-
name
:
supervisor | reload supervisor
...
...
playbooks/roles/supervisor/tasks/main.yml
View file @
d56788f6
...
@@ -11,22 +11,54 @@
...
@@ -11,22 +11,54 @@
# Tasks for role supervisor
# Tasks for role supervisor
#
#
# Overview:
# Overview:
# Role for supervisord
# Role for supervisord, a parameterized role for installing supervisord
# Installs supervisor in its own venv.
#
# By default supervisor will be installed into {{ COMMON_APP_DIR }}/supervisor
# and log to {{ COMMON_LOG_DIR }}/supervisor and run as the
# {{ common_web_user }}
#
# The including supervisor with the following parameters
# will install it into a different location:
#
# - supervisor_app_dir
# - supervisor_data_dir
# - supervisor_log_dir
# - supervisor_venv_dir
# - supervisor_service_user
# - supervisor_service
#
#
# Dependencies:
# Dependencies:
# - common
# - common
#
#
# Example play:
# Example play:
#
# # Install in the default location,
# # run as the default user
#
# roles:
# roles:
# - common
# - common
# - role: supervisor
# - role: supervisor
#
# # Install in an alternate directory
# # and run as user "foo"
# - role: supervisor
# supervisor_app_dir: /path/to/supervisor/dir/for/configs
# supervisor_data_dir: /path/to/supervisor/data/dir (for pid and sock files)
# supervisor_log_dir: /path/to/supervisor/log/dir
# supervisor_venv_dir: /path/to/supervisor/venv/dir
# supervisor_service_user: user to run supervisor as
# supervisor_service: upstart-service-name
#
---
---
-
name
:
supervisor | create application user
-
name
:
supervisor | create application user
user
:
>
user
:
>
name="{{ supervisor_user }}"
name="{{ supervisor_user }}"
home="{{ supervisor_app_dir }}"
createhome=no
shell=/bin/false
-
name
:
supervisor | create supervisor service user
user
:
>
name="{{ supervisor_service_user }}"
createhome=no
createhome=no
shell=/bin/false
shell=/bin/false
...
@@ -35,19 +67,19 @@
...
@@ -35,19 +67,19 @@
name={{ item }}
name={{ item }}
state=directory
state=directory
owner={{ supervisor_user }}
owner={{ supervisor_user }}
group={{
common_web
_user }}
group={{
supervisor_service
_user }}
with_items
:
with_items
:
-
"
{{
supervisor_app_dir
}}"
-
"
{{
supervisor_app_dir
}}"
-
"
{{
supervisor_venvs_dir
}}"
-
"
{{
supervisor_venv_dir
}}"
-
"
{{
supervisor_cfg_dir
}}"
-
name
:
supervisor | create supervisor directories
-
name
:
supervisor | create supervisor directories
file
:
>
file
:
>
name={{ item }}
name={{ item }}
state=directory
state=directory
owner={{
common_web
_user }}
owner={{
supervisor_service
_user }}
group={{ supervisor_user }}
group={{ supervisor_user }}
with_items
:
with_items
:
-
"
{{
supervisor_cfg_dir
}}"
-
"
{{
supervisor_data_dir
}}"
-
"
{{
supervisor_data_dir
}}"
-
"
{{
supervisor_log_dir
}}"
-
"
{{
supervisor_log_dir
}}"
...
@@ -59,14 +91,14 @@
...
@@ -59,14 +91,14 @@
-
name
:
supervisor | create supervisor upstart job
-
name
:
supervisor | create supervisor upstart job
template
:
>
template
:
>
src=supervisor-upstart.conf.j2 dest=/etc/init/
supervisor
.conf
src=supervisor-upstart.conf.j2 dest=/etc/init/
{{ supervisor_service }}
.conf
owner=root group=root
owner=root group=root
notify
:
supervisor | restart supervisor
notify
:
supervisor | restart supervisor
-
name
:
supervisor | create supervisor master config
-
name
:
supervisor | create supervisor master config
template
:
>
template
:
>
src=supervisord.conf.j2 dest={{ supervisor_cfg }}
src=supervisord.conf.j2 dest={{ supervisor_cfg }}
owner={{ supervisor_user }} group={{
common_web
_user }}
owner={{ supervisor_user }} group={{
supervisor_service
_user }}
mode=0644
mode=0644
notify
:
supervisor | restart supervisor
notify
:
supervisor | restart supervisor
...
@@ -75,19 +107,16 @@
...
@@ -75,19 +107,16 @@
src={{ supervisor_ctl }}
src={{ supervisor_ctl }}
dest={{ COMMON_BIN_DIR }}/{{ supervisor_ctl|basename }}
dest={{ COMMON_BIN_DIR }}/{{ supervisor_ctl|basename }}
state=link
state=link
when
:
supervisor_service == "supervisor"
notify
:
supervisor | restart supervisor
-
name
:
supervisor | create a symlink for supervisor cfg
-
name
:
supervisor | create a symlink for supervisor cfg
file
:
>
file
:
>
src={{
supervisor_cfg
}}
src={{
item
}}
dest={{ COMMON_CFG_DIR }}/{{
supervisor_cfg
|basename }}
dest={{ COMMON_CFG_DIR }}/{{
item
|basename }}
state=link
state=link
when
:
supervisor_service == "supervisor"
-
name
:
supervisor | create a symlink for supervisor cfg dir
with_items
:
file
:
>
-
"
{{
supervisor_cfg
}}"
src={{ supervisor_cfg_dir }}
-
"
{{
supervisor_cfg_dir
}}"
dest={{ COMMON_CFG_DIR }}/supervisor.{{ supervisor_cfg_dir|basename }}
notify
:
supervisor | restart supervisor
state=link
-
name
:
supervisor | ensure supervisor is started
service
:
name=supervisor state=started
playbooks/roles/supervisor/templates/devpi.conf.j2
deleted
100644 → 0
View file @
08c5c421
[program:devpi-server]
command={{ devpi_venv_dir }}/bin/devpi-server --port {{ devpi_port }} --serverdir {{ devpi_data_dir }}
priority=999
startsecs = 5
redirect_stderr = True
autostart=True
user={{ devpi_user }}
playbooks/roles/supervisor/templates/supervisor-upstart.conf.j2
View file @
d56788f6
...
@@ -4,5 +4,5 @@ start on runlevel [2345]
...
@@ -4,5 +4,5 @@ start on runlevel [2345]
stop on runlevel [!2345]
stop on runlevel [!2345]
respawn
respawn
setuid {{
common_web
_user }}
setuid {{
supervisor_service
_user }}
exec {{ supervisor_venv_dir }}/bin/supervisord --nodaemon --configuration {{ supervisor_cfg }}
exec {{ supervisor_venv_dir }}/bin/supervisord --nodaemon --configuration {{ supervisor_cfg }}
playbooks/roles/xqueue/tasks/main.yml
View file @
d56788f6
...
@@ -44,6 +44,9 @@
...
@@ -44,6 +44,9 @@
-
name
:
xqueue | create a symlink for venv python
-
name
:
xqueue | create a symlink for venv python
file
:
>
file
:
>
src="{{ xqueue_venv_bin }}/
python
"
src="{{ xqueue_venv_bin }}/
{{ item }}
"
dest={{ COMMON_BIN_DIR }}/
python
.xqueue
dest={{ COMMON_BIN_DIR }}/
{{ item }}
.xqueue
state=link
state=link
with_items
:
-
python
-
pip
playbooks/roles/xserver/tasks/main.yml
View file @
d56788f6
...
@@ -73,7 +73,10 @@
...
@@ -73,7 +73,10 @@
-
name
:
xserver | create a symlink for venv python
-
name
:
xserver | create a symlink for venv python
file
:
>
file
:
>
src="{{ xserver_venv_bin }}/
python
"
src="{{ xserver_venv_bin }}/
{{ item }}
"
dest={{ COMMON_BIN_DIR }}/
python
.xserver
dest={{ COMMON_BIN_DIR }}/
{{ item }}
.xserver
state=link
state=link
with_items
:
-
python
-
pip
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment