Moodle ist eine kostenlose Open-Source-Software für E-Learning. Sie wurde entwickelt, um skalierbar zu sein, und mit Hilfe von Kemp 360 Central, Kemp LoadMaster und Ansible ist es jetzt einfacher denn je, Moodle zu konfigurieren und zu skalieren. Seit der Veröffentlichung von Kemp 360 Central 2.4 unterstützen wir nun die Konfiguration von zentral verwalteten LoadMaster's mit Ansible. Es ist nun möglich, mehrere LoadMaster, Virtual Services und Real Servers in einem einzigen Ansible-Playbook zu konfigurieren, ohne auf die LoadMaster-Benutzeroberfläche zugreifen zu müssen.
Folgen Sie der Installationsanleitung unter:https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
Das Kemp-Modul finden Sie hier: https://kemptechnologies.com/kemp360/ansible-module/. Nach dem Extrahieren haben Sie Zugriff auf Kemps Bibliotheksmodule, Dienstprogrammmodule und Beispiel-Playbooks, einschließlich des Moodle-Playbooks.
Um Playbooks, die mit den Ansible-Modulen von Kemp erstellt wurden, erfolgreich auszuführen, müssen wir Ansible zunächst mitteilen, wo sich die Module von Kemp befinden. Der einfachste Weg, dies zu erreichen, besteht darin, eine Ansible-Konfigurationsdatei im Verzeichnis / ansiblepoc-master/ zu erstellen. Erstellen Sie eine Datei mit dem Namen:
ansible.cfg
Und fügen Sie die folgenden Zeilen hinzu:
[default] library = /home/path/to/kemp_ansible/library/ module_utils = /home/path/to/kemp_ansible/module_utils/
Um sicherzustellen, dass Ansible die bereitgestellte Konfigurationsdatei verwendet, müssen die Playbooks von Kemp innerhalb des Verzeichnisses /ansiblepoc-master/ und außerhalb des Verzeichnisses /examples/ ausgeführt werden.
Um das Moodle-Playbook von Kemp erfolgreich ausführen zu können, müssen wir einige Konfigurationswerte angeben. Das Playbook moodlePlaybook.yml befindet sich im Verzeichnis /examples/ . Die Einstellungen innerhalb des Playbooks basieren sowohl auf der Moodle-Vorlage von Kemp als auch auf dem Bereitstellungsleitfaden, der hier verfügbar ist: https://support.kemptechnologies.com/hc/en-us/articles/203123459-Moodle. Das Playbook wurde so konfiguriert, dass ein virtueller HTTPS-Dienst mit einer HTTP-Umleitung und zwei echten Servern erstellt wird. Es ist auch so konfiguriert, dass ein Zertifikat hochgeladen und dem virtuellen HTTPS-Dienst zugewiesen wird. Die Einstellungen, für die Werte erforderlich sind, werden im Folgenden beschrieben:
central_address | Die IP-Adresse des Kemp 360 Central, die Ihren Ihren LoadMaster verwaltet. |
central_api_key | Bitte beachten Sie Schritt 4 hier: https://kemptechnologies.com/blog/how-to-use-ansible-to-automate-the-configuration-and-deployment-of-load-balancers/ um den erforderlichen Kemp 360 Central API-Schlüssel zu erhalten. |
lm_address | Die IP-Adresse des LoadMasters, unter dem virtuelle Dienste und reale Server erstellt werden. |
vs_ip | Die Virtuelle IP-Adresse des Dienstes. |
ssl_cert_path | Der Pfad zu dem Ort, an dem sich das Zertifikat befindet. |
moodle_server_1 | Die IP-Adresse des realen Servers. |
moodle_server_1_port | Der Port des realen Servers. |
Das Moodle-Playbook kann leicht an Ihre Bedürfnisse angepasst werden, sei es, um weitere Virtual Services (VS), VS-Einstellungen oder Real Server hinzuzufügen. Die verfügbaren Einstellungen, die in unseren Ansible-Playbooks verwendet werden können, finden Sie unter dem unten angegebenen Link:
https://support.kemptechnologies.com/hc/en-us/articles/360035479011/
Sie können sich auch andere Beispiel-Playbooks im Verzeichnis /examples/ ansehen, um weitere Ideen zu erhalten.
Sobald wir dem Moodle-Playbook die erforderlichen Konfigurationswerte hinzugefügt haben, können wir dieses Playbook aus demselben Verzeichnis wie unsere Ansible-Konfigurationsdatei ausführen. Um das Playbook zu starten, führen wir den Befehl aus:
ansible-playbook -vvv examples/moodlePlaybook.yml
Wenn Sie -vvv hinzufügen, können Sie Informationen anzeigen, z. B. welche Einstellungen für jeden virtuellen Dienst oder Realserver geändert wurden, der im Playbook konfiguriert ist. Sobald das Playbook erfolgreich ausgeführt wurde, ist Ihr LoadMaster nun konfiguriert und kann von Moodle verwendet werden.
rs_enable: 'Y'name: Create a HTTPS service for Moodle
hosts: localhost
vars:
central_address: '' central_username: 'Admin' # only Admin can execute ansible playbooks on Central central_api_key: '' lm_address: '' lm_port: '443' vs_ip: '' ssl_cert_path: '' moodle_server_1: '' moodle_server_1_port: '' moodle_server_2: '' moodle_server_2_port: '' tasks: name: Upload Certificate cert_management: lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' central_address: '{{ central_address }}' central_username: '{{ central_username }}' cert_name: 'cert_test' cert_file: '{{ ssl_cert_path }}' replace: 0 intermediate: 0 central_api_key: '{{ central_api_key }}' name: Create Virtual Service Moodle_HTTPS on LM virtual_service: central_address: '{{ central_address }}' central_username: '{{ central_username }}' central_api_key: '{{ central_api_key }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' enable: 'Y' nickname: 'Moodle_HTTPS' vs_ip: '{{ vs_ip }}' vs_port: 443 vs_protocol: 'tcp' vs_type: 'http' transparent: 1 subnet_originating: 0 ssl_acceleration: 1 cert_name: 'testcert' persist: 'super' check_port: 389 tls_type: tls1.0 tls1.1 tls1.2 tls1.3 name: Create Virtual Service Moodle_HTTP on LM virtual_service: central_address: '{{ central_address }}' central_username: '{{ central_username }}' central_api_key: '{{ central_api_key }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' enable: 'Y' nickname: 'Moodle_HTTP' vs_ip: '{{ vs_ip }}' vs_port: 80 vs_protocol: 'tcp' vs_type: 'http' error_code: 302 error_url: 'https://%h%s' transparent: 0 subnet_originating: 0 name: Create Real Server 1 real_server: central_address: '{{ central_address }}' username: '{{ central_username }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' api_key: '{{ central_api_key }}' vs_ip: '{{ vs_ip }}' vs_port: 443 vs_prot: 'tcp' rs_ip: '{{ moodle_server_1 }}' rs_port: '{{ moodle_server_1_port }}' rs_enable: 'Y' name: Create Real Server 2 real_server: central_address: '{{ central_address }}' username: '{{ central_username }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' api_key: '{{ central_api_key }}' vs_ip: '{{ vs_ip }}' vs_port: 443 vs_prot: 'tcp' rs_ip: '{{ moodle_server_2 }}' rs_port: '{{ moodle_server_2_port }}' rs_enable: 'Y' check_port: 389 tls_type: tls1.0 tls1.1 tls1.2 tls1.3 name: Create Virtual Service Moodle_HTTP on LM virtual_service: central_address: '{{ central_address }}' central_username: '{{ central_username }}' central_api_key: '{{ central_api_key }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' enable: 'Y' nickname: 'Moodle_HTTP' vs_ip: '{{ vs_ip }}' vs_port: 80 vs_protocol: 'tcp' vs_type: 'http' error_code: 302 error_url: 'https://%h%s' transparent: 0 subnet_originating: 0 name: Create Real Server 1 real_server: central_address: '{{ central_address }}' username: '{{ central_username }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' api_key: '{{ central_api_key }}' vs_ip: '{{ vs_ip }}' vs_port: 443 vs_prot: 'tcp' rs_ip: '{{ moodle_server_1 }}' rs_port: '{{ moodle_server_1_port }}' rs_enable: 'Y' name: Create Real Server 2 real_server: central_address: '{{ central_address }}' username: '{{ central_username }}' lm_address: '{{ lm_address }}' lm_port: '{{ lm_port }}' api_key: '{{ central_api_key }}' vs_ip: '{{ vs_ip }}' vs_port: 443 vs_prot: 'tcp' rs_ip: '{{ moodle_server_2 }}' rs_port: '{{ moodle_server_2_port }}' rs_enable: 'Y'
Weitere Informationen finden Sie hier in unserem Blogpost Optimizing AX for Remote Education Through Load-Balancing.