--- - name: Install moodle required packages package: name={{ item }} state=present with_items: - python-psycopg2 - php-pgsql when: not is_debuntu - name: Install moodle required packages 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 debian 8-9 changed name package: name=php{{ php_version }}-zip when: is_debian_9 or is_ubuntu - name: php-zip debian 8-9 changed name 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" # 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 file: path=/etc/apache2/sites-enabled/022-moodle.conf src=/etc/apache2/sites-available/022-moodle.conf state=link when: moodle_enabled and is_debuntu - name: Disable moodle 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 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 service list 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: 'directory path' value: '{{ moodle_base }}' - option: moodle_enabled value: "{{ moodle_enabled }}"