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
a4840464
Commit
a4840464
authored
Oct 04, 2013
by
e0d
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
toward working version 1
parent
b2dbe243
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
148 additions
and
125 deletions
+148
-125
playbooks/roles/analytics-server/defaults/main.yml
+56
-25
playbooks/roles/analytics-server/files/etc/sudoers.d/99-automator-analytics-server
+3
-0
playbooks/roles/analytics-server/handlers/main.yml
+3
-3
playbooks/roles/analytics-server/meta/main.yml
+10
-0
playbooks/roles/analytics-server/tasks/deploy.yml
+28
-28
playbooks/roles/analytics-server/tasks/main.yml
+38
-38
playbooks/roles/analytics-server/templates/etc/init/analytics.conf
+0
-21
playbooks/roles/analytics-server/templates/etc/init/analytics.conf.j2
+9
-9
playbooks/roles/analytics-server/templates/opt/wwc/analytics-server/analytics-server_env.j2
+1
-1
No files found.
playbooks/roles/analytics-server/defaults/main.yml
View file @
a4840464
...
...
@@ -8,42 +8,72 @@
# license: https://github.com/edx/configuration/blob/master/LICENSE.TXT
#
#
# Vars for role analytics-
experiments
# Vars for role analytics-
server
# vars are namespace with the module name.
#
ax_role_name
:
"
analytics-experiments"
ax_user
:
"
analytics-experiments"
ax_home
:
"
/opt/wwc/analytics-experiments"
ax_venv_dir
:
"
{{
ax_home
}}/virtualenvs/analytics-experiments"
ax_source_repo
:
"
git@github.com:edx/analytics-server.git"
ax_code_dir
:
"
{{
ax_home
}}/src"
ax_version
:
"
master"
ax_git_identity_path
:
"
{{
secure_dir
}}/files/git-identity"
ax_requirements_file
:
"
{{
ax_code_dir
}}/requirements.txt"
ax_log_level
:
"
INFO"
ax_rsyslog_enabled
:
"
yes"
ax_web_user
:
"
www-data"
ax_env
:
"
analytics-experiments_env"
ax_service_variant
:
'
analytics'
ax_workers
:
'
4'
ax_server_port
:
'
9000'
ax_env_lang
:
'
en_US.UTF-8'
ax_django_settings
:
'
anserv.settings'
ax_env_vars
:
ANALYTICS_EXPERIMENTS_LOG_LEVEL
:
"
{{
ax_log_level
}}"
AS_DB_ANALYTICS_PASSWORD
:
'
'
AS_DB_ANALYTICS_USER
:
'
'
AS_DB_ANALYTICS_HOST
:
'
'
DATABASES
:
default
:
&databases_default
ENGINE
:
'
django.db.backends.mysql'
NAME
:
'
wwc'
USER
:
'
edxapp001'
PASSWORD
:
'
CHANGEME'
HOST
:
'
CHANGEME'
PORT
:
3306
analytics_auth_config
:
DATABASES
:
analytics
:
<<
:
*databases_default
USER
:
$AS_DB_ANALYTICS_USER
PASSWORD
:
$AS_DB_ANALYTICS_PASSWORD
HOST
:
$AS_DB_ANALYTICS_HOST
ANALYTICS_API_KEY
:
$AS_API_KEY
ANALYTICS_RESULTS_DB
:
MONGO_URI
:
$AS_DB_RESULTS_URL
MONGO_DB
:
$AS_DB_RESULTS_DB
MONGO_STORED_QUERIES_COLLECTION
:
$AS_DB_RESULTS_COLLECTION
as_role_name
:
"
analytics-server"
as_user
:
"
analytics-server"
as_home
:
"
/opt/wwc/analytics-server"
as_venv_dir
:
"
{{
as_home
}}/virtualenvs/analytics-server"
as_source_repo
:
"
git@github.com:edx/analytics-server.git"
as_code_dir
:
"
{{
as_home
}}/src"
as_version
:
"
master"
as_git_identity_path
:
"
{{
secure_dir
}}/files/git-identity"
as_requirements_file
:
"
{{
as_code_dir
}}/requirements.txt"
as_log_level
:
"
INFO"
as_rsyslog_enabled
:
"
yes"
as_web_user
:
"
www-data"
as_env
:
"
analytics-server_env"
as_service_variant
:
'
analytics'
as_workers
:
'
4'
as_server_port
:
'
9000'
as_env_lang
:
'
en_US.UTF-8'
as_django_settings
:
'
anserv.settings'
as_env_vars
:
ANALYTICS_SERVER_LOG_LEVEL
:
"
{{
as_log_level
}}"
as_automated_rbash_links
:
-
/usr/bin/sudo
-
/usr/bin/scp
#
# OS packages
#
a
x
_debian_pkgs
:
a
s
_debian_pkgs
:
-
mongodb-clients
-
zip
-
libmysqlclient-dev
a
x
_redhat_pkgs
:
[]
a
s
_redhat_pkgs
:
[]
a
x
_pip_pkgs
:
a
s
_pip_pkgs
:
-
git+https://github.com/s3tools/s3cmd.git#egg=s3cmd
\ No newline at end of file
playbooks/roles/analytics-server/files/etc/sudoers.d/99-automator-analytics-server
0 → 100644
View file @
a4840464
automator ALL=(www-data) NOPASSWD:SETENV:/opt/edx/bin/django-admin.py help *
automator ALL=(www-data) NOPASSWD:SETENV:/opt/edx/bin/django-admin.py get_grades *
automator ALL=(www-data) NOPASSWD:SETENV:/opt/edx/bin/django-admin.py run_all_queries *
playbooks/roles/analytics-server/handlers/main.yml
View file @
a4840464
...
...
@@ -9,14 +9,14 @@
#
#
#
# Handlers for role analytics-
experiments
# Handlers for role analytics-
server
#
# Overview:
#
#
-
name
:
analytics-
experiments
| stop the analytics service
-
name
:
analytics-
server
| stop the analytics service
service
:
name=analytics state=stopped
-
name
:
analytics-
experiments
| restart the analytics service
-
name
:
analytics-
server
| restart the analytics service
service
:
name=analytics state=started
playbooks/roles/analytics-server/meta/main.yml
0 → 100644
View file @
a4840464
---
dependencies
:
-
{
role
:
automated
,
automated_rbash_links
:
$as_automated_rbash_links
,
automated_sudoers_file
:
'
roles/analytics-server/files/etc/sudoers.d/99-automator-analytics-server'
}
\ No newline at end of file
playbooks/roles/analytics-server/tasks/deploy.yml
View file @
a4840464
#
# TODO: Needed while this repo is private
#
-
name
:
analytics-
experiments
| upload ssh script
-
name
:
analytics-
server
| upload ssh script
copy
:
src=git_ssh.sh dest=/tmp/git_ssh.sh
force=yes owner=root group=adm mode=750
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
...
...
@@ -14,25 +14,25 @@
#
# TODO: Needed while this repo is private
#
-
name
:
analytics-
experiments
| install read-only ssh key required for checkout
-
name
:
analytics-
server
| install read-only ssh key required for checkout
copy
:
src={{ a
x
_git_identity_path }} dest=/etc/git-identity
src={{ a
s
_git_identity_path }} dest=/etc/git-identity
force=yes owner=ubuntu group=adm mode=60
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
-
name
:
analytics-
experiments
| checkout code
-
name
:
analytics-
server
| checkout code
git
:
dest={{ a
x_code_dir }} repo={{ ax
_source_repo }}
version={{ a
x_version }}
dest={{ a
s_code_dir }} repo={{ as
_source_repo }}
version={{ a
s_version }} force=true
environment
:
GIT_SSH
:
/tmp/git_ssh.sh
notify
:
analytics-
experiments
| restart the analytics service
notify
:
analytics-
server
| restart the analytics service
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
...
...
@@ -40,12 +40,12 @@
#
# TODO: Needed while this repo is private
#
-
name
:
analytics-
experiments
| update src permissions
-
name
:
analytics-
server
| update src permissions
file
:
path={{ a
x_code_dir }} state=directory owner={{ ax
_user }}
group={{ a
x
_web_user }} mode=2750 recurse=yes
path={{ a
s_code_dir }} state=directory owner={{ as
_user }}
group={{ a
s
_web_user }} mode=2750 recurse=yes
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
...
...
@@ -53,10 +53,10 @@
#
# TODO: Needed while this repo is private
#
-
name
:
analytics-
experiments
| remove read-only ssh key for the content repo
-
name
:
analytics-
server
| remove read-only ssh key for the content repo
file
:
path=/etc/git-identity state=absent
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
...
...
@@ -64,35 +64,35 @@
#
# TODO: Needed while this repo is private
#
-
name
:
analytics-
experiments
| remove ssh script
-
name
:
analytics-
server
| remove ssh script
file
:
path=/tmp/git_ssh.sh state=absent
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
-
name
:
analytics-
experiments
| install application requirements
-
name
:
analytics-
server
| install application requirements
pip
:
requirements={{ a
x
_requirements_file }}
virtualenv={{ a
x
_venv_dir }} state=present
requirements={{ a
s
_requirements_file }}
virtualenv={{ a
s
_venv_dir }} state=present
sudo
:
true
sudo_user
:
"
{{
a
x
_user
}}"
sudo_user
:
"
{{
a
s
_user
}}"
tags
:
-
analytics-
experiments
-
analytics-
server
-
deploy
-
install
-
update
#- name: analytics-
experiments
| syncdb
#- name: analytics-
server
| syncdb
# shell: >
# cd {{ a
x_code_dir }} && {{ ax
_venv_dir }}/bin/python manage.py syncdb
# cd {{ a
s_code_dir }} && {{ as
_venv_dir }}/bin/python manage.py syncdb
# sudo: true
# sudo_user: "{{ a
x
_user }}"
# sudo_user: "{{ a
s
_user }}"
# notify:
# - analytics-
experiments | restart analytics-experiments
# - analytics-
server | restart analytics-server
# tags:
# - analytics-
experiments
# - analytics-
server
# - deploy
# - install
# - update
playbooks/roles/analytics-server/tasks/main.yml
View file @
a4840464
...
...
@@ -10,7 +10,7 @@
#
#
#
# Tasks for role analytics-
experiments
# Tasks for role analytics-
server
#
# Overview:
#
...
...
@@ -22,88 +22,88 @@
#
#
-
name
:
analytics-
experiments
| install system packages
apt
:
pkg={{','.join(a
x
_debian_pkgs)}} state=present
-
name
:
analytics-
server
| install system packages
apt
:
pkg={{','.join(a
s
_debian_pkgs)}} state=present
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments | create analytics-experiments user {{ ax
_user }}
-
name
:
analytics-
server | create analytics-server user {{ as
_user }}
user
:
name={{ a
x
_user }} state=present shell=/bin/bash
home={{ a
x
_home }} createhome=yes
name={{ a
s
_user }} state=present shell=/bin/bash
home={{ a
s
_home }} createhome=yes
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments | setup the analytics-experiments
env
-
name
:
analytics-
server | setup the analytics-server
env
template
:
src=opt/wwc/analytics-
experiments/{{ ax
_env }}.j2
dest={{ a
x_home }}/{{ ax
_env }}
owner="{{ a
x_user }}" group="{{ ax
_user }}"
src=opt/wwc/analytics-
server/{{ as
_env }}.j2
dest={{ a
s_home }}/{{ as
_env }}
owner="{{ a
s_user }}" group="{{ as
_user }}"
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments
| drop a bash_profile
-
name
:
analytics-
server
| drop a bash_profile
copy
:
>
src=../../common/files/bash_profile
dest={{ a
x
_home }}/.bash_profile
owner={{ a
x
_user }}
group={{ a
x
_user }}
dest={{ a
s
_home }}/.bash_profile
owner={{ a
s
_user }}
group={{ a
s
_user }}
-
name
:
analytics-
experiments
| ensure .bashrc exists
shell
:
touch {{ a
x
_home }}/.bashrc
-
name
:
analytics-
server
| ensure .bashrc exists
shell
:
touch {{ a
s
_home }}/.bashrc
sudo
:
true
sudo_user
:
"
{{
a
x
_user
}}"
sudo_user
:
"
{{
a
s
_user
}}"
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments | add source of analytics-experiments
_env to .bashrc
-
name
:
analytics-
server | add source of analytics-server
_env to .bashrc
lineinfile
:
dest={{ a
x
_home }}/.bashrc
regexp='. {{ a
x_home }}/analytics-experiments
_env'
line='. {{ a
x_home }}/analytics_experiments
_env'
dest={{ a
s
_home }}/.bashrc
regexp='. {{ a
s_home }}/analytics-server
_env'
line='. {{ a
s_home }}/analytics_server
_env'
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments
| add source venv to .bashrc
-
name
:
analytics-
server
| add source venv to .bashrc
lineinfile
:
dest={{ a
x
_home }}/.bashrc
regexp='. {{ a
x
_venv_dir }}/bin/activate'
line='. {{ a
x
_venv_dir }}/bin/activate'
dest={{ a
s
_home }}/.bashrc
regexp='. {{ a
s
_venv_dir }}/bin/activate'
line='. {{ a
s
_venv_dir }}/bin/activate'
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments
| install global python requirements
-
name
:
analytics-
server
| install global python requirements
pip
:
name={{ item }}
with_items
:
a
x
_pip_pkgs
with_items
:
a
s
_pip_pkgs
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
analytics-
experiments
| create config
-
name
:
analytics-
server
| create config
template
:
src=opt/wwc/analytics.auth.json.j2
dest=/opt/wwc/analytics.auth.json
owner="{{ a
x_web_user }}" group="{{ ax
_web_user }}"
owner="{{ a
s_web_user }}" group="{{ as
_web_user }}"
tags
:
-
analytics-
experiments
-
analytics-
server
-
install
-
update
-
name
:
anal
tyics-experiments
| install service
-
name
:
anal
ytics-server
| install service
template
:
src=etc/init/analytics.conf.j2 dest=/etc/init/analytics.conf
owner=root group=root
...
...
playbooks/roles/analytics-server/templates/etc/init/analytics.conf
deleted
100644 → 0
View file @
b2dbe243
# gunicorn
description
"Analytics server under gunicorn"
start
on
runlevel
[
2345
]
stop
on
runlevel
[!
2345
]
respawn
respawn
limit
3
30
env
SERVICE_VARIANT
={{
ax_service_variant
}}
env
PID
=/
var
/
tmp
/
analytics
.
pid
env
WORKERS
={{
ax_workers
}}
env
PORT
={{
ax_server_port
}}
env
LANG
={{
ax_env_lang
}}
env
DJANGO_SETTINGS_MODULE
={{
ax_django_settings
}}
chdir
{{
ax_code_dir
}}
setuid
{{
ax_web_user
}}
exec
{{
ax_venv_dir
}}/
bin
/
gunicorn
-
b
0
.
0
.
0
.
0
:$
PORT
-
w
$
WORKERS
--
pythonpath
={{
ax_code_dir
}}/
anserv
anserv
.
wsgi
playbooks/roles/analytics-server/templates/etc/init/analytics.conf.j2
View file @
a4840464
#
gunicorn
#
{{ ansible_managed }}
description "Analytics server under gunicorn"
...
...
@@ -8,14 +8,14 @@ stop on runlevel [!2345]
respawn
respawn limit 3 30
env SERVICE_VARIANT={{ a
x
_service_variant }}
env SERVICE_VARIANT={{ a
s
_service_variant }}
env PID=/var/tmp/analytics.pid
env WORKERS={{ a
x
_workers }}
env PORT={{ a
x
_server_port }}
env LANG={{ a
x
_env_lang }}
env DJANGO_SETTINGS_MODULE={{ a
x
_django_settings }}
env WORKERS={{ a
s
_workers }}
env PORT={{ a
s
_server_port }}
env LANG={{ a
s
_env_lang }}
env DJANGO_SETTINGS_MODULE={{ a
s
_django_settings }}
chdir {{ a
x
_code_dir }}
setuid {{ a
x
_web_user }}
chdir {{ a
s
_code_dir }}
setuid {{ a
s
_web_user }}
exec {{ a
x_venv_dir }}/bin/gunicorn -b 0.0.0.0:$PORT -w $WORKERS --pythonpath={{ ax
_code_dir }}/anserv anserv.wsgi
exec {{ a
s_venv_dir }}/bin/gunicorn -b 0.0.0.0:$PORT -w $WORKERS --pythonpath={{ as
_code_dir }}/anserv anserv.wsgi
playbooks/roles/analytics-server/templates/opt/wwc/analytics-server/analytics-server_env.j2
View file @
a4840464
# {{ ansible_managed }}
{% for name,value in a
x
_env_vars.items() %}
{% for name,value in a
s
_env_vars.items() %}
{% if value %}
export {{ name }}="{{ value }}"
{% endif %}
...
...
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