moodle

Ansible роль moodle

Установите и настройте moodle на вашей системе.

GitHub Версия Проблемы Запросы на изменения Скачивания
github Версия Проблемы ЗапросыНаИзменения Ansible Role

Пример плейбука

Этот пример взят из molecule/default/converge.yml и тестируется при каждом пуше, запросе на изменение и релизе.

---
- name: converge
  hosts: all
  become: true
  gather_facts: true

  pre_tasks:
    - name: Обновить кэш apt.
      apt: update_cache=yes cache_valid_time=600
      when: ansible_os_family == 'Debian'
      changed_when: false

    - name: Проверить, существует ли файл EXTERNALLY-MANAGED для python3.11
      ansible.builtin.stat:
        path: /usr/lib/python3.11/EXTERNALLY-MANAGED
      register: externally_managed_file_py311

    - name: Переименовать файл EXTERNALLY-MANAGED для python3.11, если он существует
      ansible.builtin.command:
        cmd: mv /usr/lib/python3.11/EXTERNALLY-MANAGED /usr/lib/python3.11/EXTERNALLY-MANAGED.old
      when: externally_managed_file_py311.stat.exists
      args:
        creates: /usr/lib/python3.11/EXTERNALLY-MANAGED.old

    - name: Проверить, существует ли файл EXTERNALLY-MANAGED для python3.12
      ansible.builtin.stat:
        path: /usr/lib/python3.12/EXTERNALLY-MANAGED
      register: externally_managed_file_py312

    - name: Переименовать файл EXTERNALLY-MANAGED для python3.12, если он существует
      ansible.builtin.command:
        cmd: mv /usr/lib/python3.12/EXTERNALLY-MANAGED /usr/lib/python3.12/EXTERNALLY-MANAGED.old
      when: externally_managed_file_py312.stat.exists
      args:
        creates: /usr/lib/python3.12/EXTERNALLY-MANAGED.old

  roles:
    - role: buluma.moodle

Машину нужно подготовить. В CI это делается с помощью molecule/default/prepare.yml:

---
- name: prepare
  hosts: all
  become: true
  gather_facts: false

  roles:
    - role: buluma.bootstrap
    - role: buluma.buildtools
    - role: buluma.epel
    - role: buluma.mysql
      mysql_databases:
        - name: moodle
          encoding: utf8mb4
          collation: utf8mb4_unicode_ci
      mysql_users:
        - name: moodle
          password: moodle
          priv: "moodle.*:ALL"
    - role: buluma.python_pip
    - role: buluma.openssl
      openssl_items:
        - name: apache-httpd
          common_name: "{{ ansible_fqdn }}"
    - role: buluma.php
    - role: buluma.selinux
    - role: buluma.httpd
      httpd_vhosts:
        - name: moodle
          servername: moodle.example.com
    - role: buluma.cron
    - role: buluma.core_dependencies

Также смотрите полное объяснение и пример о том, как использовать эти роли.

Переменные роли

Значения по умолчанию для переменных заданы в defaults/main.yml:

---
# файл по умолчанию для moodle

# Версия moodle для установки.
moodle_version: 401

# Путь, где сохранять данные.
moodle_data_directory: /opt/moodledata

# Разрешения для созданных директорий.
moodle_directory_mode: "0750"

# Данные для подключения к базе данных.
moodle_database_type: mysqli
moodle_database_hostname: localhost
moodle_database_name: moodle
moodle_database_username: moodle
moodle_database_password: moodle
moodle_database_prefix: ""

# URL, по которому будет доступен контент.
moodle_wwwroot: "https://{{ ansible_default_ipv4.address }}/moodle"

Требования

Состояние используемых ролей

Следующие роли используются для подготовки системы. Вы можете подготовить свою систему другим способом.

Требование GitHub Версия
buluma.bootstrap Ansible Molecule Версия
buluma.buildtools Ansible Molecule Версия
buluma.cron Ansible Molecule Версия
buluma.core_dependencies Ansible Molecule Версия
buluma.epel Ansible Molecule Версия
buluma.httpd Ansible Molecule Версия
buluma.mysql Ansible Molecule Версия
buluma.openssl Ansible Molecule Версия
buluma.php Ansible Molecule Версия
buluma.python_pip Ansible Molecule Версия
buluma.selinux Ansible Molecule Версия

Контекст

Эта роль является частью многих совместимых ролей. Посмотрите документацию этих ролей для получения дополнительной информации.

Вот обзор связанных ролей:

dependencies

Совместимость

Эта роль была протестирована на этих образах контейнеров:

контейнер теги
EL 8
Debian все
Fedora 38, 39, 40
opensuse все
Ubuntu jammy, noble

Минимальная версия Ansible, необходимая для работы, - 2.12. Тесты проводились на:

  • Предыдущей версии.
  • Текущей версии.
  • Версии разработки.

Если вы обнаружите проблемы, пожалуйста, зарегистрируйте их на GitHub

История изменений

История роли

Лицензия

Apache-2.0

Информация об авторе

Shadow Walker

О проекте

Install and configure moodle on your system.

Установить
ansible-galaxy install buluma/ansible-role-moodle
Лицензия
apache-2.0
Загрузки
11458
Владелец
DevOps Engineer