Skip to content

fccn/nau_playbooks

Repository files navigation

Nau playbooks

This repository holds the specific playbooks required to manage the Open edX installation at NAU.

Clone the required repositories

This repository uses 2 different other repositories.

The configuration is the Open edX upstream that install the Open edX old way of deployment using Ansible.

The secure-nau-data repository is the private NAU repository where the keys and passwords are stored, on per environment.

Commands to clone the dependencies:

git clone -b nau/nutmeg.master https://github.com/fccn/configuration.git configuration
git clone -b master git@github.com:fccn/secure-nau-data.git nau-data
git clone -b master git@github.com:fccn/nau_playbooks.git nau_playbooks

Installing Old Python3.8

Because of the old version of Open edX that we use on NAU, we need to use the older Python 3.8 version. So to execute the deployment process on newer Debian based Operating System like Ubuntu, we need to add the additional deadsnakes Personal Package Archives (PPA) and install the older Python 3.8 version.

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8 python3.8-dev python3.8-venv python3.8-distutils

Installing Pip on Python3.8

To install the pip on the older Python version 3.8, run:

wget https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py

Installing OS packages

Some python pip dependencies or some ansible modules also require some operating system packages.

sudo apt install -y build-essential software-properties-common python3-software-properties curl git libxml2-dev libxslt1-dev libfreetype6-dev python3-pip python3-apt python3-dev tree libmysqlclient-dev libssl-dev libffi-dev python3-minimal

Initializing Python Virtual Environment and Install dependencies

python3.8 -m venv venv
source venv/bin/activate

pip install -r requirements.txt
ansible-galaxy install -p vendor/roles -r requirements.yml

Run an ansible playbook

To run an ansible playbook, like for example the deploy.yml playbook, use a similar command:

ansible-playbook -i nau-data/envs/development/hosts.ini deploy.yml --limit XPTO