From 6a445bd4d826e229b45aa5e738a583edca3aca58 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 4 May 2022 10:54:25 -0400 Subject: [PATCH 1/4] Try wget workaround (Ansible's get_url can be blocked by WordPress.org) --- roles/wordpress/tasks/install.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index f0af250be..521c133c5 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -39,10 +39,16 @@ # when: php_version is version('8.0', '<') - name: Download {{ wordpress_download_base_url }}/{{ wordpress_src }} to {{ downloads_dir }} - get_url: - url: "{{ wordpress_download_base_url }}/{{ wordpress_src }}" - dest: "{{ downloads_dir }}" - timeout: "{{ download_timeout }}" + command: wget {{ wordpress_download_base_url }}/{{ wordpress_src }} -P {{ downloads_dir }} + # 2022-05-04: Ansible approach below (get_url) fails with HTTP Error 429 + # (Too Many Requests) b/c Ansible's User-Agent string? Affecting 1 user in + # England and another user in Scotland, but not affecting many other + # countries/ISP's apparently? WordPress must have recently changed their + # hosting arrangements for https://wordpress.org/latest.tar.gz + # get_url: + # url: "{{ wordpress_download_base_url }}/{{ wordpress_src }}" + # dest: "{{ downloads_dir }}" + # timeout: "{{ download_timeout }}" register: wp_download_output - name: Symlink {{ downloads_dir }}/wordpress.tar.gz -> {{ wp_download_output.dest }} From 2499e28ac125c13328fc0c26cd6c60238e2b60e7 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 4 May 2022 11:11:06 -0400 Subject: [PATCH 2/4] 'wget -P' inadequate, so try: wget -O /opt/iiab/downloads/wordpress.tar.gz --- roles/wordpress/tasks/install.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index 521c133c5..a64758d63 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -38,8 +38,8 @@ # state: present # when: php_version is version('8.0', '<') -- name: Download {{ wordpress_download_base_url }}/{{ wordpress_src }} to {{ downloads_dir }} - command: wget {{ wordpress_download_base_url }}/{{ wordpress_src }} -P {{ downloads_dir }} +- name: Download {{ wordpress_download_base_url }}/{{ wordpress_src }} to {{ downloads_dir }}/wordpress.tar.gz + command: wget {{ wordpress_download_base_url }}/{{ wordpress_src }} -O {{ downloads_dir }}/wordpress.tar.gz # 2022-05-04: Ansible approach below (get_url) fails with HTTP Error 429 # (Too Many Requests) b/c Ansible's User-Agent string? Affecting 1 user in # England and another user in Scotland, but not affecting many other @@ -49,14 +49,14 @@ # url: "{{ wordpress_download_base_url }}/{{ wordpress_src }}" # dest: "{{ downloads_dir }}" # timeout: "{{ download_timeout }}" - register: wp_download_output +# register: wp_download_output -- name: Symlink {{ downloads_dir }}/wordpress.tar.gz -> {{ wp_download_output.dest }} - file: - src: "{{ wp_download_output.dest }}" - path: "{{ downloads_dir }}/wordpress.tar.gz" # /opt/iiab/downloads - state: link - when: wp_download_output.dest is defined +# - name: Symlink {{ downloads_dir }}/wordpress.tar.gz -> {{ wp_download_output.dest }} +# file: +# src: "{{ wp_download_output.dest }}" +# path: "{{ downloads_dir }}/wordpress.tar.gz" # /opt/iiab/downloads +# state: link +# when: wp_download_output.dest is defined - name: Does {{ downloads_dir }}/wordpress.tar.gz link exist? stat: From 87ef66bdee910272329a7080816ca6efc99f587c Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 4 May 2022 11:33:49 -0400 Subject: [PATCH 3/4] Generally safer to delete prior /opt/iiab/downloads/wordpress.tar.gz --- roles/wordpress/tasks/install.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index a64758d63..fb56f886b 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -38,6 +38,11 @@ # state: present # when: php_version is version('8.0', '<') +- name: Delete {{ downloads_dir }}/wordpress.tar.gz if it exists + file: + path: "{{ downloads_dir }}"/wordpress.tar.gz + state: absent + - name: Download {{ wordpress_download_base_url }}/{{ wordpress_src }} to {{ downloads_dir }}/wordpress.tar.gz command: wget {{ wordpress_download_base_url }}/{{ wordpress_src }} -O {{ downloads_dir }}/wordpress.tar.gz # 2022-05-04: Ansible approach below (get_url) fails with HTTP Error 429 @@ -58,15 +63,15 @@ # state: link # when: wp_download_output.dest is defined -- name: Does {{ downloads_dir }}/wordpress.tar.gz link exist? +- name: Does {{ downloads_dir }}/wordpress.tar.gz exist? stat: path: "{{ downloads_dir }}/wordpress.tar.gz" # /opt/iiab/downloads - register: wp_link + register: wp_tar_gz - name: FAIL (force Ansible to exit) IF {{ downloads_dir }}/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 + when: not wp_tar_gz.stat.exists - name: "Unpack {{ downloads_dir }}/wordpress.tar.gz to permanent location {{ wp_install_path }}/wordpress - owner: root, group: {{ apache_user }}, mode: '0664', keep_newer: yes" unarchive: From 79052db75b1e3bdad3085e4c6ad9d803593690d3 Mon Sep 17 00:00:00 2001 From: A Holt Date: Wed, 4 May 2022 11:39:51 -0400 Subject: [PATCH 4/4] wordpress/tasks/install.yml: "{{ downloads_dir }}/wordpress.tar.gz" --- roles/wordpress/tasks/install.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/wordpress/tasks/install.yml b/roles/wordpress/tasks/install.yml index fb56f886b..a22710438 100644 --- a/roles/wordpress/tasks/install.yml +++ b/roles/wordpress/tasks/install.yml @@ -40,7 +40,7 @@ - name: Delete {{ downloads_dir }}/wordpress.tar.gz if it exists file: - path: "{{ downloads_dir }}"/wordpress.tar.gz + path: "{{ downloads_dir }}/wordpress.tar.gz" state: absent - name: Download {{ wordpress_download_base_url }}/{{ wordpress_src }} to {{ downloads_dir }}/wordpress.tar.gz