# IF YOU NEED TO REINSTALL FROM /opt/iiab/downloads/wordpress.tar.gz # TO /library/wordpress DURING YOUR NEXT RUN OF "./runtags wordpress" OR # "./iiab-install" THEN YOU FIRST NEED TO: # # - "mv /library/wordpress /library/wordpress.old" (MUST) # - back up then drop the database (RECOMMENDED) # # REASON: "keep_newer: yes" below tries to preserves WordPress's self-upgrades # & security enhancements within /library/wordpress, that can occur without # warning when WordPress is online, since WordPress ~4.8 especially. # # Such "emergency" reinstalls from /opt/iiab/downloads/wordpress.tar.gz to # /library/wordpress should also work offline. - name: Download the latest WordPress software get_url: url: "{{ wordpress_download_base_url }}/{{ wordpress_src }}" dest: "{{ downloads_dir }}" # force: yes # backup: yes register: wp_download_output when: internet_available - name: Create link /opt/iiab/downloads/wordpress.tar.gz pointing to {{ wp_download_output.dest }} file: src: "{{ wp_download_output.dest }}" dest: "{{ downloads_dir }}/wordpress.tar.gz" state: link when: wp_download_output.dest is defined - name: Check if /opt/iiab/downloads/wordpress.tar.gz link exists stat: path: "{{ downloads_dir }}/wordpress.tar.gz" register: wp_link - name: FAIL (force Ansible to exit) IF /opt/iiab/downloads/wordpress.tar.gz doesn't exist fail: msg: "{{ downloads_dir }}/wordpress.tar.gz is REQUIRED in order to install WordPress." when: not wp_link.stat.exists - name: "Unpack /opt/iiab/downloads/wordpress.tar.gz to permanent location /library/wordpress - owner: root, group: {{ apache_user }}, mode: 0664" unarchive: src: "{{ downloads_dir }}/wordpress.tar.gz" dest: "{{ wp_install_path }}" owner: root group: "{{ apache_user }}" mode: 0664 keep_newer: yes # - name: Rename /library/wordpress* to /library/wordpress # shell: if [ ! -d {{ wp_abs_path }} ]; then mv {{ wp_abs_path }}* {{ wp_abs_path }}; fi #- name: Make Apache owner and group, 1st pass permissions set to 0664 # file: path={{ wp_abs_path }} # recurse=yes # owner=root # group={{ apache_user }} # mode=0664 # state=directory - name: Make directories 775 so Apache can traverse and write (these files remain 0664) command: "/usr/bin/find {{ wp_abs_path }} -type d -exec chmod 775 {} +" - name: Copy wp salt values copy: src=wp-keys.php.BAK dest={{ wp_abs_path }}/wp-keys.php.BAK owner=root group={{ apache_user }} mode=0640 # Fetch random salts for WordPress config into wp-keys.php file by generating script and running - name: Create wp salt script template: src=get-iiab-wp-salts.j2 dest=/tmp/get-iiab-wp-salts owner=root group=root mode=0700 - name: Run wp salt script to create /library/wordpress/wp-keys.php command: /tmp/get-iiab-wp-salts - name: Cleanup - remove wp salt script file: path=/tmp/get-iiab-wp-salts state=absent - name: MySQL database needs to be running if we are trying to create a new db service: state=started name='{{ mysql_service }}' - name: Create MySQL wordpress database mysql_db: name={{ wp_db_name }} state=present - name: Create MySQL wordpress database user mysql_user: name={{ wp_db_user }} password={{ wp_db_user_password }} priv={{ wp_db_name }}.*:ALL,GRANT state=present - name: Copy WordPress config file template: src=wp-config.php.j2 dest={{ wp_abs_path }}/wp-config.php owner=root group={{ apache_user }} mode=0660 - name: Copy WordPress httpd conf file template: src=wordpress.conf.j2 dest=/etc/{{ apache_config_dir }}/wordpress.conf - name: Enable httpd conf file if we are disabled (debuntu) file: path=/etc/apache2/sites-enabled/wordpress.conf src=/etc/apache2/sites-available/wordpress.conf state=link when: wordpress_enabled and is_debuntu - name: Remove httpd conf file if we are disabled (OS's other than debuntu) file: path=/etc/apache2/sites-enabled/wordpress.conf state=absent when: not wordpress_enabled and is_debuntu - name: Restart Apache, so it picks up the new aliases service: name={{ apache_service }} state=restarted - name: Add 'wordpress' to service list ini_file: dest='{{ service_filelist }}' section=wordpress option='{{ item.option }}' value='{{ item.value }}' with_items: - option: name value: wordpress - option: description value: '"WordPress is a blog and web site management application."' - option: wordpress_src value: "{{ wordpress_src }}" - option: wp_abs_path value: "{{ wp_abs_path }}" - option: wp_db_name value: "{{ wp_db_name }}" - option: wp_db_user value: "{{ wp_db_user }}" - option: wp_url value: "{{ wp_url }}" - option: wp_full_url value: "{{ wp_full_url }}" - option: wordpress_enabled value: "{{ wordpress_enabled }}"