- name: Download {{ iiab_download_url }}/{{ phpmyadmin_name_zip }} to {{ downloads_dir }} get_url: url: "{{ iiab_download_url }}/{{ phpmyadmin_name_zip }}" dest: "{{ downloads_dir }}" timeout: "{{ download_timeout }}" when: internet_available | bool - name: Does {{ downloads_dir }}/{{ phpmyadmin_name_zip }} exist? # e.g. /opt/iiab/downloads/phpMyAdmin-4.8.3-all-languages.zip stat: path: "{{ downloads_dir }}/{{ phpmyadmin_name_zip }}" register: phpmyadmin_dl - name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/{{ phpmyadmin_name_zip }} doesn't exist fail: msg: "{{ downloads_dir }}/{{ phpmyadmin_name_zip }} is REQUIRED in order to install phpMyAdmin." when: not phpmyadmin_dl.stat.exists - name: Unzip to permanent location /opt/{{ phpmyadmin_name }}, owned by {{ apache_user }} unarchive: src: "{{ downloads_dir }}/{{ phpmyadmin_name_zip }}" dest: /opt owner: "{{ apache_user }}" - name: Symlink /opt/phpmyadmin -> {{ phpmyadmin_name }} file: src: "{{ phpmyadmin_name }}" path: /opt/phpmyadmin owner: "{{ apache_user }}" # Some Linux's ignore symlink owners? state: link - name: Install /opt/phpmyadmin/config.inc.php owned by {{ apache_user }}, from template template: src: config.inc.php dest: /opt/phpmyadmin/config.inc.php owner: "{{ apache_user }}" # Above 3 stanzas set link/tree/contents ownership to {{ apache_user }}:root # OOPS: CHOWN BELOW CHANGED LINK ALONE (TREE/CONTENTS REMAINED root:root) # - name: Change the owner of the PHP tree to Apache # shell: "chown -R {{ apache_user }} /opt/phpmyadmin" # #file: # # path: "/opt/{{ phpmyadmin_name_zip }}" # # owner: "{{ apache_user }}" # # recurse: yes # # state: directory - name: Install /etc/{{ apache_conf_dir }}/phpmyadmin.conf from template, if phpmyadmin_enabled template: src: phpmyadmin.j2 dest: "/etc/{{ apache_conf_dir }}/phpmyadmin.conf" when: apache_install | bool # RECORD phpMyAdmin AS INSTALLED - name: "Set 'phpmyadmin_installed: True'" set_fact: phpmyadmin_installed: True - name: "Add 'phpmyadmin_installed: True' to {{ iiab_state_file }}" lineinfile: path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml regexp: '^phpmyadmin_installed' line: 'phpmyadmin_installed: True' - name: Enable phpMyAdmin via Apache, if phpmyadmin_enabled command: a2ensite phpmyadmin.conf when: apache_install and phpmyadmin_enabled - name: Disable phpMyAdmin via Apache, if not phpmyadmin_enabled command: a2dissite phpmyadmin.conf when: apache_install and not phpmyadmin_enabled - name: Add 'phpmyadmin' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" section: phpmyadmin option: "{{ item.option }}" value: "{{ item.value | string }}" with_items: - option: name value: phpMyAdmin - option: description value: '"phpMyAdmin is an interface with a MySQL database written in PHP, and available to administer the database engine locally or across the network."' - option: path value: /opt/phpmyadmin - option: enabled value: "{{ phpmyadmin_enabled }}"