buluma.moodle

Ansible角色 moodle

在您的系统上安装和配置Moodle。

GitHub 版本 问题 拉取请求 下载
github 版本 问题 拉取请求 Ansible角色

示例剧本

这个例子来自 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: 检查python3.11外部管理文件是否存在
      ansible.builtin.stat:
        path: /usr/lib/python3.11/EXTERNALLY-MANAGED
      register: externally_managed_file_py311

    - name: 如果存在,重命名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: 检查python3.12外部管理文件是否存在
      ansible.builtin.stat:
        path: /usr/lib/python3.12/EXTERNALLY-MANAGED
      register: externally_managed_file_py312

    - name: 如果存在,重命名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 版本

上下文

这个角色是许多兼容角色的一部分。有关更多信息,请查看 这些角色的文档

以下是相关角色的一览:

依赖关系

兼容性

该角色已在以下 容器镜像 上测试:

容器 标签
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.moodle
许可证
apache-2.0
下载
11.5k
拥有者
DevOps Engineer