Commit 6e56be87 by Clinton Blackburn

Add provisioning script

ECOM-6565
parent 3949de3e
.PHONY: clone devstack.reset devstack.start devstack.stop help requirements validate .PHONY: clone devstack.provision devstack.reset devstack.start devstack.stop help requirements validate
help: ## Display this help message help: ## Display this help message
@echo "Please use \`make <target>' where <target> is one of" @echo "Please use \`make <target>' where <target> is one of"
...@@ -12,6 +12,9 @@ clone: ## Clone service repos ...@@ -12,6 +12,9 @@ clone: ## Clone service repos
devstack.open.%: clone ## Open a shell into the specified service container devstack.open.%: clone ## Open a shell into the specified service container
docker exec -it edx.devstack.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open docker exec -it edx.devstack.$* env TERM=$(TERM) /edx/app/$*/devstack.sh open
devstack.provision: ## Provision all services
./provision.sh
devstack.reset: ## Remove all service containers devstack.reset: ## Remove all service containers
docker-compose down docker-compose down
......
# devstack # devstack
Get up and running quickly with edX services. Get up and running quickly with edX services.
## Getting Started
All of the services can be run by following the steps below.
1. Run the provision command, if you haven't already, to configure the various services with super-users (for
development without the auth service) and tenants (for multi-tenancy).
The username and password for the superusers are both "edx". You can access the services directly via Django admin
at the `/admin` path.
```
$ make devstack.provision
```
2. Start the services.
```
$ make devstack.start
```
After the services have started, if you need shell access to one of the services, run `make devstack.open.<service>`.
```
$ make devstack.open.discovery
```
#!/usr/bin/env bash
# Ensure the containers are started
docker-compose up -d
# Create superusers that can access the services without the need for single sign-on
# NOTE: If the users already exist, errors will be raised (in the Django shell), but execution of this provisioning
# script will continue.
services=('credentials' 'discovery' 'ecommerce' 'programs')
for service in "${services[@]}"
do
docker exec -t edx.devstack.${service} bash -c 'source /edx/app/$1/$1_env && echo "from django.contrib.auth import get_user_model; User = get_user_model(); User.objects.create_superuser(\"edx\", \"edx@example.com\", \"edx\")" | python /edx/app/$1/$1/manage.py shell' -- "$service"
done
# TODO Create ecommerce tenant (ECOM-6564)
# Use create_or_update_site (https://github.com/edx/ecommerce/blob/master/ecommerce/core/management/commands/create_or_update_site.py)
# TODO Create discovery tenant with correct credentials (ECOM-6565)
docker exec -t edx.devstack.discovery bash -c 'source /edx/app/discovery/discovery_env && python /edx/app/discovery/discovery/manage.py create_or_update_partner --code edx --name edX --courses-api-url "https://courses.edx.org/api/courses/v1/" --ecommerce-api-url "http://edx.devstack.ecommerce/api/v2/" --organizations-api-url "https://courses.edx.org/api/organizations/v0/" --programs-api-url "http://edx.devstack.programs/api/v1/" --marketing-site-url-root "http://edx.devstack.marketing-site/" --marketing-site-api-url "http://edx.devstack.marketing-site/api/catalog/v2/" --marketing-site-api-username coursediscoveryworker --marketing-site-api-password "edx" --oidc-url-root "https://courses.edx.org/oauth2" --oidc-key discovery-key --oidc-secret discovery-secret'
# TODO Create credentials tenant (ECOM-6566)
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