From 924a8b91f08ec75733de1df257861d6376253646 Mon Sep 17 00:00:00 2001 From: fergusonna Date: Fri, 27 Jun 2025 16:24:51 -0400 Subject: [PATCH 1/2] Copy portal ui's robots.txt to httpd/htdocs root directory and make /robots.txt available through HAProxy --- .../roles/arkcase-portal-ui/tasks/main.yml | 16 +++++++++ .../provisioning/roles/haproxy/tasks/main.yml | 36 ++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml b/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml index 50d963f9..4772a369 100644 --- a/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml +++ b/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml @@ -45,3 +45,19 @@ src: "{{ root_folder }}/install/httpd/arkcase-portal{{ arkcase_portal_extension_formatted }}-ui{{ arkcase_portal_ui_version_formatted }}.zip" dest: "{{ root_folder }}/data/httpd/htdocs/{{ arkcase_portal_context }}/" when: arkcase_portal_zip is changed + +- name: see if arkcase portal UI robots.txt exists + become: yes + become_user: apache + stat: + path: "{{ root_folder }}/data/httpd/htdocs/{{ arkcase_portal_context }}" + register: arkcase_portal_robots_txt + +- name: copy robots.txt if it exists + become: yes + become_user: apache + copy: + remote_src: yes + src: "{{ root_folder }}/data/httpd/htdocs/{{ arkcase_portal_context }}/robots.txt" + dest: "{{ root_folder }}/data/httpd/htdocs/robots.txt" + when: arkcase_portal_robots_txt.stat.exists == true \ No newline at end of file diff --git a/vagrant/provisioning/roles/haproxy/tasks/main.yml b/vagrant/provisioning/roles/haproxy/tasks/main.yml index a7816240..d110b42b 100644 --- a/vagrant/provisioning/roles/haproxy/tasks/main.yml +++ b/vagrant/provisioning/roles/haproxy/tasks/main.yml @@ -378,7 +378,7 @@ ansible.builtin.lineinfile: backup: true path: "{{ path_haproxy_cfg }}" - insertafter: "acl acl_arkcase_portal path_beg /{{ arkcase_portal_context | default('portal') }}" + insertbefore: "acl acl_arkcase_portal path_beg /{{ arkcase_portal_context | default('portal') }}" line: " acl acl_sitemap path_beg /{{ arkcase_portal_context | default('portal') }}/sitemap" when: enable_sitemap_config | default(false) @@ -407,6 +407,40 @@ http-request set-path %[path,regsub(^/{{ arkcase_portal_context | default('portal') }}/,/sitemap/)] when: enable_sitemap_config | default(false) +### Portal Robots.txt proxy rules +- name: ArkCase Portal Robots.txt setup + become: true + ansible.builtin.lineinfile: + backup: true + path: "{{ path_haproxy_cfg }}" + insertafter: " acl acl_robots path_beg /robots.txt" + line: " acl acl_sitemap path_beg /{{ arkcase_portal_context | default('portal') }}/sitemap" + when: enable_sitemap_config | default(false) + +- name: Tell ArkCase Portal Robots.txt which backend to use + become: true + ansible.builtin.lineinfile: + backup: true + path: "{{ path_haproxy_cfg }}" + insertafter: "# backend uses" + line: " use_backend be_robots if acl_robots" + when: enable_sitemap_config | default(false) + +- name: ArkCase Portal Robots.txt context, if needed + become: true + ansible.builtin.blockinfile: + backup: true + marker: "# {mark} ANSIBLE MANAGED BLOCK ARKCASE PORTAL Robots.txt CONTEXT" + insertafter: "#backend servers" + path: "{{ path_haproxy_cfg }}" + block: | + backend be_robots + http-response add-header X-ARKCASE-PORTAL-Node %s + mode http + option tcp-check + server arkcase_portal0 {{ internal_host }}:488 check fall 3 rise 2 check ssl verify required ca-file {{ ssl_ca }} + when: enable_sitemap_config | default(false) + ### Showcase frontend - name: Showcase frontend part become: true From f50c189f84500a15edc7305d24667afbe4991a01 Mon Sep 17 00:00:00 2001 From: fergusonna Date: Mon, 30 Jun 2025 13:31:07 -0400 Subject: [PATCH 2/2] correct issues --- vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml | 2 +- vagrant/provisioning/roles/haproxy/tasks/main.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml b/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml index 4772a369..fcca1dc0 100644 --- a/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml +++ b/vagrant/provisioning/roles/arkcase-portal-ui/tasks/main.yml @@ -50,7 +50,7 @@ become: yes become_user: apache stat: - path: "{{ root_folder }}/data/httpd/htdocs/{{ arkcase_portal_context }}" + path: "{{ root_folder }}/data/httpd/htdocs/{{ arkcase_portal_context }}/robots.txt" register: arkcase_portal_robots_txt - name: copy robots.txt if it exists diff --git a/vagrant/provisioning/roles/haproxy/tasks/main.yml b/vagrant/provisioning/roles/haproxy/tasks/main.yml index d110b42b..3a5d249d 100644 --- a/vagrant/provisioning/roles/haproxy/tasks/main.yml +++ b/vagrant/provisioning/roles/haproxy/tasks/main.yml @@ -413,8 +413,8 @@ ansible.builtin.lineinfile: backup: true path: "{{ path_haproxy_cfg }}" - insertafter: " acl acl_robots path_beg /robots.txt" - line: " acl acl_sitemap path_beg /{{ arkcase_portal_context | default('portal') }}/sitemap" + insertbefore: " acl acl_sitemap path_beg /{{ arkcase_portal_context | default('portal') }}/sitemap" + line: " acl acl_robots path_beg /robots.txt" when: enable_sitemap_config | default(false) - name: Tell ArkCase Portal Robots.txt which backend to use