Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/debug-playbook.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/debug-playbook.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/debug-playbook.yml	(revision 38572)
@@ -0,0 +1,59 @@
+---
+- hosts:      localhost
+  connection: local
+  become:     true
+  vars_files:
+    - vars/default-core.yml
+
+  tasks:
+    - name: Deriving 'gsdl3servlet_internal_domain_url'
+      set_fact: 
+        gsdl3servlet_internal_domain_url: "{{ gsdl3servlet_internal | gsdl3servlet_domain_url() }}"
+
+    - name: Adding 'gsdl3servlet_internal_domain_url' to 'gsdl3servlet_internal'
+      set_fact: 
+        gsdl3servlet_internal: "{{ gsdl3servlet_internal | combine ({'domain_url': gsdl3servlet_internal_domain_url}) }}"
+
+    - debug:
+        msg: "gsdl3servlet_internal = {{ gsdl3servlet_internal }}"	
+
+
+    - name: Deriving 'gsdl3servlet_external_domain_url'
+      set_fact: 
+        gsdl3servlet_external_domain_url: "{{ gsdl3servlet_external | gsdl3servlet_domain_url() }}"
+
+    - name: Adding 'gsdl3servlet_external_domain_url' to 'gsdl3servlet_external'
+      set_fact: 
+        gsdl3servlet_external: "{{ gsdl3servlet_external | combine ({'domain_url': gsdl3servlet_external_domain_url}) }}"
+
+    - debug:
+        msg: "gsdl3servlet_external = {{ gsdl3servlet_external }}"	
+
+
+    - debug:
+        msg: "apache2_revproxy_config = {{ apache2_revproxy_config }}"	
+
+
+#    - name: Adding derived values
+#      set_fact: 
+#        gsdl3servlet_internal: "{{ gsdl3servlet_internal | combine ({ item.key : item.value }) }}"
+#      with_items:
+##        - { 'key': 'explicit_port',
+##	    'value': "{{ gsdl3servlet_internal.optional_port | default(80,true) }}" }
+#        - { 'key': 'optional_colon_port',
+#
+#	    'value': "{{ (':'+gsdl3servlet_internal.optional_port) if 'optional_port' in gsdl3servlet_internal else '' }}" }
+# #       - { 'key': 'domain_and_optional_port',
+# #           'value': "{{ gsdl3servlet_internal.domain+gsdl3servlet_internal.optional_colon_port }}" }
+#
+##    - name: Deriving 'gsdl3servlet_internal_domain_url'
+##      set_fact:
+##        gsdl3servlet_internal_domain_url:
+##	  "{{ gsdl3servet_internal.
+#
+#      set_fact: 
+#        gsdl3servlet_internal: "{{ gsdl3servlet_internal | combine ({ item.key : item.value }) }}"
+#
+#
+#    - debug: msg="gsdl3servlet_internal = {{ gsdl3servlet_internal }}"
+
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/files/gs3-apache.conf.j2
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/files/gs3-apache.conf.j2	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/files/gs3-apache.conf.j2	(revision 38572)
@@ -0,0 +1,61 @@
+<VirtualHost *:{{ apache2_revproxy_config.http_port }}>
+
+        ServerName   {{ apache2_revproxy_config.webserver_name }}
+	ServerAdmin  {{ apache2_revproxy_config.serveradmin_email }}
+        
+	DocumentRoot {{ gsdl3srchome }}/web
+
+        <Directory {{ gsdl3srchome }}/web>
+            Require all granted
+        </Directory>
+	
+        #<Directory {{ gsdl3srchome }}/web>
+	#    Options +FollowSymLinks
+	#    # AllowOverride None
+        #</Directory>
+
+	
+        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
+        # error, crit, alert, emerg.
+        # It is also possible to configure the loglevel for particular
+        # modules, e.g.
+        #LogLevel info ssl:warn
+
+        ErrorLog  ${APACHE_LOG_DIR}/{{ apache2_revproxy_config.config_root_name }}-error.log
+        CustomLog ${APACHE_LOG_DIR}/{{ apache2_revproxy_config.config_root_name }}-access.log combined
+
+
+	# To run as a Reverse Proxy, ProxyRequests needs to be off
+       	# While this is the default for Apache2, let's be explicitly clear
+    	ProxyRequests Off
+
+    	# Needed so baseURL set correctly in LibraryMain.java
+    	ProxyPreserveHost On
+
+    	# The following is done to allow the proxied web server (localhost, Tomcat in our case)
+    	# to have this header information passed on to it
+	#
+    	RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
+    	#HTTPS# RequestHeader set X-Forwarded-SSL expr=%{HTTPS}
+
+        #
+        # Before working with web-sockets, the following config entries were sufficient
+	# to connect the apache2 server with the tomcat one running Greenstone3
+	#
+        # ProxyPass        /{{gsdl3servlet_external.context}} {{gsdl3servlet_internal.protocol}}://{{gsdl3servlet_internal.domain}}:{{gsdl3servlet_internal.port}}/{{gsdl3servlet_internal.context}}
+        # ProxyPassReverse /{{gsdl3servlet_external.context}} {{gsdl3servlet_internal.protocol}}://{{gsdl3servlet_internal.domain}}:{{gsdl3servlet_internal.port}}/{{gsdl3servlet_internal.context}}
+
+        # <Location /{{ gsdl3servlet_external.context }}>
+        #     ProxyPassReverseCookiePath /{{gsdl3servlet_internal.context}} /{{ gsdl3servlet_external.context }}
+        # </Location>
+
+RewriteEngine on
+        RewriteRule "^/$" "/greenstone3/library" [END,NE,R=permanent]
+
+#HTTPS#         RewriteCond %{HTTP:Upgrade} =websocket 
+#HTTPS#         RewriteRule /(.*) ws://localhost:8383/$1 [P,L]
+
+#HTTPS#         RewriteCond %{HTTP:Upgrade} !=websocket
+#HTTPS#         RewriteRule /(.*) http://localhost:8383/$1 [P,L]
+
+</VirtualHost>
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/greenstone3-svn-base-playbook.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/greenstone3-svn-base-playbook.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/greenstone3-svn-base-playbook.yml	(revision 38572)
@@ -0,0 +1,210 @@
+# Ansible playbook to install required Unix command-line packages, and
+# then configure, compile and install a base (basic) Greenstone3
+# system, running tomcat over http, and accessed directly,
+# e.g. http://localhost:8383/greenstone3/library
+
+
+# Playbook currently designed to be run on computer where the
+# Greenstone installation is to occur (i.e., localhost)
+
+# To run this playbook to svn checkout Greenstone3 and compile it up:
+#
+#     ansible-playbook -l localhost -u $USER ./greenstone3-svn-base-playbook.yml
+
+# Ideally have the playbook install and setup Greenstone3 for the user 'greenstone'
+
+---
+
+- name:       Installing required command-line tools
+  hosts:      localhost
+  connection: local
+
+  ####
+  # Review and edit as needed the variables in the following file
+  ####
+  vars_files:
+    - vars/default-core.yml
+    
+  tasks:
+    - name: Setting gsdl3srchome
+      set_fact: gsdl3srchome="{{ gsdl3srchome }}"
+    - debug: msg="gsdl3srchome = {{ hostvars['localhost']['gsdl3srchome'] }}"
+    
+#    - name: Setting gsdl3port
+#      set_fact: gsdl3port="{{ gsdl3port }}"
+#    - debug: msg="gsdl3port = {{ hostvars['localhost']['gsdl3port'] }}"
+
+#    - name: Setting gsdl3_buildproperties_ports
+#      set_fact: gsdl3_buildproperties_ports="{{ gsdl3_buildproperties_ports }}"
+#    - debug: msg="gsdl3_buildproperties_ports = {{ hostvars['localhost']['gsdl3_buildproperties_ports'] }}"
+
+    - name: Setting Greenstone3 username
+      set_fact: gsdl3_user="{{ ansible_user | default(ansible_env.USER,true) | default('greenstone',true) }}"
+    - debug: msg="gsdl3_user = {{ hostvars['localhost']['gsdl3_user'] }}"
+
+
+- name: Installing required command-line tools
+  hosts:      localhost
+  connection: local
+  become:     true
+
+  tasks:
+    - name: Changing Ansible to use 'aptitude' as package installation manager
+      apt: name=aptitude update_cache=yes state=latest force_apt_get=yes
+
+    - name: Ensure that existing packages are up-to-date (within last 30 mins)
+      apt: update_cache=yes state=latest force_apt_get=yes cache_valid_time=1800
+
+    - name: Install prerequisites
+      apt: name={{ item }} update_cache=yes state=latest
+      loop: [
+        'subversion', 'build-essential', 'wget',
+
+        # As well as using 'unzip', the greenstone3 compile sequence currently uses
+        # 'zip' in a handful of places, such as:
+        #     <gsdl3srchome>/gli/makejar.sh
+        'zip', 'unzip',
+
+        # Choosing to install the latest, rather than work with the one included
+        # as an Greenstone3 extension, as that latter is getting a bit old
+        'imagemagick',
+        
+        # The following needed for WebSwing on a headless server
+        'libxrender1', 'libxtst6', 'libxi6', 'xvfb',
+
+        # The following are nice to have in general
+        'plocate', 'emacs-nox' 
+      ]
+
+- name: Checking out Greenstone3 code from svn, configure and installing base system
+  hosts:      localhost
+  connection: local
+  become_user: "{{ gsdl3_user }}"
+  vars_files:
+    - vars/default-core.yml
+    
+  tasks:
+  - debug: msg="gsdl3_user = {{ gsdl3_user }}, USER={{ ansible_env.USER }}"
+  - name: Subversion checkout of Greenstone3
+    ansible.builtin.subversion:
+      repo: https://svn.greenstone.org/main/trunk/greenstone3
+      checkout: yes
+      update: no
+      dest: "{{ gsdl3srchome }}"
+
+  - name: Downloading and unpacking self-contained command-line tools for Greenstone3
+    ansible.builtin.shell:
+      chdir:     "{{ gsdl3srchome }}/ext-cli"
+      # cmd:       "./get-selfcontained-jdk.sh && ./get-selfcontained-ant.sh"
+      cmd:       "./get-selfcontained-{{ item }}.sh"
+    register:  result
+    changed_when:
+      - '"Untarred" in result.stdout'      
+    with_items:
+      - jdk
+      - ant
+
+  # The next two steps are equivalent to sourcing SETUP.bash
+  # For more details, see:
+  #   https://stackoverflow.com/questions/60209185/ansible-environment-variables-from-env-file
+  #
+  - name: Source Greenstone3's SETUP.bash
+    ansible.builtin.shell:
+      executable: /bin/bash
+      chdir:      "{{ gsdl3srchome }}"      
+      cmd:        . ./SETUP.bash 1>/dev/null 2>&1 && env
+    register:   env_file_result
+
+#  - name: Source Greenstone3's SETUP.bash  using newer ./SETUP-ENV.sh (Ultimately new appoach not needed)
+#    ansible.builtin.command: ./SETUP-ENV.sh
+#    args:
+#      chdir:      "{{ gsdl3srchome }}"      
+#    register:   env_file_result
+
+#  - name: Deprecated 'source' Greenstone3's SETUP.bash (command)
+#    ansible.builtin.command:
+#      # executable: /bin/bash
+#      chdir:      "{{ gsdl3srchome }}"      
+#      cmd:        ./SETUP-ENV.sh
+#    register:   env_file_result
+
+
+#    #- debug: var=env_file_result.stdout_lines
+
+  - name: Parse Greenstone3 environment variables
+    set_fact:
+      env_vars: "{{ ('{' + env_file_result.stdout_lines | map('regex_replace', '([^=]*)=(.*)', '\"\\1\": \"\\2\"') | join(',') + '}') | from_json }}"
+
+#  - name: Display environment variables
+#    command: env
+#    environment: "{{ env_vars }}"
+
+   #- debug: var=env_vars
+
+
+  - name: Generate build.properties for Greenstone3
+    ansible.builtin.command:
+      chdir: "{{ gsdl3srchome }}"
+      cmd:   ant
+    environment: "{{ env_vars }}"
+
+#  - name: Deprecated Setting localhost.port.http in build.properties (only changes 1 value)
+#    ansible.builtin.lineinfile:
+#      path: "{{ gsdl3srchome }}/build.properties"
+#      regexp: '^localhost.port.http='
+#      line: localhost.port.http={{ gsdl3_buildproperties_port }}
+
+  - name: Setting ports in build.properties
+    ansible.builtin.lineinfile:
+      path:   "{{ gsdl3srchome }}/build.properties"
+      regexp: '^{{ item }}='
+      #line:   "{{ item }}={{ hostvars['localhost']['gsdl3_buildproperties_ports'][item] }}"
+      line:   "{{ item }}={{ gsdl3_buildproperties_ports[item] }}"      
+    with_items:
+      - "localhost.port.http"
+      - "tomcat.shutdown.port"
+      - "tomcat.ajp.port"
+      - "derby.server.port"
+      - "tomcat.port.https"
+
+  - name: Prepare Greenstone3
+    ansible.builtin.command:
+      chdir:             "{{ gsdl3srchome }}"
+      stdin:             "y"
+      stdin_add_newline: true
+      cmd:               ant prepare
+    environment: "{{ env_vars }}"
+
+#  - name: Prepare Greenstone3 (A more complicated approach using 'expect')
+#    ansible.builtin.expect:
+#      chdir:       "{{ gsdl3srchome }}"
+#      command:     ant prepare
+#      timeout:     null
+#      responses:
+#        "\\[input\\]\\s+\\(y, n\\)": "y"
+#    environment: "{{ env_vars }}"
+
+#  - name: Prepare Greenstone3 II (untested, and even more complicated, requiring 'expect' to be installed)
+#    ansible.builtin.shell: |
+#      cd {{ gsdl3srchome }}
+#      . ./SETUP.bash
+#      spawn ant prepare
+#      expect "[input]      (y, n):"
+#      send "y\n"
+#
+#      exit 0
+#    args:
+#      executable: /usr/bin/expect
+
+
+  - name: Compile and Install Greenstone3 (command)
+    ansible.builtin.command:
+      chdir: "{{ gsdl3srchome }}"
+      cmd:   ant install
+    environment: "{{ env_vars }}"
+
+#  - name: Compile and Install Greenstone3 (shell)
+#    ansible.builtin.shell:
+#      chdir: "{{ gsdl3srchome }}"
+#      cmd:   . ./SETUP.bash && ant install
+    
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-http-tasks.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-http-tasks.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-http-tasks.yml	(revision 38572)
@@ -0,0 +1,29 @@
+---
+  - name: Set up Apache2 virtualhost
+    template:
+      src: "files/gs3-apache.conf.j2"
+      dest: "/etc/apache2/sites-available/{{ apache2_revproxy_config.config_root_name }}.conf"
+
+  - name: Adjusting Greenstone3 installations index.html to work in Apache2 DocumentRoot
+    ansible.builtin.replace:
+      path:   "{{ gsdl3srchome }}/web/index.html"
+      regexp:  'href="(?!http://|/)'
+      replace: 'href="/{{ gsdl3servlet_external.context }}/'
+
+  - name: Enable new site
+    shell: /usr/sbin/a2ensite {{ apache2_revproxy_config.config_root_name }}.conf
+    notify: Reload Apache
+
+#  - name: "UFW - Allow HTTP on port {{ gsdl3servlet_external.port | default('80',true) }}"
+#    ufw:
+#      rule: allow
+#      port: "{{ gsdl3servlet_external.port | default('80',true) }}"
+#      proto: tcp
+#      when gsdl3servlet_external.protocol == "http"
+
+#  - name: "UFW - Allow HTTP on port {{ gsdl3servlet_external.port | default('80',true) }}"
+#    ufw:
+#      rule: allow
+#      port: "{{ gsdl3servlet_external.port | default('80',true) }}"
+#      proto: tcp
+#      when gsdl3servlet_external.port == "http"
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-https-tasks.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-https-tasks.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-https-tasks.yml	(revision 38572)
@@ -0,0 +1,51 @@
+---
+  - name: Install prerequisites for operating Apache2 over https
+    apt: name={{ item }} update_cache=yes state=latest
+    loop: [ 'python3-certbot-apache' ]
+
+  - name: Using 'certbot' to generate PEM certificate and set Apache2 for operation over https
+    command: |
+      certbot --apache --non-interactive --keep-until-expiring  --renew-with-new-domains --agree-tos
+              --email {{ tech_support_info.email | quote }} --no-eff-email --domains "{{ gsdl3servlet_external.domain }}"
+
+  - name: Uncommenting #HTTPS# entries in https version of Apache2 config file
+    ansible.builtin.replace:
+      path:   "/etc/apache2/sites-enabled/{{ apache2_revproxy_config.config_root_name }}-le-ssl.conf"
+      regexp:  '^(\s*)#HTTPS# '
+      replace: '\1'
+
+  - name: Removing #HTTPS# entries from the http version of Apache2 config file
+    ansible.builtin.lineinfile:
+      path: "/etc/apache2/sites-enabled/{{ apache2_revproxy_config.config_root_name }}.conf"
+      state: absent
+      regexp: '^(\s*)#HTTPS#.*$'
+
+  - name: Reloading Apache2
+    ansible.builtin.meta: noop
+    notify: Reload Apache
+
+
+  #- name: Adjusting Greenstone3 installations index.html to work in Apache2 DocumentRoot
+  #  ansible.builtin.replace:
+  #    path:   "{{ gsdl3srchome }}/web/index.html"
+  #    regexp:  'href="(?!http://|/)'
+  #    replace: 'href="/{{ gsdl3servlet_external.context }}/'
+
+
+#    - name: "UFW - Allow HTTPS on port {{ gsdl3servlet_external.port | default('443',true) }}"
+#      ufw:
+#        rule: allow
+#        port: "{{ gsdl3servlet_external.port | default('443',true) }}"
+#        proto: tcp
+#      when gsdl3servlet_external.protocol == "https"
+
+##
+# ???? Open up Port 80, and assume there is a config rule for rewriting to HTTPS port ??
+##
+#    - name: "UFW - Allow HTTP on port 80"
+#      ufw:
+#        rule: allow
+#        port: 80
+#        proto: tcp
+#      when gsdl3servlet_external.protocol == "https"
+
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-playbook.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-playbook.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/reverse-proxy-playbook.yml	(revision 38572)
@@ -0,0 +1,91 @@
+---
+- hosts:      localhost
+  connection: local
+  become:     true
+  vars_files:
+    - vars/default-core.yml
+
+  tasks:
+    - name: Checking gsdl3servlet_external.protocol is set to 'https'
+      debug: var=gsdl3servlet_external.protocol
+      
+    - command: echo "gsdl3servlet_external.prototol = {{ gsdl3servlet_external.protocol }}"
+      failed_when: gsdl3servlet_external.protocol != "https"
+      
+    - name: Upgrading Ansible to use 'aptitute' as package installation manager
+      apt: name=aptitude update_cache=yes state=latest force_apt_get=yes
+
+    - name: Install Apache2
+      apt: name=apache2    update_cache=yes state=latest
+
+    - name: Enable Apache2 Modules  
+      shell: /usr/sbin/a2enmod rewrite headers proxy proxy_http proxy_wstunnel 
+
+    - name: Deriving 'gsdl3servlet_internal_domain_url'
+      set_fact:
+        gsdl3servlet_internal_domain_url: "{{ gsdl3servlet_internal | gsdl3servlet_domain_url() }}"
+
+    - name: Adding 'gsdl3servlet_internal_domain_url' to 'gsdl3servlet_internal'
+      set_fact: 
+        gsdl3servlet_internal: "{{ gsdl3servlet_internal | combine ({'domain_url': gsdl3servlet_internal_domain_url}) }}"
+
+    - name: Deriving 'gsdl3servlet_external_domain_url'
+      set_fact:
+        gsdl3servlet_external_domain_url: "{{ gsdl3servlet_external | gsdl3servlet_domain_url() }}"
+
+    - name: Adding 'gsdl3servlet_external_domain_url' to 'gsdl3servlet_external'
+      set_fact: 
+        gsdl3servlet_external: "{{ gsdl3servlet_external | combine ({'domain_url': gsdl3servlet_external_domain_url}) }}"
+
+    # Apache2
+    - include_tasks: reverse-proxy-http-tasks.yml
+
+    - name: Activating revproxy properties in build.properties
+      set_fact:
+        build_properties_revproxy:
+          - "revproxy.protocol"
+          - "revproxy.domain"
+
+    - name: Appending reproxy.opt_port
+      set_fact:
+        build_properties_revproxy: "{{ build_properties_revproxy + [ 'revproxy.opt_port' ] }}"
+      when: gsdl3servlet_external.port is defined
+
+    - name: Appending reproxy.context
+      set_fact:
+        build_properties_revproxy: "{{ build_properties_revproxy + [ 'revproxy.context' ] }}"
+      when: gsdl3servlet_external.context is defined
+
+    - debug:
+        var: build_properties_revproxy
+
+    - name: Setting revproxy property values in build.properties if apache2_as_revproxy is True
+      ansible.builtin.lineinfile:
+        path:   "{{ gsdl3srchome }}/build.properties"
+        regexp: '^#*{{ item }}='
+        line:   "{{ item }}={{ gsdl3_buildproperties_revproxy[item] }}"
+      with_items: "{{ build_properties_revproxy }}"
+      when: apache2_as_revproxy == true
+
+    - name: Commenting out revproxy property values in build.properties if apache2_as_revproxy is False
+      ansible.builtin.lineinfile:
+        path:   "{{ gsdl3srchome }}/build.properties"
+        regexp: '^#*{{ item }}='
+        line:   "#{{ item }}={{ gsdl3_buildproperties_revproxy[item] }}"
+      with_items: "{{ gsdl3_buildproperties_revproxy.keys() | list }}"
+      when: apache2_as_revproxy != true
+
+
+    - include_tasks: reverse-proxy-https-tasks.yml
+      when: apache2_revproxy_config.https_port is defined
+
+  handlers:
+    - name: Reload Apache
+      service:
+        name: apache2
+        state: reloaded
+
+    - name: Restart Apache
+      service:
+        name: apache2
+        state: restarted
Index: main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/vars/default-core.yml
===================================================================
--- main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/vars/default-core.yml	(revision 38572)
+++ main/trunk/greenstone3/src/ansible-playbooks/experimental-playbooks/v1/vars/default-core.yml	(revision 38572)
@@ -0,0 +1,110 @@
+---
+# gsdl3srchome: /home/{{ ansible_user }}/greenstone3-svn
+# gsdl3srchome: /mnt/<mydisk>/greenstone3-svn
+#gsdl3srchome: /mnt/intermuse/greenstone3-ansible-svn
+gsdl3srchome: /mnt/intermuse/greenstone3-ansible3-svn
+
+digital_librarian_info: {
+  fullname: "Sam Someone",
+  email:    "sam.someone@mydomain.org"
+}
+
+# To allow tech-support to be someone different ...
+tech_support_info: {
+  fullname: "Terry Tother",
+  email:     "terry.tother@mydomain.org"
+}
+
+gsdl3servlet_internal: {
+  protocol:      "http",
+  domain:        "localhost",
+
+  # For testing purposes, work with a '63' range
+  #port:  "8383",
+  port: "6363",
+  
+  context:  "greenstone3",
+  servlet:  "library"
+}
+
+
+gsdl3_buildproperties_ports: {
+  "localhost.port.http":  "{{ gsdl3servlet_internal.port }}",
+
+  #"tomcat.shutdown.port": 8305,
+  #"tomcat.ajp.port":      8309,
+  #"derby.server.port":    8327,
+  #"tomcat.port.https":    8443
+  
+  # For testing purposes, work with a '63' range and 64 for https
+  "tomcat.shutdown.port": 6305,
+  "tomcat.ajp.port":      6309,
+  "derby.server.port":    6327,
+  "tomcat.port.https":    6443
+}
+
+gsdl3servlet_external: {
+  #protocol: "http",
+  protocol: "https",
+  #domain:   "<mygreenstone-dl>.<mydomain.org>",
+  domain:   "ansible-test.sowemustthink.space",
+  ##port:     "80",  # only need to set this if using 'http'  and *not* using '80'
+  #port:     "443", # only need to set this if using 'https' and *not* using '443'
+
+  #
+  # The following two entries are typically kept the same as their gsdl3servlet_internal counterparts
+  # This is done automatically in the following line using default()
+  #
+  # If you want to set this to a different value, then edit '' to include the desired value
+  #
+  context:  "{{ '' | default(gsdl3servlet_internal.context,true) }}", 
+  servlet:  "{{ '' | default(gsdl3servlet_internal.servlet,true) }}", 
+}
+
+####
+# Using Apache2 as a reverse-proxy server?
+####
+apache2_as_revproxy: true
+
+apache2_revproxy_config: {
+  #
+  # The following is typically kept the same as the subdomain part of gsdl3servlet_external.domain
+  # This is done automatically in the following line using default()
+  #
+  # If you want to set this to a different value, then edit '' to include the desired value
+  #
+  config_root_name: "{{ '' | default(gsdl3servlet_external['domain'].split('.') | first(),true) }}",
+
+  serveradmin_email: "{{ tech_support_info.email }}",
+  webserver_name:    "{{ gsdl3servlet_external.domain }}",
+  http_port:         "80",
+  https_port:        "443"
+}
+
+#----
+
+gsdl3_buildproperties_revproxy: {
+  "revproxy.protocol": "{{ gsdl3servlet_external.protocol }}",
+  "revproxy.domain":   "{{ gsdl3servlet_external.domain }}",
+  "revproxy.opt_port": "{{ gsdl3servlet_external.port | default('') }}",
+  "revproxy.context":  "{{ '/'+gsdl3servlet_external.context | default('') }}"
+}
+
+
+#apache2_serveradmin_email: tech_support_info.email
+#apache2_webserver_name:    gsdl3servlet_external.domain
+#
+##apache2_servername:        "mygreenstone-dl"
+##apache2_servername_fqdn:   "{{ apache2_servername }}.mydomain.org"
+#
+#apache2_serveradmin_email: "davidb@waikato.ac.nz"
+#apache2_servername:        "ansible-test"
+#apache2_servername_fqdn:   "{{ apache2_servername }}.sowemustthink.space"
+
+#apache2_http_port: "80"
+#apache2_http_conf: "{{ apache2_servername }}.conf"
+
+
+
+
+#disable_default: false
