automation featured image

How to Automate Canvas LMS Installation with Ansible

Dans l'article How to install Canvas LMS on Ubuntu 22.04 J'ai fourni les étapes pour installer le système de gestion de l'apprentissage open source Canvas à partir du référentiel Github sur votre propre serveur. Mais qui veut taper manuellement toutes ces commandes dans le terminal ? Et qu’est-ce qui nous différencie des singes après tout ? Utiliser des outils d’automatisation, c’est possible !

Script below automates Canvas LMS deployment on Ubuntu 22.04 using Ansible configuration management tool.

Before you begin installation check out our Canvas LMS hosting service. You can start using the LMS right away without need to manage own servers.

How to use Ansible to Automate Canvas LMS installation

Préparez le serveur

Commencez par installer Ansible et Git sur votre serveur.

$ sudo apt install ansible git

Clone the repository with Canvas LMS installation script

Cloner installation de canevas ansible référentiel de Github.

$ git clone https://github.com/EugeneWHZ/canvaslms-ansible-installation.git 
$ cd canvaslms-ansible-installation

Créer un inventaire pour Ansible

Créez un fichier d'inventaire Ansible à partir du fichier « production.example » et remplacez web_server_ip, db_server_ip, redis_server_ip avec les adresses IP ou les noms d'hôtes de vos serveurs.

$ cp production.example production
$ vim production

Si vous effectuez l'installation sur le hôte local vous pouvez mettre quelque chose comme ceci dans le fichier d'inventaire :

[webservers]
localhost:22 ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[dbservers]
localhost:22 ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[redisservers]
localhost:22 ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

Modifier les variables

Copiez et modifiez ensuite le fichier de variables :

$ cp roles/common/vars/main.yml.example roles/common/vars/main.yml
$ vim roles/common/vars/main.yml

Le fichier de variables est explicite, mais voici un exemple au cas où vous auriez encore des doutes.

variables file for ansible playbook
Fichier de variables pour le playbook Ansible

Run Ansible playbook to install the open source Canvas LMS system

When you are done with inventory and variables you can finally run the playbook which does all the job installing Canvas LMS on your server. Some of the tasks in the playbook, such as pose de fil et toile compiler les actifs la tâche prend un temps décent, alors faites une pause de 10 à 15 minutes de l'ordinateur et laissez Ansible faire le travail.

$ ansible-playbook -i production master.yml

Si le playbook Ansible échoue à une étape, vous devez résoudre le problème et redémarrer le playbook à partir de la tâche ayant échoué en utilisant la variable d'exécution '–start-at-task="task name"'. Par exemple:

$ ansible-playbook -i production --start-at-task="install yarn" master.yml

Au lieu d'exécuter une installation complète, vous pouvez installer uniquement les composants du serveur Web, du serveur de base de données ou du serveur Redis individuellement en exécutant les playbooks webservers.yml, dbservers.yml ou redis.yml.

$ ansible-playbook -i production webservers.yml
$ ansible-playbook -i production dbservers.yml
$ ansible-playbook -i production redis.yml

Résumé : l’automatisation rend la vie plus facile !

Manual installation of the open source Canvas LMS system is time consuming and prone to errors. Utilize automation tools like bash scripts, Python and Ansible to free yourself from typing commands into terminal over and over!