1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 19:52:06 +00:00
iiab/roles/moodle/tasks/main.yml
2018-07-17 15:07:28 -04:00

172 lines
4.4 KiB
YAML

- name: Install Moodle required packages (OS's other than debuntu)
package:
name: "{{ item }}"
state: present
with_items:
- python-psycopg2
- php-pgsql
when: not is_debuntu
- name: Install Moodle required packages (debuntu)
package:
name: "{{ item }}"
state: present
with_items:
- python-psycopg2
- php{{ php_version }}-pgsql
- php{{ php_version }}-curl
#- php{{ php_version }}-zip
- php{{ php_version }}-gd
#- php{{ php_version }}-mbstring
# mbstring is now included in php-cli
- php{{ php_version }}-cli
when: is_debuntu
- name: php-zip name (debian-9 or ubuntu)
package:
name: "php{{ php_version }}-zip"
when: is_debian_9 or is_ubuntu
- name: php-zip name for (debian-8)
package:
name: php-pclzip
when: is_debian_8
- name: Determine if Moodle is already downloaded
stat:
path: "{{ moodle_base }}/config-dist.php"
register: moodle
- name: Download the latest Moodle repo
git:
repo: "{{ moodle_repo_url }}"
dest: "{{ moodle_base }}"
depth: 1
force: yes
version: "MOODLE_{{ moodle_version }}_STABLE"
#version: master # TEMPORARY DURING MAY 2018 TESTING, installed 3.5beta+ = https://download.moodle.org/releases/development/
#ignore_errors: yes
when: internet_available and moodle.stat.exists is defined and not moodle.stat.exists
- name: Prepare the downloaded directory so Apache can install config file
file:
path: "{{ moodle_base }}"
owner: "{{ apache_user }}"
recurse: yes
state: directory
- name: Give Apache permission to write Moodle data directory
file:
path: "{{ content_base }}/dbdata/moodle"
owner: "{{ apache_user }}"
mode: 0755
state: directory
- name: Create a Moodle data dir with Apache permission to write
file:
path: "{{ moodle_data }}"
owner: "{{ apache_user }}"
group: "{{ apache_user }}"
mode: 0770
state: directory
- name: Remove stock Moodle config file
file:
path: "/etc/{{ apache_config_dir }}/moodle.conf"
state: absent
- name: Put Moodle config file in place
template:
src: 022-moodle.j2
dest: "/etc/{{ apache_config_dir }}/022-moodle.conf"
owner: root
group: root
mode: 0644
when: moodle_enabled
- name: Enable Moodle (debuntu)
file:
src: /etc/apache2/sites-available/022-moodle.conf
dest: /etc/apache2/sites-enabled/022-moodle.conf
state: link
when: moodle_enabled and is_debuntu
- name: Disable Moodle (debuntu)
file:
path: /etc/apache2/sites-enabled/022-moodle.conf
state: absent
when: not moodle_enabled and is_debuntu
- name: Start postgresql-iiab
service:
name: postgresql-iiab
state: restarted
- name: Create db user
postgresql_user:
name: Admin
password: changeme
encrypted: yes # Required by PostgreSQL 10+ e.g. Ubuntu 18.04's PostgreSQL 10.3+, see https://github.com/iiab/iiab/issues/759
role_attr_flags: NOSUPERUSER,NOCREATEROLE,NOCREATEDB
state: present
become: yes
become_user: postgres
- name: Create database
postgresql_db:
name: "{{ moodle_database_name }}"
encoding: utf8
owner: Admin
template: template1
state: present
become: yes
become_user: postgres
- name: Put a startup install script in place
template:
dest: "{{ moodle_base }}"
src: moodle_installer
mode: 0755
- name: Restart postgresql-iiab
service:
name: postgresql-iiab
state: restarted
enabled: yes
when: moodle_enabled
- name: Restart Apache
service:
name: "{{ apache_service }}"
state: restarted
- name: See if config.php exists
stat:
path: "{{ moodle_base }}/config.php"
register: config
- name: Execute Moodle startup script
shell: '{{ moodle_base }}/moodle_installer'
when: config.stat.exists is defined and not config.stat.exists
- name: Give Apache permission to read config file
#command: chown -R {{ apache_user }} {{ moodle_base }}
file:
path: "{{ moodle_base }}/config.php"
mode: 0644
- name: Add 'moodle' to list of services at /etc/iiab/iiab.ini
ini_file:
dest: "{{ service_filelist }}"
section: moodle
option: "{{ item.option }}"
value: "{{ item.value }}"
with_items:
- option: name
value: Moodle
- option: description
value: '"Access the Moodle learning management system."'
- option: "moodle_base"
value: "{{ moodle_base }}"
- option: moodle_enabled
value: "{{ moodle_enabled }}"