--- - name: Install Moodle required packages (OS's other than debunt) 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 # 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 conf 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 PostgresSQL 10.3+ e.g. on Ubuntu 18.04, 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 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 the config.php file 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 }}"