-
Notifications
You must be signed in to change notification settings - Fork 4
Workflow
Before jumping into Let's Start section, we strongly feel you understand the workflow this toolkit is implementing and how to work with that flow to gain the most out of it.
- You will start by creating a GCP project or making sure you have access to one.
- To create a GCP image please refer to Creating and Managing Projects document from Google.
- To grant access to a teammate using the the project, please follow those instructions from Google.
- After getting access to a GCP project, you'll need to install GCloud SDK. Follow those instructions for step-by-step documentation on how to do so.
- Then make sure to obtain a copy of a Service Account Email, and a Service Account Key on your local machine for the GCloud project you just joined or created. Here's how to Create and Manage Service Accounts from Google.
- Now, you can start cloning the repo and creating your own copy of the
.configs
file usingmake config.init
. - Make sure you override the following key variables in your newly created
.configs.<username>
file:-
SSH_KEY
: The path to your SSH key that has access to GCP and Github. Access to Github is only required if you're cloning a private repository or pushing to a protected project. -
PROJECT_ID
: The ID of the GCP project that is going to host your devstack. -
SERVICE_ACCOUNT_EMAIL
: This is the GCP project's service account email address. Usually, Google will give you this email during project creation or cab be granted to you by the project admin. -
SERVICE_KEY_PATH
: The path to the downloaded JSON file key of your GCP project.
-
- Sultan has playbooks that help you getting your remote machine ready.
- After deploying the machine, we automatically provision the devstack for you. This will be performed right after the deployment is successfully done.
- After provisioning the devstack, you can create an image of your instance to help you skip most of the previous steps in the future.
- To work on the devstack, you either obtain an IDE that helps you make a seamless SSH connections with your server like Visual Studio Code. Or you need to mount the remote workspace on your machine. Sultan will help you do so without worrying about the technicalities a lot.
- During the development, you can run any command against the remote machine or against the devstack using the Sultan's
make
targets. - After finishing, you can just stop the servers to reduce the running cost.
Picking up from where you left is super easy using this approach; changes will be reflected immediately on the machine, and your computer is going to remain clean if you communicated with your instance using Sultan's make
targets and didn't manually play with the infrastructure.
If you face a zlib problem on Mac machine installing gcloud, you just follow these instructions and you're good to go:
$ brew install zlib
$ brew reinstall python
$ brew reinstall python3
Sultan v1.1.0
An Open edX Remote Devstack Toolkit by Appsembler
Errors are possible all the time. If an error's fired while executing commands from this toolkit it is recommended to do a little bit more debugging. While this might be an issue with the tool, we just want you to make sure that have everything correct set up in place:
- Run make
config.debug
and check if all of your environment variables hold the correct values. - Toggle the verbosity settings (
VERBOSITY
, andSHELL_OUTPUT
) in your env file. Follow instructions in the comments above of them for more details. - Check our Wiki page for a detailed documentation on the configuration process.
If you couldn't identify the cause of the problem, please submit an issue on https://github.com/appsembler/sultan/issues.