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
8f03d861
Commit
8f03d861
authored
9 years ago
by
Tim Krones
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2753 from open-craft/tim/fix-analyticstack
Fix analyticstack
parents
136e3a36
c89ae427
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
105 additions
and
108 deletions
+105
-108
playbooks/vagrant-analytics.yml
+4
-1
vagrant/base/analyticstack/Vagrantfile
+24
-59
vagrant/release/analyticstack/Vagrantfile
+77
-48
No files found.
playbooks/vagrant-analytics.yml
View file @
8f03d861
...
...
@@ -16,6 +16,7 @@
EDXAPP_LMS_BASE_SCHEME
:
http
roles
:
-
common
-
vhost
-
edx_ansible
-
mysql
-
edxlocal
...
...
@@ -24,8 +25,10 @@
-
oraclejdk
-
elasticsearch
-
forum
-
{
role
:
'
rabbitmq'
,
rabbitmq_ip
:
'
127.0.0.1'
}
-
local_dev
-
demo
-
analytics_api
-
analytics_pipeline
-
insights
-
local_dev
-
oauth_client_setup
This diff is collapsed.
Click to expand it.
vagrant/base/analyticstack/Vagrantfile
View file @
8f03d861
Vagrant
.
require_version
">= 1.
5.3
"
Vagrant
.
require_version
">= 1.
6.5
"
unless
Vagrant
.
has_plugin?
(
"vagrant-vbguest"
)
raise
"Please install the vagrant-vbguest plugin by running `vagrant plugin install vagrant-vbguest`"
end
...
...
@@ -8,20 +8,9 @@ VAGRANTFILE_API_VERSION = "2"
MEMORY
=
4096
CPU_COUNT
=
2
edx_platform_mount_dir
=
"edx-platform"
themes_mount_dir
=
"themes"
forum_mount_dir
=
"cs_comments_service"
insights_mount_dir
=
"insights"
analytics_api_mount_dir
=
"analytics_api"
if
ENV
[
'VAGRANT_MOUNT_BASE'
]
edx_platform_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
edx_platform_mount_dir
themes_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
themes_mount_dir
forum_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
forum_mount_dir
insights_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
insights_mount_dir
analytics_api_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
analytics_api_mount_dir
vm_guest_ip
=
"192.168.33.10"
if
ENV
[
"VAGRANT_GUEST_IP"
]
vm_guest_ip
=
ENV
[
"VAGRANT_GUEST_IP"
]
end
Vagrant
.
configure
(
VAGRANTFILE_API_VERSION
)
do
|
config
|
...
...
@@ -30,57 +19,32 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config
.
vm
.
box
=
"precise64"
config
.
vm
.
box_url
=
"http://files.vagrantup.com/precise64.box"
config
.
vm
.
network
:private_network
,
ip:
"192.168.33.10"
config
.
vm
.
network
:forwarded_port
,
guest:
8000
,
host:
8000
# LMS
config
.
vm
.
network
:forwarded_port
,
guest:
8001
,
host:
8001
# Studio
config
.
vm
.
network
:forwarded_port
,
guest:
8003
,
host:
8003
# LMS for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8031
,
host:
8031
# Studio for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8120
,
host:
8120
# edX Notes Service
config
.
vm
.
network
:forwarded_port
,
guest:
8765
,
host:
8765
config
.
vm
.
network
:forwarded_port
,
guest:
9200
,
host:
9200
config
.
vm
.
network
:forwarded_port
,
guest:
18080
,
host:
18080
config
.
vm
.
network
:forwarded_port
,
guest:
8100
,
host:
8100
# Analytics Data API
config
.
vm
.
network
:forwarded_port
,
guest:
8110
,
host:
8110
# Insights
config
.
vm
.
network
:forwarded_port
,
guest:
50070
,
host:
50070
# HDFS Admin UI
config
.
vm
.
network
:forwarded_port
,
guest:
8088
,
host:
8088
# Hadoop Resource Manager
config
.
ssh
.
insert_key
=
true
config
.
vm
.
network
:private_network
,
ip:
vm_guest_ip
# If you want to run the box but don't need network ports, set VAGRANT_NO_PORTS=1.
# This is useful if you want to run more than one box at once.
if
not
ENV
[
'VAGRANT_NO_PORTS'
]
config
.
vm
.
network
:forwarded_port
,
guest:
8000
,
host:
8000
# LMS
config
.
vm
.
network
:forwarded_port
,
guest:
8001
,
host:
8001
# Studio
config
.
vm
.
network
:forwarded_port
,
guest:
8003
,
host:
8003
# LMS for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8031
,
host:
8031
# Studio for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8120
,
host:
8120
# edX Notes Service
config
.
vm
.
network
:forwarded_port
,
guest:
8765
,
host:
8765
config
.
vm
.
network
:forwarded_port
,
guest:
9200
,
host:
9200
config
.
vm
.
network
:forwarded_port
,
guest:
18080
,
host:
18080
config
.
vm
.
network
:forwarded_port
,
guest:
8100
,
host:
8100
# Analytics Data API
config
.
vm
.
network
:forwarded_port
,
guest:
8110
,
host:
8110
# Insights
config
.
vm
.
network
:forwarded_port
,
guest:
50070
,
host:
50070
# HDFS Admin UI
config
.
vm
.
network
:forwarded_port
,
guest:
8088
,
host:
8088
# Hadoop Resource Manager
end
config
.
vm
.
synced_folder
"."
,
"/vagrant"
,
disabled:
true
config
.
ssh
.
insert_key
=
true
# Enable X11 forwarding so we can interact with GUI applications
if
ENV
[
'VAGRANT_X11'
]
config
.
ssh
.
forward_x11
=
true
end
if
ENV
[
'VAGRANT_USE_VBOXFS'
]
==
'true'
config
.
vm
.
synced_folder
"
#{
edx_platform_mount_dir
}
"
,
"/edx/app/edxapp/edx-platform"
,
create:
true
,
owner:
"edxapp"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
themes_mount_dir
}
"
,
"/edx/app/edxapp/themes"
,
create:
true
,
owner:
"edxapp"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
forum_mount_dir
}
"
,
"/edx/app/forum/cs_comments_service"
,
create:
true
,
owner:
"forum"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
insights_mount_dir
}
"
,
"/edx/app/insights/edx_analytics_dashboard"
,
create:
true
,
owner:
"insights"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
analytics_api_mount_dir
}
"
,
"/edx/app/analytics_api/analytics_api"
,
create:
true
,
owner:
"analytics_api"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
insights_mount_dir
}
"
,
"/edx/app/insights/edx_analytics_dashboard"
,
create:
true
,
owner:
"insights"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
analytics_api_mount_dir
}
"
,
"/edx/app/analytics_api/analytics_api"
,
create:
true
,
owner:
"analytics_api"
,
group:
"www-data"
else
config
.
vm
.
synced_folder
"
#{
edx_platform_mount_dir
}
"
,
"/edx/app/edxapp/edx-platform"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
themes_mount_dir
}
"
,
"/edx/app/edxapp/themes"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
forum_mount_dir
}
"
,
"/edx/app/forum/cs_comments_service"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
insights_mount_dir
}
"
,
"/edx/app/insights/edx_analytics_dashboard"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
analytics_api_mount_dir
}
"
,
"/edx/app/analytics_api/analytics_api"
,
create:
true
,
nfs:
true
end
config
.
vm
.
provider
:virtualbox
do
|
vb
|
vb
.
customize
[
"modifyvm"
,
:id
,
"--memory"
,
MEMORY
.
to_s
]
vb
.
customize
[
"modifyvm"
,
:id
,
"--cpus"
,
CPU_COUNT
.
to_s
]
...
...
@@ -107,6 +71,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
if
ENV
[
'OPENEDX_RELEASE'
]
ansible
.
extra_vars
=
{
edx_platform_version:
ENV
[
'OPENEDX_RELEASE'
],
configuration_version:
ENV
[
'OPENEDX_RELEASE'
],
certs_version:
ENV
[
'OPENEDX_RELEASE'
],
forum_version:
ENV
[
'OPENEDX_RELEASE'
],
xqueue_version:
ENV
[
'OPENEDX_RELEASE'
],
...
...
This diff is collapsed.
Click to expand it.
vagrant/release/analyticstack/Vagrantfile
View file @
8f03d861
Vagrant
.
require_version
">= 1.
5.3
"
Vagrant
.
require_version
">= 1.
6.5
"
unless
Vagrant
.
has_plugin?
(
"vagrant-vbguest"
)
raise
"Please install the vagrant-vbguest plugin by running `vagrant plugin install vagrant-vbguest`"
end
...
...
@@ -13,46 +13,89 @@ if [ ! -d /edx/app/edx_ansible ]; then
echo "Error: Base box is missing provisioning scripts." 1>&2
exit 1
fi
OPENEDX_RELEASE=$1
export PYTHONUNBUFFERED=1
source /edx/app/edx_ansible/venvs/edx_ansible/bin/activate
cd /edx/app/edx_ansible/edx_ansible/playbooks
ansible-playbook -i localhost, -c local vagrant-analytics.yml -e configuration_version=master
# Did we specify an openedx release?
if [ -n "$OPENEDX_RELEASE" ]; then
EXTRA_VARS="-e edx_platform_version=$OPENEDX_RELEASE \
-e certs_version=$OPENEDX_RELEASE \
-e forum_version=$OPENEDX_RELEASE \
-e xqueue_version=$OPENEDX_RELEASE \
"
CONFIG_VER=$OPENEDX_RELEASE
# Need to ensure that the configuration repo is updated
# The vagrant-analyticstack.yml playbook will also do this, but only
# after loading the playbooks into memory. If these are out of date,
# this can cause problems (e.g. looking for templates that no longer exist).
/edx/bin/update configuration $CONFIG_VER
else
CONFIG_VER="master"
fi
SCRIPT
ansible-playbook -i localhost, -c local run_role.yml -e role=edx_ansible -e configuration_version=$CONFIG_VER $EXTRA_VARS
ansible-playbook -i localhost, -c local vagrant-analytics.yml -e configuration_version=$CONFIG_VER $EXTRA_VARS -e ELASTICSEARCH_CLUSTER_MEMBERS=[]
edx_platform_mount_dir
=
"edx-platform"
themes_mount_dir
=
"themes"
forum_mount_dir
=
"cs_comments_service"
insights_mount_dir
=
"insights"
analytics_api_mount_dir
=
"analytics_api"
SCRIPT
MOUNT_DIRS
=
{
:edx_platform
=>
{
:repo
=>
"edx-platform"
,
:local
=>
"/edx/app/edxapp/edx-platform"
,
:owner
=>
"edxapp"
},
:themes
=>
{
:repo
=>
"themes"
,
:local
=>
"/edx/app/edxapp/themes"
,
:owner
=>
"edxapp"
},
:forum
=>
{
:repo
=>
"cs_comments_service"
,
:local
=>
"/edx/app/forum/cs_comments_service"
,
:owner
=>
"forum"
},
:insights
=>
{
:repo
=>
"insights"
,
:local
=>
"/edx/app/insights/edx_analytics_dashboard"
,
:owner
=>
"insights"
},
:analytics_api
=>
{
:repo
=>
"analytics_api"
,
:local
=>
"/edx/app/analytics_api/analytics_api"
,
:owner
=>
"analytics_api"
},
# This src directory won't have useful permissions. You can set them from the
# vagrant user in the guest OS. "sudo chmod 0777 /edx/src" is useful.
:src
=>
{
:repo
=>
"src"
,
:local
=>
"/edx/src"
,
:owner
=>
"root"
},
}
if
ENV
[
'VAGRANT_MOUNT_BASE'
]
edx_platform_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
edx_platform_mount_dir
themes_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
themes_mount_dir
forum_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
forum_mount_dir
insights_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
insights_mount_dir
analytics_api_mount_dir
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
analytics_api_mount_dir
MOUNT_DIRS
.
each
{
|
k
,
v
|
MOUNT_DIRS
[
k
][
:repo
]
=
ENV
[
'VAGRANT_MOUNT_BASE'
]
+
"/"
+
MOUNT_DIRS
[
k
][
:repo
]
}
end
# map the name of the git branch that we use for a release
# to a name and a file path, which are used for retrieving
# a Vagrant box from the internet.
openedx_releases
=
{
"named-release/dogwood.rc"
=>
{
:name
=>
"analyticstack"
,
:file
=>
"analyticstack.box"
,
},
"named-release/dogwood"
=>
{
:name
=>
"analyticstack"
,
:file
=>
"analyticstack.box"
,
},
}
openedx_releases
.
default
=
{
:name
=>
"analyticstack"
,
:file
=>
"analyticstack.box"
,
}
rel
=
ENV
[
'OPENEDX_RELEASE'
]
Vagrant
.
configure
(
VAGRANTFILE_API_VERSION
)
do
|
config
|
# Creates an edX
dev
stack VM from an official release
config
.
vm
.
box
=
"analyticstack"
config
.
vm
.
box_url
=
"http://files.edx.org/vagrant-images/
analyticstack.box
"
# Creates an edX
analytic
stack VM from an official release
config
.
vm
.
box
=
openedx_releases
[
rel
][
:name
]
config
.
vm
.
box_url
=
"http://files.edx.org/vagrant-images/
#{
openedx_releases
[
rel
][
:file
]
}
"
config
.
vm
.
network
:private_network
,
ip:
"192.168.33.10"
config
.
vm
.
network
:forwarded_port
,
guest:
8000
,
host:
8000
config
.
vm
.
network
:forwarded_port
,
guest:
8001
,
host:
8001
config
.
vm
.
network
:forwarded_port
,
guest:
18080
,
host:
18080
config
.
vm
.
network
:forwarded_port
,
guest:
8765
,
host:
8765
config
.
vm
.
network
:forwarded_port
,
guest:
9200
,
host:
9200
config
.
vm
.
network
:forwarded_port
,
guest:
8100
,
host:
8100
# Analytics Data API
config
.
vm
.
network
:forwarded_port
,
guest:
8110
,
host:
8110
# Insights
config
.
vm
.
network
:forwarded_port
,
guest:
50070
,
host:
50070
# HDFS Admin UI
config
.
vm
.
network
:forwarded_port
,
guest:
8088
,
host:
8088
# Hadoop Resource Manager
# If you want to run the box but don't need network ports, set VAGRANT_NO_PORTS=1.
# This is useful if you want to run more than one box at once.
if
not
ENV
[
'VAGRANT_NO_PORTS'
]
config
.
vm
.
network
:forwarded_port
,
guest:
8000
,
host:
8000
# LMS
config
.
vm
.
network
:forwarded_port
,
guest:
8001
,
host:
8001
# Studio
config
.
vm
.
network
:forwarded_port
,
guest:
8003
,
host:
8003
# LMS for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8031
,
host:
8031
# Studio for Bok Choy
config
.
vm
.
network
:forwarded_port
,
guest:
8120
,
host:
8120
# edX Notes Service
config
.
vm
.
network
:forwarded_port
,
guest:
8765
,
host:
8765
config
.
vm
.
network
:forwarded_port
,
guest:
9200
,
host:
9200
# Elasticsearch
config
.
vm
.
network
:forwarded_port
,
guest:
18080
,
host:
18080
# Forums
config
.
vm
.
network
:forwarded_port
,
guest:
8100
,
host:
8100
# Analytics Data API
config
.
vm
.
network
:forwarded_port
,
guest:
8110
,
host:
8110
# Insights
config
.
vm
.
network
:forwarded_port
,
guest:
9876
,
host:
9876
# ORA2 Karma tests
config
.
vm
.
network
:forwarded_port
,
guest:
50070
,
host:
50070
# HDFS Admin UI
config
.
vm
.
network
:forwarded_port
,
guest:
8088
,
host:
8088
# Hadoop Resource Manager
end
config
.
ssh
.
insert_key
=
true
config
.
vm
.
synced_folder
"."
,
"/vagrant"
,
disabled:
true
...
...
@@ -63,27 +106,13 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
end
if
ENV
[
'VAGRANT_USE_VBOXFS'
]
==
'true'
config
.
vm
.
synced_folder
"
#{
edx_platform_mount_dir
}
"
,
"/edx/app/edxapp/edx-platform"
,
create:
true
,
owner:
"edxapp"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
themes_mount_dir
}
"
,
"/edx/app/edxapp/themes"
,
create:
true
,
owner:
"edxapp"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
forum_mount_dir
}
"
,
"/edx/app/forum/cs_comments_service"
,
create:
true
,
owner:
"forum"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
insights_mount_dir
}
"
,
"/edx/app/insights/edx_analytics_dashboard"
,
create:
true
,
owner:
"insights"
,
group:
"www-data"
config
.
vm
.
synced_folder
"
#{
analytics_api_mount_dir
}
"
,
"/edx/app/analytics_api/analytics_api"
,
create:
true
,
owner:
"analytics_api"
,
group:
"www-data"
MOUNT_DIRS
.
each
{
|
k
,
v
|
config
.
vm
.
synced_folder
v
[
:repo
],
v
[
:local
],
create:
true
,
owner:
v
[
:owner
],
group:
"www-data"
}
else
config
.
vm
.
synced_folder
"
#{
edx_platform_mount_dir
}
"
,
"/edx/app/edxapp/edx-platform"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
themes_mount_dir
}
"
,
"/edx/app/edxapp/themes"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
forum_mount_dir
}
"
,
"/edx/app/forum/cs_comments_service"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
insights_mount_dir
}
"
,
"/edx/app/insights/edx_analytics_dashboard"
,
create:
true
,
nfs:
true
config
.
vm
.
synced_folder
"
#{
analytics_api_mount_dir
}
"
,
"/edx/app/analytics_api/analytics_api"
,
create:
true
,
nfs:
true
MOUNT_DIRS
.
each
{
|
k
,
v
|
config
.
vm
.
synced_folder
v
[
:repo
],
v
[
:local
],
create:
true
,
nfs:
true
}
end
config
.
vm
.
provider
:virtualbox
do
|
vb
|
...
...
@@ -101,5 +130,5 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Assume that the base box has the edx_ansible role installed
# We can then tell the Vagrant instance to update itself.
config
.
vm
.
provision
"shell"
,
inline:
$script
config
.
vm
.
provision
"shell"
,
inline:
$script
,
args:
rel
end
This diff is collapsed.
Click to expand it.
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