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
edx
configuration
Commits
8f03d861
Commit
8f03d861
authored
Feb 25, 2016
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
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'
],
...
...
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
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