# # This file was autogenerated by `yo living-atlas`. # # Please do not edit this file directly so you can rerun new versions of the # generator in the future including new functionalities and bugfixes. # See: https://github.com/living-atlases/generator-living-atlas#rerunning-the-generator # # Edit your local-extra.ini file instead that has precedence over this. # <%_ for (var [group, servers] of Object.entries(LA_groups_and_servers)) {_%> [<%= group %>] <%_ for(var i=0; i < servers.length; i++) { extravars = group === 'zookeeper'? ` zookeeper_myid=${parseInt(i)+1}`:''; extravars = group === 'solrcloud'? ` solr_host=${servers[i]}${extravars}`:extravars; extravars = group === 'events_elasticsearch'? ` elasticsearch_node_name=${servers[i]}${extravars}`:extravars; var isDockerSwarm = (group === 'zookeeper' || group === 'solrcloud') && Array.isArray(LA_groups_and_servers['docker_swarm']) && LA_groups_and_servers['docker_swarm'].includes(servers[i]); if (isDockerSwarm) { extravars = ''; } _%> <%= servers[i] + extravars %> <%_ } %> <%_ } _%> <%_ for (var [parent, childgroup] of Object.entries(LA_groups_children)) { _%> [<%= parent %>:children] <%_ for (var [child, servers] of Object.entries(childgroup)) { _%> <%= child %> <%_ } %> <%_ } _%> <%_ if(Array.isArray(LA_groups_and_servers['docker_swarm']) && LA_groups_and_servers['docker_swarm'].length > 0) { _%> [docker_swarm_managers] <%_ LA_groups_and_servers['docker_swarm'].forEach(function(server) { _%> <%= server %> <%_ }); _%> [docker_swarm_workers] <%_ LA_groups_and_servers['docker_swarm'].forEach(function(server) { _%> <%= server %> <%_ }); _%> <%_ } _%> <%_ for (var [parent, childgroup] of Object.entries(LA_groups_children)) { _%> <%_ for (var [child, servers] of Object.entries(childgroup)) { _%> [<%= child %>] <%_ for(var i=0; i < servers.length; i++) { _%> <%= servers[i] %> <%_ } %> <%_ } _%> <%_ } _%> <%_ if (LA_use_spatial) { _%> [geoserver] <%= LA_spatial_hostname %> [geonetwork] <%= LA_spatial_hostname %> [spatial-hub] <%= LA_spatial_hostname %> [spatial-service] <%= LA_spatial_hostname %> <%_ } _%> [all:vars] #### all:vars section (common variables for all playbooks/roles) orgNameLong = <%= LA_project_name %> orgNameShort = <%= LA_project_shortname %> ansible_user=<% if (typeof LA_variable_ansible_user != 'undefined') { %><%- LA_variable_ansible_user %><% } else { %>ubuntu<% } %> ansible_become=yes is_vagrant=false # Mounted storage is usually /mnt on EC2. Create a symlink to /mnt -> /data data_dir=/data skin_home_url = <%= LA_urls_prefix %><%= LA_domain %> # Used by mysql connection server_tz = Europe/Paris use_ala_bie = <% if (typeof LA_use_species != 'undefined') { %><%- LA_use_species %><% } else { %>false<% } %> use_spatial = <% if (typeof LA_use_spatial != 'undefined') { %><%- LA_use_spatial %><% } else { %>false<% } %> use_regions = <% if (typeof LA_use_regions != 'undefined') { %><%- LA_use_regions %><% } else { %>false<% } %> use_species = <% if (typeof LA_use_species != 'undefined') { %><%- LA_use_species %><% } else { %>false<% } %> use_species_lists = <% if (typeof LA_use_species_lists != 'undefined') { %><%- LA_use_species_lists %><% } else { %>false<% } %> use_cas = <% if (typeof LA_use_CAS != 'undefined') { %><%- LA_use_CAS %><% } else { %>false<% } %> use_images = <% if (typeof LA_use_images != 'undefined') { %><%- LA_use_images %><% } else { %>false<% } %> use_alerts = <% if (typeof LA_use_alerts != 'undefined') { %><%- LA_use_alerts %><% } else { %>false<% } %> use_doi = <% if (typeof LA_use_doi != 'undefined') { %><%- LA_use_doi %><% } else { %>false<% } %> use_webapi = <% if (typeof LA_use_webapi != 'undefined') { %><%- LA_use_webapi %><% } else { %>false<% } %> use_dashboard = <% if (typeof LA_use_dashboard != 'undefined') { %><%- LA_use_dashboard %><% } else { %>false<% } %> use_biocache_backend = <% if (typeof LA_use_biocache_store != 'undefined') { %><%- LA_use_biocache_store %><% } else { %>false<% } %> use_pipelines = <% if (typeof LA_use_pipelines != 'undefined') { %><%- LA_use_pipelines %><% } else { %>false<% } %> use_solrcloud = <% if (typeof LA_use_solrcloud != 'undefined') { %><%- LA_use_solrcloud %><% } else { %>false<% } %> use_sds = <% if (typeof LA_use_sds != 'undefined') { %><%- LA_use_sds %><% } else { %>false<% } %> use_biocollect = <% if (typeof LA_use_biocollect != 'undefined') { %><%- LA_use_biocollect %><% } else { %>false<% } %> use_namematching_service = <% if (typeof LA_use_namematching_service != 'undefined') { %><%- LA_use_namematching_service %><% } else { %>false<% } %> use_sensitive_data_service = <% if (typeof LA_use_sensitive_data_service != 'undefined') { %><%- LA_use_sensitive_data_service %><% } else { %>false<% } %> use_data_quality = <% if (typeof LA_use_data_quality != 'undefined') { %><%- LA_use_data_quality %><% } else { %>false<% } %> use_events = <% if (typeof LA_variable_enable_events != 'undefined') { %><%- LA_variable_enable_events %><% } else { %>false<% } %> use_events_elasticsearch = <% if (typeof LA_use_events_elasticsearch != 'undefined') { %><%- LA_use_events_elasticsearch %><% } else { %>false<% } %> events_enabled = <% if (typeof LA_variable_enable_events != 'undefined') { %><%- LA_variable_enable_events %><% } else { %>false<% } %> ## EMAILS technical_contact = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> orgSupportEmail= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> download_support_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> email_sender= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> support_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> swagger_contact_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> orgEmail= <% if (typeof LA_variable_orgEmail != 'undefined') { %><%- LA_variable_orgEmail %><% } else { %>info@<%= LA_domain %><% } %> eml_email_address = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> noreply_email= <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> ############# GBIF Name matching index <%_ if (LA_use_namematching_service) { _%> namematching_service_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %> # Used by spatial namematching_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %> <%_ } _%> # GBIF Taxonomy Backbone custom_namematching_url = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-6-2024101001.tgz nameindex_to_use = custom nameindex_datestamp = gbif-backbone-lucene-6-2024101001 nameindex_checksum = sha1:0a18488a2d08666bbf9a6e943cd49d0ff3102e30 ala_namemaching_service_source = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-8-2024101001.tgz ala_namemaching_service_source_sha1 = a07d07ffaa2588532ad71c7c510013dda20e231a ala_sensitive_data_service_namematching_source = https://datos.gbif.es/others/nameindex-gbif-backbone-lucene-6-2024101001.tgz ala_sensitive_data_service_namematching_sha1 = 0a18488a2d08666bbf9a6e943cd49d0ff3102e30 # Use debian packages instead of docker as they are more configurable use_docker_with_pipelines = false # GBIF DwCA for bie-index namedata_to_use = custom custom_namedata_repo = https://datos.gbif.es/namedata custom_name_sources = "[ { 'name': 'gbif-backbone', 'checksum': 'sha1:c356d796646cbcb093e7cefb820d013df975ca6a', 'datestamp': '2024101001' } ]" ####################### Biocache service ####################################### biocache_db_host = <%= LA_biocache_backend_hostname %> biocache_db_type = cassandra3 biocache_db_port = 9042 cassandra_listen_host = <%= LA_biocache_backend_hostname %> use_cassandra3 = true biocache_service_hostname = <%= LA_biocache_service_url %> biocache_service_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> biocache_service_base_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %> biocache_service_context_path = <%= LA_biocache_service_path %> cassandra_keyspace = {{ 'biocache' if biocache_service_version is version('3', '>=') else 'occ' }} logging_enabled = true occurrence_log_enabled = false default_country = <%_ if (LA_use_spatial) { _%> layers_service_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws layers_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws spatial_layers_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws/fields <%_ } else { _%> # While you decide to enable and deploy the spatial service we use ALA service to avoid issues layers_service_url=https://spatial.ala.org.au/ws spatial_layers_url=https://spatial.ala.org.au/ws/fields <%_ } _%> layers_service_sampling = <%= LA_use_spatial %> enable_lists = <%= LA_use_species_lists %> include_species_lists = <%= LA_use_species_lists %> <%_ if (LA_use_species_lists) { _%> lists_service_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %> specieslist_apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= # Used by bie, probably for new lists service (see https://lists-ws.dev.ala.org.au), meanwhile species_list_ws_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/ws <%_ } else { _%> species_list_ws_url = https://lists.ala.org.au/ws <%_ } _%> commonname_lang = en media_store_local = <%= !LA_use_images %> <%_ if (LA_use_images) { _%> media_store_url=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> <%_ } _%> download_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_biocache_service_path %>/biocache-download download_dir=/data/biocache-download <%_ if (LA_use_spatial) { _%> geoserver_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver # Used by regions: geoserver_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver <%_ } else { _%> # While you decide to enable and deploy the spatial service we use ALA service to avoid issues geoserver_url=https://spatial.ala.org.au/geoserver <%_ } _%> sightings_base_url= biocache_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/userDetails/ biocache_jwt_scopes = users/read doi/write ####################### Hub ################################################### biocache_hub_hostname = <%= LA_ala_hub_url %> biocache_hub_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> biocache_hub_base_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %> biocache_hub_context_path = <%= LA_ala_hub_path %> # Used by Image service biocache_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> # Used by regions, userdetails, apikey, lists, ... biocache_base_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> biocache_hub_artifact = ala-hub biocache_hub_skin_layout = ala biocache_hub_uri_filter_pattern=/admin/*,/alaAdmin/*,/download/* biocache_query_context = {{ '-_nest_parent_:*' if biocache_service_version is version('3', '>=') else '' }} bie_biocache_query_context = club_role_for_hub = ROLE_ADMIN authorise_roles = ROLE_ADMIN,ROLE_COLLECTION_ADMIN ala_hub_webservice_jwt_scopes=users/read users/write biocache_hub_userdetails_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails images_metadata_url=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/details?imageId= userdetails_context_path = userdetails # By default caches are disabled (the collections cache is problematic when collectory + biocache on same server) # Configure properly for your case caches_auth_enabled=<% if (typeof LA_variable_caches_auth_enabled != 'undefined') { %><%- LA_variable_caches_auth_enabled %><% } else { %>false<%_ } %> caches_log_enabled=<% if (typeof LA_variable_caches_logs_enabled != 'undefined') { %><%- LA_variable_caches_logs_enabled %><% } else { %>false<%_ } %> # If collections cache is disabled biocache-service will show collections_uid, institutions_uid instead of their respective names in facets and legends caches_collections_enabled=<% if (typeof LA_variable_caches_collections_enabled != 'undefined') { %><%- LA_variable_caches_collections_enabled %><% } else { %>false<%_ } %> caches_layers_enabled=<% if (typeof LA_variable_caches_layers_enabled != 'undefined') { %><%- LA_variable_caches_layers_enabled %><% } else { %>false<%_ } %> # Disabled caches - the collections cache is problematic when collectory + biocache on same server: # If collections cache is disabled biocache-service will show collections_uid, institutions_uid instead of their respective names in facets and legends org_url = <%= LA_urls_prefix %><%= LA_domain %> skin_orgNameLong = <%= LA_project_name %> info_app_description = <%= LA_project_name %> explore_your_area_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %> explore_your_area_lng = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %> explore_your_area_location = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %> map_default_latitude = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %> map_default_longitude = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %> map_default_zoom = 5 # Used in bie default_map_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %> default_map_lon = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %> # If you don't want fluid layout, leave this option empty skin_fluid_layout = true use_ala_image_service = <%= LA_use_images %> <%_ if (LA_use_images) { _%> image_service_viewer_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/viewer?imageId= image_service_metadata_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/image/details?imageId= alwaysshow_imagetab = true <%_ } _%> use_download_plugin=true downloads_indexed_download_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/occurrences/offline/download downloads_checklist_download_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/occurrences/facets/download downloads_indexed_fields_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %>/index/fields downloads_fieldguide_download_url = downloads_static_downloads_url = downloads_terms_of_use= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %> swagger_info_terms_of_services= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %> terms_url= <% if (typeof LA_variable_downloads_terms_of_use != 'undefined') { %><%- LA_variable_downloads_terms_of_use %><% } else { %><% } %> download_auth_sensitive = true download_solr_only = true privacy_policy_url= <% if (typeof LA_variable_privacy_policy_url != 'undefined') { %><%- LA_variable_privacy_policy_url %><% } else { %><% } %> grouped_facets_json=grouped_facets_default.json biocache_grouped_facets_url=file:///data/ala-hub/config/grouped_facets_default.json <%_ if (typeof LA_use_events != 'undefined' && LA_use_events) { _%> events_graphql = <%= LA_urls_prefix %><%= LA_events_url %>/graphql events_eventUrl = <%= LA_urls_prefix %><%= LA_events_url %>/?view=EVENTS&eventHierarchy= <%_ } _%> ####################### Collectory ############################################ collectory_hostname = <%= LA_collectory_url %> collectory_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> collectory_service_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %>/ws collectory_base_url = <%= LA_urls_prefix %><%= LA_collectory_url %> collectory_context_path = <%= LA_collectory_path %> collectory_db_host_address = localhost collectory_db_host = localhost collectory_db_user = collectory collectory_webservice_jwt_scopes=ala/internal users/read ala/attrs bypass_cas = <%= !LA_use_CAS %> public_archive_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>/archives/gbif/@UID@/@UID@.zip gbif_archive_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %>/archives/gbif/@UID@/@UID@.zip mapbox_access_token= <% if (typeof LA_variable_mapbox_access_token != 'undefined') { %><%- LA_variable_mapbox_access_token %><% } else { %>RequestAMapBoxKey<% } %> ####################### CAS Auth system ####################################### # Security bypass security_bypass = <%= !LA_use_CAS %> # Skinning skin = ala # Map config collections_map_lat = <% if (typeof LA_collectory_map_centreMapLat != 'undefined') { %><%- LA_collectory_map_centreMapLat %><% } else { %>16.942<%_ } %> collections_map_lon = <% if (typeof LA_collectory_map_centreMapLng != 'undefined') { %><%- LA_collectory_map_centreMapLng %><% } else { _%>1.261<%_ } %> collections_map_zoom = 3 orgCity = <% if (typeof LA_variable_orgCity != 'undefined') { %><%- LA_variable_orgCity %><% } else { %>Camberra<%_ } %> orgStateProvince = <% if (typeof LA_variable_orgStateProvince != 'undefined') { %><%- LA_variable_orgStateProvince %><% } else { %>ACT<%_ } %> orgPostcode = <% if (typeof LA_variable_orgPostcode != 'undefined') { %><%- LA_variable_orgPostcode %><% } else { %>2601<%_ } %> orgCountry = <% if (typeof LA_variable_orgCountry != 'undefined') { %><%- LA_variable_orgCountry %><% } else { %>Australia<%_ } %> region = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %> regionName = <% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %> # EML config eml_delivery_point = <% if (typeof LA_variable_orgAddress != 'undefined') { %><%- LA_variable_orgAddress %><% } else { %>Clunies Ross Street<%_ } %> eml_city = <% if (typeof LA_variable_orgCity != 'undefined') { %><%- LA_variable_orgCity %><% } else { %>Camberra<%_ } %> eml_admin_area = <% if (typeof LA_variable_orgStateProvince != 'undefined') { %><%- LA_variable_orgStateProvince %><% } else { %>ACT<%_ } %> eml_postal_code = <% if (typeof LA_variable_orgPostcode != 'undefined') { %><%- LA_variable_orgPostcode %><% } else { %>2601<%_ } %> eml_country = <% if (typeof LA_variable_orgCountry != 'undefined') { %><%- LA_variable_orgCountry %><% } else { %>Australia<%_ } %> # Disable UI components disable_map = false disable_alerts = <%= !LA_use_alerts %> myannotation.enabled = <%= LA_use_alerts %> disable_logger = false # GBIF base URL for webservices # For testing purposes use: https://api.gbif-uat.org/v1/ gbif_api_url = https://api.gbif.org/v1/ # Logger URL logger_webservice_url = <%= LA_urls_prefix %><%= LA_logger_url %><%= LA_logger_path %>/service # Species list tool <% if (LA_use_species_lists) { %> species_list_tool_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/speciesListItem/list/ <% } %> ####################### SOLR STANDALONE ####################### # Used by BIE and/or biocache-store <%_ if (LA_use_solrcloud) { _%> solr_url = <%- LA_groups_and_servers['zookeeper'] != null ? LA_groups_and_servers['zookeeper'].map(i => `${i}:2181`).join(','): 'PIPELINES_NEEDS_A_SOLRCLOUR_AND_ZOOKEEPER_CLUSTER' %> <%_ } else { _%> solr_url = http://<%= LA_solr_url %>:8983/solr/biocache <% } %> solr_base_url = http://<%= LA_solr_url %>:8983 solr_context_path = <%= LA_solr_path %> # Solr will start listing to this name/address, so it should be in the VM or # 'I cannot bind' error will raise. Also you have to allow this IP/port in your # internal LAN addresses solr_host = <%= LA_solr_url %> solr_port = 8983 # solr_version is configured previously # solr_version= # Deprecated: Used only in solr4 old role solr_hostname = <%= LA_solr_hostname %> # FIXME: Adjust this to your needs solr_heap = 8g sandbox_hostname = <%= LA_domain %> sandbox_url = <%= LA_urls_prefix %><%= LA_domain %>/sandbox sandbox_base_url = <%= LA_urls_prefix %><%= LA_domain %> sandbox_context_path = /sandbox ################# Logger Service ############ logger_hostname = <%= LA_logger_url %> logger_url = <%= LA_urls_prefix %><%= LA_logger_url %><%= LA_logger_path %> logger_base_url = <%= LA_urls_prefix %><%= LA_logger_url %> logger_context_path = <%= LA_logger_path %> logger_db_name = logger logger_db_username = logger_user logger_db_hostname = localhost logger_authorize_ip_list = <% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %> ############### Auth Server ######### auth_base_url = <%= LA_urls_prefix %><%= LA_cas_url %> auth_cas_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas auth_cookie_name=ALA-Auth auth_cookie_domain=.<%- LA_domain %> auth_cookie_enabled=true # For tests use, for instance: # auth_cookie_name=ALA-Auth-Test # openapi_oauth_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc oidc_discovery_url = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known # Used by spatial oidc_discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known jwt_discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known apikey_service_url=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ # Used by biocache api_check_url=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= # Used by profile service apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= apikey_auth_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ api_key_service_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= # Whether to check API keys for incoming write requests api_key_check_enabled = <%= LA_use_CAS %> apikey_check_enabled = <%= LA_use_CAS %> userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails apikey_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ userdetails_web_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ userdetails_api_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ default_logout_redirect_url = <%= LA_urls_prefix %><%= LA_domain %> discoveryUri = <%= LA_urls_prefix %><%= LA_cas_url %>/cas/oidc/.well-known security_cas_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- !LA_variable_oidc_use %><% } else { %>true<% } %> security_oidc_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- LA_variable_oidc_use %><% } else { %>false<% } %> # Used by spatial cas_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- !LA_variable_oidc_use %><% } else { %>true<% } %> oidc_enabled = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- LA_variable_oidc_use %><% } else { %>false<% } %> # Used by userdetails userdetails_use_cas = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- !LA_variable_oidc_use %><% } else { %>true<% } %> userdetails_use_oidc = <% if (typeof LA_variable_oidc_use != 'undefined') { %><%- LA_variable_oidc_use %><% } else { %>false<% } %> jwt_auth_enabled = <% if (typeof LA_variable_jwt_in_use != 'undefined') { %><%- LA_variable_jwt_in_use %><% } else { %>false<% } %> webservice_jwt = <% if (typeof LA_variable_jwt_out_use != 'undefined') { %><%- LA_variable_jwt_out_use %><% } else { %>false<% } %> userdetails_jwt_client_enabled = <% if (typeof LA_variable_jwt_out_use != 'undefined') { %><%- LA_variable_jwt_out_use %><% } else { %>false<% } %> userdetails_jwt_enabled = <% if (typeof LA_variable_jwt_in_use != 'undefined') { %><%- LA_variable_jwt_in_use %><% } else { %>false<% } %> # In ALA this defaults to 'cognito' in image service logout_action = cas_extra_scopes = [] ####### When near the GBIF building (e.g. in Europe) the GBIF nexus will likely be fastest ######### use_gbif_nexus = false ####### SDS common vars ####### sds_enabled = <%= LA_use_sds %> <%_ if (LA_use_sds) { _%> biocache_sds_url = <%= LA_urls_prefix %><%= LA_sds_url %><%= LA_sds_path %> sds_url = <%= LA_urls_prefix %><%= LA_sds_url %><%= LA_sds_path %> sds_faq_url = <% if (typeof LA_variable_sds_faq_url != 'undefined') { %><%- LA_variable_sds_faq_url %><% } else { %>https://www.ala.org.au/faq/data-sensitivity/<% } %> sds_spatial_layers = <% if (typeof LA_variable_sds_spatial_layers != 'undefined') { %><%- LA_variable_sds_spatial_layers %><% } %> sds_flag_rules = <% if (typeof LA_variable_sds_flag_rules != 'undefined') { %><%- LA_variable_sds_flag_rules %><% } %> sds_skin_layout=ala-main # 2024-03-04 workaround for sds-layers untar issues # https://github.com/AtlasOfLivingAustralia/ala-sensitive-data-service/pull/33 sds_layers_url=https://datos.gbif.es/others/sds-layers.tgz <%_ } else { _%> biocache_sds_url = <%_ } _%> webserver_nginx=true ssl=<%= LA_enable_ssl %> force_https=<%= LA_enable_ssl %> nginx_client_max_body_size=1024m <%_ if (LA_enable_ssl) { _%> ssl_certificate_server_dir=/etc/ssl ssl_cert_file=certs/ssl-cert-snakeoil.pem ssl_key_file=private/ssl-cert-snakeoil.key <%_ } _%> # nginx_vhost_fragments_to_clear = <%- JSON.stringify(LA_nginx_vhosts)%> nginx_vhost_fragments_to_clear = # https://github.com/AtlasOfLivingAustralia/documentation/wiki/Troubleshooting#nginx-vhost-ansible-issues nginx_vhost_fragments_to_clear_no_warning = true # This prevents overwrite vhost configurations when deploying in same server # See: https://github.com/AtlasOfLivingAustralia/ala-install/pull/368 # vhost_with_appname_conf = true ############### Biocache CLI options ############### biocache_opts = -Xmx1g -Xms1g ############## Base header / footer ############### # NOTE: this header/footer url doesn't have a trailing / header_and_footer_baseurl = <%= LA_urls_prefix %><% if (typeof LA_branding_url != 'undefined') { %><%- LA_branding_url %><% } else { %><%- LA_domain %><%_ } %><% if (typeof LA_branding_path != 'undefined') { %><%- LA_branding_path.replace(/\/$/, "") %><% } else { %><%_ } %> header_and_footer_version = 2 ###### favicon ####### favicon_url=<% if (typeof LA_variable_favicon_url != 'undefined') { %><%- LA_variable_favicon_url %><% } else { %>https://raw.githubusercontent.com/living-atlases/artwork/master/favicon.ico<% } %> skin_favicon=<% if (typeof LA_variable_favicon_url != 'undefined') { %><%- LA_variable_favicon_url %><% } else { %>https://raw.githubusercontent.com/living-atlases/artwork/master/favicon.ico<% } %> <%_ if (LA_use_species_lists) { _%> ######### Species list ############## specieslist_hostname = <%= LA_lists_url %> specieslist_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %> specieslist_base_url = <%= LA_urls_prefix %><%= LA_lists_url %> specieslist_context_path = <%= LA_lists_path %> specieslist_db_hostname = localhost specieslist_db_name = specieslists specieslist_db_username = specieslists collectory_enable_sync = false <%_ if (LA_use_species) { _%> bie_service_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> # The same but used by biocollect: bie_ws_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> <%_ } _%> field_guide_base_url = specieslist_iconic_species_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/iconic-species # Used by alerts species_list_server = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %> specieslist_userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ security_apikey_auth_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check/ security_apikey_userdetails_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/userDetails/ lists_webservice_jwt_scopes=ala/internal users/read ala/attrs <%_ } else { _%> # Added while we install our BIE service specieslist_url = https://lists.ala.org.au <%_ } _%> <%_ if (LA_use_species) { _%> ############# BIE index ################ bie_index_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> bie_index_context_path = <%= LA_bie_index_path %> bie_index_hostname = <%= LA_bie_index_url %> bie_index_webservice_jwt_scopes = users/read ala/attrs bie_index_uri_filter_pattern=/admin/*,/alaAdmin/* bie_use_yml = true index_admin_url = http://<%= LA_solr_url %>:8983/solr index_live_url = http://<%= LA_solr_url %>:8983/solr/bie index_offline_url = http://<%= LA_solr_url %>:8983/solr/bie-offline <%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%> biocollect_url = <%= LA_urls_prefix %><%= LA_biocollect_url %><%= LA_biocollect_path %> <%_ } else { _%> biocollect_url = <%_ } _%> <%_ } else { _%> # Added while we install our BIE service bie_base_url = https://bie.ala.org.au bie_service_base_url = https://bie.ala.org.au/ws <%_ } _%> biocache_solr_url = http://<%= LA_solr_url %>:8983/solr/biocache disable_cas = <%= !LA_use_CAS %> index_images = <%= LA_use_images %> <%_ if (LA_use_species) { _%> ############# BIE Hub ################ bie_hub = ala-bie bie_hub_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %> bie_hub_context_path = <%= LA_ala_bie_path %> bie_hub_hostname = <%= LA_ala_bie_url %> ala_bie_webservice_jwt_scopes = users/read ala/attrs bie_image_filter = '"&qualityProfile=LA"' ausTraits_source_url=https://doi.org/10.5281/zenodo.3568417 ausTraits_definitions_url=https://w3id.org/APD google_url = https://www.google.com bie_hub_collectory_service_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> bie_hub_tabs = overview,gallery,names,classification,records,literature,data-partners # https://profiles-ws.ala.org.au profile_service_url = bie_userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ <%_ } _%> # To false following ALA use of this bie_service_enabled = false <%_ if (LA_use_species_lists) { _%> species_list_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %> specieslist_service_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %>/ws lists_base_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %> <%_ } else { _%> species_list_url = https://lists.ala.org.au specieslist_service_url = https://lists.ala.org.au lists_base_url = https://lists.ala.org.au <%_ } _%> sightings_url = <%_ if (LA_use_spatial) { _%> spatial_url=<%= LA_urls_prefix %><%= LA_spatial_url %> spatial_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %> <%_ } else { _%> # While you decide to enable and deploy the spatial service we use ALA service to avoid issues spatial_url=https://spatial.ala.org.au spatial_base_url=https://spatial.ala.org.au <%_ } _%> <%_ if (LA_use_species) { _%> bie_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %> skin_taxa_links_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %>/species/ <%_ } _%> ala_base_url = <%= LA_urls_prefix %><%= LA_domain %> ala_baseurl = <%= LA_urls_prefix %><%= LA_domain %> use_ala_spatial_portal=<%= LA_use_spatial %> # EOL eol_sanitise=true eol_html_allowedElements=h1,h2,h3,h4,h5,h6,div,a,br,i,b,u,small,strike,span,ul,li,p,sup,cite,ol,em,hr eol_html_allowAttributes=href;a;^(http|https|mailto|#).+,class;span,id;span,src;img;^(http|https).+ <%_ if (LA_use_images) { _%> ####### Images ####### image_service_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> image_service_base_url = <%= LA_urls_prefix %><%= LA_images_url %> image_service_context_path = <%= LA_images_path %> image_service_hostname = <%= LA_images_url %> image_service_db_name=images image_service_db_username=images image_service_port=9101 image_service_logfile = {{ 'logback.xml' if image_service_version is version('3', '>=') else 'logback.groovy' }} # Used by bie-index image_base_url = <%= LA_urls_prefix %><%= LA_images_url %> images_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ <%_ } _%> <%_ if (LA_use_regions) { _%> ####### Regions ####### regions_hostname = <%= LA_regions_url %> regions_base_url = <%= LA_urls_prefix %><%= LA_regions_url %> regions_context_path = <%= LA_regions_path %> regions_artifact = regions regions_map_bounds = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- LA_regions_map_bounds %><% } else { %>[]<%_ } %> regions_map_min_lat = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[0] %><% } else { %>-41.5<%_ } %> regions_map_min_lng = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[1] %><% } else { %>114<%_ } %> regions_map_max_lat = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[2] %><% } else { %>-13.5<%_ } %> regions_map_max_lng = <% if (typeof LA_regions_map_bounds != 'undefined') { %><%- JSON.parse(LA_regions_map_bounds)[3] %><% } else { %>154<%_ } %> regions_skin_fluid_layout = false <%_ } _%> <%_ if (LA_use_spatial) { _%> spatial_base_url_ws=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws <%_ } else { _%> # While you decide to enable and deploy the spatial service we use ALA service spatial_base_url_ws=https://spatial.ala.org.au/ws <%_ } _%> <%_ if (LA_use_alerts) { _%> alerts_url = <%= LA_urls_prefix %><%= LA_alerts_url %><%= LA_alerts_path %> alerts_base_url = <%= LA_urls_prefix %><%= LA_alerts_url %> alerts_context_path = <%= LA_alerts_path %> alerts_apikey_check_url = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= alerts_apikey_whitelist = <% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %> alerts_hostname = <%= LA_alerts_url %> alerts_db_hostname = localhost alerts_db_name = alerts alerts_db_username = alerts alerts_myannotation_enabled = true email_alert_address_title = <%= LA_project_shortname %> alerts email_info_address_title = <%= LA_project_name %> email_info_sender = <% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> enable_email = true occurrence_searchTitle = occurrence search occurrence_searchUrl = https://biocache.ala.org.au/occurrences/search?q=passer regions_searchTitle = ACT regions_searchUrl = https://regions.ala.org.au/states/Australian+Capital+Territory speciesPages_searchTitle = Shingle-back speciesPages_searchUrl = https://bie.ala.org.au/species/Tiliqua+rugosa collection_searchTitle = ANIC collection_searchUrl = https://collections.ala.org.au/public/show/co13 enable_specieslists_alerts = <%= LA_use_species_lists %> enable_spatial_alerts = <%= LA_use_spatial %> enable_blogs_alerts = false enable_citizen_science_alerts = false mail_ses_enabled=false <% if (LA_use_species_lists) { %>lists_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %><% } %> <%_ } else { _%> alerts_base_url = alerts_url = <%_ } _%> biocache_records_url=<%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> <%_ if (LA_use_spatial) { _%> # Used by regions allowedHost spatial_ws_hostname=<%= LA_spatial_url %> <%_ } else { _%> # While you decide to enable and deploy the spatial service we use ALA service spatial_ws_hostname=spatial.ala.org.au <%_ } _%> <%_ if (LA_use_webapi) { _%> ####### Web API ####### webapi_hostname = <%= LA_webapi_url %> webapi_base_url = <%= LA_urls_prefix %><%= LA_webapi_url %> webapi_url = <%= LA_urls_prefix %><%= LA_webapi_url %><%= LA_webapi_path %> webapi_context_path = <%= LA_webapi_path %> webapi_db_hostname = localhost webapi_db_name = webapi webapi_db_username = webapi <%_ } _%> <%_ if (LA_use_dashboard) { _%> ####### Dashboard ####### dashboard_hostname = <%= LA_dashboard_url %> dashboard_base_url = <%= LA_urls_prefix %><%= LA_dashboard_url %> dashboard_url = <%= LA_urls_prefix %><%= LA_dashboard_url %><%= LA_dashboard_path %> dashboard_context_path = <%= LA_dashboard_path %> volunteer_base_url = <%_ } _%> # Tune this per service if you need less or more memory on it tomcat_java_opts = -Xmx4g -Xms4g -Xss256k -Djava.awt.headless=true ##### Updated components versions # # Check: https://github.com/AtlasOfLivingAustralia/documentation/wiki/Components-versioning # # Default fallback versions (if the toolkit does not set them) alerts_version = 1.5.3 apikey_version = 1.5 bie_hub_version = 1.5.1 bie_index_version = 1.4.15 biocache_cli_version = 2.6.1 biocache_hub_version = 4.0.8 # Newers versions of biocache-service > 2.4.2 require tomcat8/9 biocache_service_version = 2.7.1 cas_management_version = 5.3.6-1 cas_version = 5.3.12-2 collectory_version = 1.6.4 dashboard_version = 2.2 doi_service_version = 1.1.5 image_service_version = 1.1.7.1 logger_version = 3.0.0 ala_name_matching_version = 3.5 regions_version = 3.3.5 sds_version = 1.6.2 solr_version = 7.7.3 solrcloud_version = 8.9.0 spatial_hub_version = 0.4.2 spatial_service_version = 0.4.2 species_list_version = 3.5.9 user_details_version = 2.3.0 webapi_version = 2.0 pipelines_version = 2.13.0-SNAPSHOT+0~20221123105804.867~1.gbp85d7b3 data_quality_filter_service_version = 1.0.0 namematching_service_version=1.4 biocollect_version=5.2.6 ecodata_version=3.3.1 pdf_service_version=1.3 <%_ if (typeof LA_software_versions != 'undefined') { _%> <%_ if (LA_software_versions.length > 0) { _%> # Software versions selected in the la-toolkit: <%_ } %> <%_ for(var i=0; i < LA_software_versions.length; i++) { _%> <%= LA_software_versions[i][0] %> = <%= LA_software_versions[i][1] %> <%_ } %> <%_ } _%> <%_ if (LA_use_doi) { _%> doi_service_url = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %> doi_service_api_url = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/api/ download_doi_resolver = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/doi/ my_download_doi_baseUrl = <%= LA_urls_prefix %><%= LA_doi_url %><%= LA_doi_path %>/myDownloads download_doi_licence_prefix = "Datasets are covered by the following licence(s): " download_doi_title_prefix = "Occurrence download " # Enable to use DOI service doi_mint_doi = false doi_swagger_info_description=Generate DOIs for <%= LA_project_shortname %> applications doi_swagger_info_title=<%= LA_project_shortname %> DOI service doi_webservice_jwt_scopes=ala/internal users/read ala/attrs doi_skin_fluid_layout= <%_ } _%> <%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%> ###### ECODATA ####### biocollect_base_url = <%= LA_urls_prefix %><%= LA_biocollect_url %> <%_ if (LA_use_images) { _%> imagesService_baseURL=<%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> <%_ } _%> biocacheService_baseUrl=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> <%_ if (LA_use_CAS) { _%> security_serviceUrl = <%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= ###### PDFGEN ###### pdfgen_base_url = <%= LA_urls_prefix %><%= LA_pdfgen_url %> <%_ } _%> # FIXME # merit_base_url=https://fieldcapture.ala.org.au # email SMTP server to use for sending emails mail_host=<% if (typeof LA_variable_email_sender_server != 'undefined') { %><%- LA_variable_email_sender_server %><% } else { %>mail.<%= LA_domain %><% } %> ecodata_noreply_email=<% if (typeof LA_variable_email_sender != 'undefined') { %><%- LA_variable_email_sender %><% } else { %>support@<%= LA_domain %><% } %> ecodata_support_email=<% if (typeof LA_variable_support_email != 'undefined') { %><%- LA_variable_support_email %><% } else { %>support@<%= LA_domain %><% } %> # application config app_uploads_url=/document/download/ models_path=/data/ecodata/models/ merit_ip=<%= LA_groups_and_servers['ecodata'][0] %> biocollect_ip=<%= LA_groups_and_servers['biocollect'][0] %> # mongodb config ecodata_dbPath=/data/mongodb ecodata_SystemLog=/var/log/mongodb # As 4.0 it's not now supported # TODO: Let pick the version via common/set-facts #mongodb_version={{ '8.0' if (ansible_distribution == 'Ubuntu' and ansible_distribution_version is version('24.04', '>=')) else '5.0' }} # In case of using mongo replication in ecodata # # mongo_hosts=primary:27017,secondary:27017 # mongo_primary_ip=<%= LA_groups_and_servers['ecodata'][0] %> # mongo_secondary_ip=<%= LA_groups_and_servers['ecodata-reporting'][0] %> mongodb_version_3=true merit_data_provider_uuid=dp5159 # This should be created in your collectory # For instance: https://collections.ala.org.au/public/show/dp3903 biocollect_data_provider_uuid=dp3903 # In case of using mongo replication in ecodata # # mongo replica set config file # enable_mongo_replica_set=True # replication=True # replicaSetName=rs0 # ecodata_local_authentication_keyFile=some-key-file # ecodata_keyFile=/etc/mongodb-keyFile # ecodata_replica_set_disable_mongo_security=false # disabled_creating_admin_user=false # enable_security_after_replica_set = true #### END of ecodata section <%_ } _%> <%_ if (LA_use_data_quality) { _%> ###### DATA QUALITY (common) ####### data_quality_url = <%= LA_urls_prefix %><%= LA_data_quality_url %><%= LA_data_quality_path %>/ <%_ } _%> #### END of all:vars section [branding:vars] branding_hostname = <% if (typeof LA_branding_hostname != 'undefined') { %><%- LA_branding_hostname %><% } else { %><%- LA_main_hostname %><%_ } %> branding_url = <% if (typeof LA_branding_url != 'undefined') { %><%- LA_branding_url %><% } else { %><%- LA_main_hostname %><%_ } %> branding_path = <% if (typeof LA_branding_path != 'undefined') { %><%- LA_branding_path %><% } else { %>/<%_ } %> branding_nginx_cors_origin_regexp = ^https?:\/\/(localhost|<%- LA_domain.replace(/\./g, '\\.') %>|.*\.<%- LA_domain.replace(/\./g, '\\.') %>) # this general 'nginx_cors_origin_regexp' can fail if you install the branding with other services, so added only to branding above # nginx_cors_origin_regexp = ^https?:\/\/(localhost|<%- LA_domain.replace(/\./g, '\\.') %>|.*\.<%- LA_domain.replace(/\./g, '\\.') %>) [nameindexer:vars] use_openjdk8 = true use_openjdk17 = false [collectory:vars] collectory_app = "{{ 'collectory' if collectory_version is version('3', '>=') else 'ala-collectory' }}" collectory_skin_layout = "{{ 'ala-main' if collectory_version is version('3', '>=') else 'ala' }}" collectory_fluid_layout = "{{ 'true' if collectory_version is version('3', '>=') else '' }}" # For collectory versions < 3.0.0 # collectory_app = ala-collectory # collectory_skin_layout = ala # For versions >= 3.0.0 # collectory_app = collectory # collectory_skin_layout = ala-main is_pipelines_compatible = {{ biocache_service_version is version('3', '>=') | string | lower }} # When https://github.com/AtlasOfLivingAustralia/collectory-plugin/issues/159 is fixed set to true collectory_content_type_options_header=false # RIFCS rifcs_exclude_bounds = true use_openjdk8 = "{{ collectory_version is version('3.1.0', '<') }}" use_openjdk11 = "{{ collectory_version is version('3.1.0', '>=') }}" use_openjdk17 = false tomcat = "{{ 'tomcat10' if (ansible_distribution == 'Ubuntu' and ansible_distribution_version is version('24.04', '>=')) else 'tomcat9' if collectory_version is version('3', '>=') else 'tomcat9' if (ansible_os_family == 'Debian' and ansible_distribution_version is version('20.04', '>=')) else 'tomcat8' }}" tomcat_user = "{{ 'tomcat' if collectory_version is version('3', '>=') else 'tomcat' if (ansible_os_family == 'Debian' and ansible_distribution_version is version('20.04', '>=')) else 'tomcat8' }}" [biocache-hub:vars] biocache_hub_skin_layout = ala facets_cached=species_group,species_subgroup,state,country,institution_uid,collection_uid,data_resource_uid <%_ if (LA_use_data_quality) { _%> data_quality_enabled = <% if (typeof LA_enable_data_quality != 'undefined') { %><%- LA_enable_data_quality %><% } else { %><%- true %><%_ } %> data_quality_url = <%= LA_urls_prefix %><%= LA_data_quality_url %><%= LA_data_quality_path %>/ data_quality_learnmore_link = https://support.ala.org.au/support/solutions/articles/6000240256-getting-started-with-the-data-quality-filters data_quality_warning_on = true # data_quality_default_disable_all_filters = false # data_quality_default_expand_filters = true dataQualitydata_quality_checks_url=https://raw.githubusercontent.com/AtlasOfLivingAustralia/ala-install/master/ansible/roles/biocache-hub/files/data-quality-checks-with-pipelines.csv # skin_data_quality_link_show = false # skin_data_quality_link_url = "https://biocache-dq-test.ala.org.au" # skin_data_quality_link_text = "Try the new search interface with automatic filtering based on data quality metrics" data_quality_userdetails_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails <%_ } _%> use_openjdk8 = "{{ biocache_hub_version is version('5.0.0', '<') }}" use_openjdk11 = "{{ biocache_hub_version is version('5.0.0', '>=') }}" use_openjdk17 = false # Relax the requirement to encode the square bracket characters # Issue tracking fixing this is at: # https://github.com/AtlasOfLivingAustralia/biocache-hubs/issues/369 tomcat_relaxed_query_chars="][" [biocache-service-clusterdb:vars] online_downloadquery_maxthreads=20 download_offline_parallelquery_maxthreads=20 download_offline_max_size=50000000 download_throttle_ms=600 download_batch_size=1000 download_internal_queue_size=2000 download.shp.enabled=false scatterplot_query_page_size=20000 facets_max = 32 qid_wkt_maxPoints=10000 # 100 * 1024 * 1024 wms_cache_size_max=104857600 # Biocache service returns inconsistent response content types for occurrences/search.json with callbacks # When https://github.com/AtlasOfLivingAustralia/biocache-service/issues/247 is fixed we can switch it back on again biocache_service_content_type_options_header=false <%_ if (LA_use_data_quality) { _%> data_quality_enabled = <% if (typeof LA_enable_data_quality != 'undefined') { %><%- LA_enable_data_quality %><% } else { %><%- true %><%_ } %> data_quality_url = <%= LA_urls_prefix %><%= LA_data_quality_url %><%= LA_data_quality_path %>/ <%_ } _%> <%_ if (LA_use_CAS) { _%> security_jwt_jwk_url = <%= LA_urls_prefix %><%= LA_cas_url %>/oidc/jwks <%_ } _%> <%_ if (LA_use_namematching_service) { _%> namesearch_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %> <%_ } _%> tomcat = "{{ 'tomcat10' if (ansible_distribution == 'Ubuntu' and ansible_distribution_version is version('24.04', '>=')) else 'tomcat9' if biocache_service_version is version('3', '>=') else 'tomcat9' if (ansible_os_family == 'Debian' and ansible_distribution_version is version('20.04', '>=')) else 'tomcat8' }}" tomcat_user = "{{ 'tomcat' if biocache_service_version is version('3', '>=') else 'tomcat' if (ansible_os_family == 'Debian' and ansible_distribution_version is version('20.04', '>=')) else 'tomcat8' }}" use_openjdk8 = "{{ biocache_service_version is version('3.1.2', '<') }}" use_openjdk11 = "{{ biocache_service_version is version('3.1.2', '>=') }}" use_openjdk17 = false jmx_debug_enabled=true tomcat_jmx_port=10058 tomcat_max_post_size=67589953 biocache_useragent=Biocache # Limit the effect that occurrence search and mapping have on the Solr cloud by reducing the default HTTP Client configuration solr_connection_pool_size=16 solr_connection_pool_maxperroute=8 # Decrease the timeouts for biocache service as it is latency sensitive solr_connection_connecttimeout=60000 solr_connection_requesttimeout=60000 solr_connection_sockettimeout=180000 solr_connection_cache_entries=2000 # 100 * 1024 * 1024 kilobytes = 104857600 bytes solr_connection_cache_object_size=104857600 solr_downloadquery_maxthreads=20 endemic_query_maxthreads=1 wms_page_size=20000 restart_data_enabled=false # Sample # sensitive_access_roles={\"ROLE_SDS_ACT\" : \"sensitive: \\\"generalised\\\" AND (stateProvince:\\\"Australian Capital Territory\\\" OR stateProvince:\\\"Jervis Bay Territory\\\") AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_NSW\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"New South Wales\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_NZ\" : \"sensitive:\\\"generalised\\\" AND (dataResourceUid:dr2707 OR dataResourceUid:dr812 OR dataResourceUid:dr814 OR dataResourceUid:dr808 OR dataResourceUid:dr806 OR dataResourceUid:dr815 OR dataResourceUid:dr802 OR dataResourceUid:dr805 OR dataResourceUid:dr813) AND -stateProvince:* AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_NT\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"Northern Territory\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_QLD\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"Queensland\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_SA\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"South Australia\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_TAS\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"Tasmania\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_VIC\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"Victoria\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\", \"ROLE_SDS_WA\" : \"sensitive:\\\"generalised\\\" AND stateProvince:\\\"Western Australia\\\" AND -(dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\",\"ROLE_SDS_BIRDLIFE\" : \"sensitive:\\\"generalised\\\" AND (dataResourceUid:dr359 OR dataResourceUid:dr571 OR dataResourceUid:dr570)\"} default_download_fields=id,catalogNumber,taxonConceptID,raw_scientificName,raw_vernacularName,scientificName,taxonRank,vernacularName,kingdom,phylum,class,order,family,genus,species,subspecies,dataResourceUid,dateResourceName,institutionUid,institutionName,collectionUid,collectionName,license,institutionCode,collectionCode,raw_locality,raw_decimalLatitude,raw_decimalLongitude,raw_geodeticDatum,decimalLatitude,decimalLongitude,coordinatePrecision,coordinateUncertaintyInMeters,country,stateProvince,cl959,cl21,cl1048,minimumElevationInMeters,maximumElevationInMeters,minimumDepthInMeters,maximumDepthInMeters,individualCount,recordedBy,year,month,day,eventDate,verbatim_eventDate,raw_basisOfRecord,basisOfRecord,occurrenceStatus,raw_sex,preparations,informationWithheld,dataGeneralizations,outlierLayers,taxonomic_kosher,spatiallyValid download_support_email_enabled=true # Downloads should be executed on bdown nodes, so setting a single very small thread to act as a deterrent # If no threads are defined, a single unlimited thread is created concurrent_download_json="[{\"label\": \"smallSolr\", \"threads\": 2, \"maxRecords\": 500000, \"type\": \"index\", \"pollDelay\": 500, \"executionDelay\": 1000, \"threadPriority\": 5}, {\"label\": \"largeSolr\", \"threads\": 1, \"maxRecords\": 50000000, \"type\": \"index\", \"pollDelay\": 3000, \"executionDelay\": 20000, \"threadPriority\": 1}]" nginx_server_names_hash_bucket_size=128 # nginx log format with x_request_id to help trace requests through to SOLR queries # Only for biocache > 3 # nginx_log_format='$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" request_time=$request_time upstream_response_time=$upstream_response_time upstream_connect_time=$upstream_connect_time upstream_header_time=$upstream_header_time upstream_cache_status=$upstream_cache_status $x_request_id' # Need to trust load balancers to send correct X-Forwarded-For headers. # nginx_set_real_ips=["172.30.0.0/16"] # No caching enabled until biocache-service stops returning HTTP 200 for error pages nginx_cache=False nginx_cache_path=/data/nginx_cache/ws_cache nginx_cache_zone=ws_cache nginx_cache_zone_size=128m nginx_cache_size=10g # Cache to improve usefulness of the cache in successive expensive requests across different days nginx_cache_time=96h nginx_cache_valid_time=96h # Reduce multiple queries to Solr by extending the lock timeout for proxy requests given the known Solr cloud performance issues nginx_cache_lock=True # After 90 seconds the cache lock will be ignored and another request will be passed through, based on known Solr cloud performance issues nginx_cache_lock_age=120s # After 180 seconds, blocked cache requests will eventually be sent themselves to biocache-service, based on known Solr cloud performance issues # Biocache-service has another internal WMS tile cache that should be useful for avoiding multiple Solr requests at this point if the previous query succeeded nginx_cache_lock_timeout=180s # Ignore client aborts so that the responses have the best chance of making it into the nginx cache given the known Solr cloud performance issues nginx_proxy_ignore_client_abort=True # Server is not public, disable rate limiter nginx_rate_limit_enabled=False nginx_rate_limit=250r/m nginx_rate_limit_burst=200 # Each of the zones must have their name and rate defined here nginx_other_limit_zones=[{"name": "biocache_service_rare_difficult", "rate": "10r/m"}, {"name": "biocache_service_mapping_tiles", "rate": "230r/m"}, {"name": "biocache_service_mapping_non_tiles", "rate": "40r/m"}, {"name": "biocache_service_facets", "rate": "30r/m"}, {"name": "biocache_service_chart", "rate": "80r/m"}] # Each of the categories from the biocache-service nginx_vhost task may link to the a combination of the zones above biocache_service_extra_limit_zones_chart=[{"name": "biocache_service_chart", "burst": "60"}] biocache_service_extra_limit_zones_facets=[{"name": "biocache_service_facets", "burst": "20"}] biocache_service_extra_limit_zones_explore_groups=[{"name": "biocache_service_facets", "burst": "20"}] biocache_service_extra_limit_zones_mapping_images=[{"name": "biocache_service_mapping_non_tiles", "burst": "8"}] biocache_service_extra_limit_zones_mapping_legend=[{"name": "biocache_service_mapping_non_tiles", "burst": "30"}] biocache_service_extra_limit_zones_mapping_bounds=[{"name": "biocache_service_mapping_non_tiles", "burst": "30"}] biocache_service_extra_limit_zones_wms_tiles=[{"name": "biocache_service_mapping_tiles", "burst": "180"}] biocache_service_extra_limit_zones_breakdown=[{"name": "biocache_service_rare_difficult", "burst": "8"}] biocache_service_extra_limit_zones_duplicates=[{"name": "biocache_service_rare_difficult", "burst": "8"}] biocache_service_extra_limit_zones_scatterplot=[{"name": "biocache_service_rare_difficult", "burst": "8"}] biocache_service_extra_limit_zones_explore_endemic=[{"name": "biocache_service_rare_difficult", "burst": "8"}] biocache_service_extra_limit_zones_online_downloads=[{"name": "biocache_service_rare_difficult", "burst": "8"}] # Relax the requirement to encode the square bracket characters # Issue tracking fixing this is at: # https://github.com/AtlasOfLivingAustralia/biocache-hubs/issues/369 tomcat_relaxed_query_chars="][" [biocache-cli:vars] # This is different that the rest so media.url is generated correctly biocache_service_base_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> use_openjdk8 = true use_openjdk17 = false nameindex_user = root <%_ if (LA_use_species) { _%> [bie-hub:vars] bie_skin_layout = ala # this can fail if you install bie with other services, so commented for now # nginx_cors_origin_regexp = ^https?:\/\/(localhost|<%- LA_domain.replace(/\./g, '\\.') %>|.*\.<%- LA_domain.replace(/\./g, '\\.') %>) # A list sources that should not have articles fetched from an external site. This is usually because the article is subject to controversy or is not correct (separator: |) # blacklist_source="https?://www\\\\.example\\\\.com/.*|https?://example\\\\.com/.*" # blacklist_source = bie_hub_artifact = "{{ 'ala-bie-hub' if bie_hub_version is version('2', '>=') else 'ala-bie' }}" bie_hub = "{{ 'ala-bie-hub' if bie_hub_version is version('2', '>=') else 'ala-bie' }}" use_openjdk8 = "{{ bie_hub_version is version('2.0.2', '<') }}" use_openjdk11 = "{{ bie_hub_version is version('2.0.2', '>=') }}" use_openjdk17 = false <%_ if (LA_use_data_quality) { _%> data_quality_profiles_url = <%= LA_urls_prefix %><%= LA_data_quality_url %><%= LA_data_quality_path %>/data-profiles <%_ } _%> [bie-index:vars] bie_index_skin_layout = main use_openjdk8 = "{{ bie_index_version is version('1.8', '<') }}" use_openjdk11 = "{{ bie_index_version is version('1.8', '>=') }}" use_openjdk17 = false <%_ } _%> <%_ if (LA_use_images) { _%> [image-service:vars] image_skin_layout = "{{ 'ala-main' if image_service_version is version('2.0', '>=') else 'main' }}" image_service_whitelist = <% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %> use_openjdk8 = "{{ image_service_version is version('2.0.0', '<') }}" use_openjdk11 = "{{ image_service_version is version('2.0.0', '>=') }}" use_openjdk17 = false # Let the pick the default version using common/set-facts # pg_version = 10 # postgis_version = 2.4 # In ALA: # image_service_postgresql_version: 11 # image_service_postgis_version: 2.5 <%_ } _%> <%_ if (LA_use_species_lists) { _%> [species-list:vars] specieslist_skin_layout = main skin_fluid_layout = true <%_ } _%> use_openjdk8 = "{{ species_list_version is version('4.0.0', '<') }}" use_openjdk11 = "{{ species_list_version is version('4.0.0', '>=') }}" use_openjdk17 = false <% if (LA_use_regions) { %> [regions:vars] # Regions use biocache_service_base_url instead of biocache_service_url biocache_service_base_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> regions_skin_layout = "{{ 'ala-main' if regions_version is version('3.4', '>=') else 'main' }}" # When https://github.com/AtlasOfLivingAustralia/regions/issues/63 is fixed set to true regions_content_type_options_header=false use_openjdk8 = "{{ regions_version is version('3.4.0', '<') }}" use_openjdk11 = "{{ regions_version is version('3.4.0', '>=') }}" use_openjdk17 = false <%_ } _%> <%_ if (LA_use_alerts) { _%> [alerts-service:vars] alerts_skin_layout = main alerts_userdetails_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails alerts_collectory_service_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> bie_search_path=/search alerts_userdetails_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/ alerts_webservice_jwt_scopes = ala/internal users/read ala/attrs biosecurity_csv_local_enabled = true biosecurity_csv_s3_enabled = false use_openjdk8 = "{{ alerts_version is version('2.0.0', '<') }}" use_openjdk11 = "{{ alerts_version is version('2.0.0', '>=') }}" use_openjdk17 = false <%_ } _%> [logger-service:vars] logger_skin_layout = main # When https://github.com/AtlasOfLivingAustralia/logger-service/issues/19 is fixed set to true logger_content_type_options_header=false # Create a new log format nginx_other_log_formats=["postdata '$request_body'"] # Use the new log format to log postdata logger_service_extra_postdata_logging="access_log /var/log/nginx/postdata.log postdata" use_openjdk8 = "{{ logger_version is version('4.1.0', '<') }}" use_openjdk11 = "{{ logger_version is version('4.1.0', '>=') }}" use_openjdk17 = false apikey_auth_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check/ <%_ if (LA_use_doi) { _%> [doi-service:vars] # production, test, dev deployment_env = test doi_service_hostname = <%= LA_doi_url %> doi_service_base_url = <%= LA_urls_prefix %><%= LA_doi_url %> doi_service_context_path = <%= LA_doi_path %> doi_service_port = 8081 doi_service_la_provider_name = ALA # Types: DATACITE, ANDS doi_service_default_provider = DATACITE doi_datacite_api_url = https://api.test.datacite.org/ doi_datacite_user = some_user doi_datacite_password = some_password doi_datacite_prefix = "10.5438" doi_datacite_shoulder = "0012" ands_doi_mint_url = https://services.ands.org.au/doi/1.1/ ands_doi_app_id = ands_doi_key = ands_doi_client_id = doi_skin_layout = ala-main # Types: LOCAL, SWIFT, S3 doi_storage_provider = LOCAL doi_aws_region = doi_aws_s3_access_key = doi_aws_s3_secret_key = doi_aws_s3_bucket = doi_file_store = /data/doi-service/files doi_db_hostname = localhost doi_db_name = doi doi_db_user = doi doi_nginx_client_max_body_size = 4096m doi_apikey_check_enabled = true use_openjdk8 = "{{ doi_service_version is version('1.1.5', '<') }}" use_openjdk11 = "{{ doi_service_version is version('1.1.5', '>=') }}" use_openjdk17 = false <%_ } else { _%> doi_service_url = https://doi.ala.org.au <%_ } _%> <%_ if (LA_use_dashboard) { _%> [dashboard:vars] collectory_base_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> biocache_web_base_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> bie_web_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %> # this is url is different in other services (or has a different name) dashboard_userdetails_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails dashboard_bie_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> dashboard_biocache_service_base_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> dashboard_spatial_base_url = <%= LA_urls_prefix %><%= LA_spatial_url %>/ws images_base_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> # This is specific of ALA/Australia useVolunteerService=false useCitizenScienceService=false useBarcodeOfLifeService=false useNationalSpeciesListsService=false useBHLService=false use_openjdk8 = "{{ dashboard_version is version('2.3', '<') }}" use_openjdk11 = "{{ dashboard_version is version('2.3', '>=') }}" use_openjdk17 = false <%_ } else { _%> <%_ } _%> <%_ if (LA_use_sds) { _%> [sds:vars] ####### SDS ####### sds_hostname = <%= LA_sds_url %> sds_base_url = <%= LA_urls_prefix %><%= LA_sds_url %> sds_url = <%= LA_urls_prefix %><%= LA_sds_url %><%= LA_sds_path %> sds_context_path = <%= LA_sds_path %> use_openjdk8 = "{{ sds_version is version('1.7.0', '<') }}" use_openjdk11 = "{{ sds_version is version('1.7.0', '>=') }}" <%_ } else { _%> <%_ } _%> <%_ if (LA_use_CAS) { _%> ###### CAS [cas-servers:vars] cas_server_name=<%= LA_urls_prefix %><%= LA_cas_url %> cas_host_name=<%= LA_cas_url %> cas_hostname=<%= LA_cas_url %> cas_url=<%= LA_urls_prefix %><%= LA_cas_url %>/cas cas_base_url=<%= LA_urls_prefix %><%= LA_cas_url %> cas_context_path=cas ala_cas_ui_version=3 cas_cors_enabled=true # For those intersted in generate different size favicons for CAS: # https://github.com/AtlasOfLivingAustralia/ala-cas-5/blob/master/src/main/resources/templates/layout.html skin_favicon_baseurl=<%= LA_urls_prefix %><%= LA_domain %>/favicon/ cas_management_server_name=<%= LA_urls_prefix %><%= LA_cas_url %> pac4j_cookie_signing_key=<% if (typeof LA_variable_pac4j_cookie_signing_key != 'undefined') { %><%- LA_variable_pac4j_cookie_signing_key %><% } else { %><% } %> pac4j_cookie_encryption_key=<% if (typeof LA_variable_pac4j_cookie_encryption_key != 'undefined') { %><%- LA_variable_pac4j_cookie_encryption_key %><% } else { %><% } %> cas_webflow_signing_key=<% if (typeof LA_variable_cas_webflow_signing_key != 'undefined') { %><%- LA_variable_cas_webflow_signing_key %><% } else { %><% } %> cas_webflow_encryption_key=<% if (typeof LA_variable_cas_webflow_encryption_key != 'undefined') { %><%- LA_variable_cas_webflow_encryption_key %><% } else { %><% } %> cas_oauth_encryption_key=<% if (typeof LA_variable_cas_oauth_encryption_key != 'undefined') { %><%- LA_variable_cas_oauth_encryption_key %><% } else { %><% } %> cas_oauth_signing_key=<% if (typeof LA_variable_cas_oauth_signing_key != 'undefined') { %><%- LA_variable_cas_oauth_signing_key %><% } else { %><% } %> cas_oauth_access_token_encryption_key=<% if (typeof LA_variable_cas_oauth_access_token_encryption_key != 'undefined') { %><%- LA_variable_cas_oauth_access_token_encryption_key %><% } else { %><% } %> cas_oauth_access_token_signing_key=<% if (typeof LA_variable_cas_oauth_access_token_signing_key != 'undefined') { %><%- LA_variable_cas_oauth_access_token_signing_key %><% } else { %><% } %> user_create_password=to_be_added_in_the_near_future endpoints_enabled=true user_store_db_name=emmet user_store_db_hostname=localhost user_store_db_username=userstore ticket_registry_db_name=casTicketRegistry ticket_registry_db_hostname=localhost ticket_registry_db_username=ticket user_store_db_encoding_salt=salt user_store_db_encoding_algorithm=MD5 support_email=support@<%= LA_domain %> cas_audit_ssl_enabled=false cas_audit_host=localhost cas_audit_port=27017 cas_audit_db=cas-audit-repository cas_audit_auth_db= cas_audit_username=casprod cas_audit_timeout=PT10S cas_spring_session_ssl_enabled=false cas_spring_session_host=localhost cas_spring_session_port=27017 cas_spring_session_db=spring-sessions cas_spring_session_username=sessions loginLogo=https://raw.githubusercontent.com/living-atlases/artwork/master/icon-alpha-100.png auth_cookie_domain=.<%= LA_domain %> cas_auth_cookie_domain=<%= LA_domain %> # Set to default values # auth_cookie_secure=false pac4j_callback_url=<%= LA_urls_prefix %><%= LA_cas_url %>/cas/login userdetails_server_name=<%= LA_urls_prefix %><%= LA_cas_url %> userdetails_hostname=<%= LA_cas_url %> userdetails_url=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails userdetails_base_url=<%= LA_urls_prefix %><%= LA_cas_url %> userdetails_context_path=userdetails userdetails_authorize_ip_list=<% if (typeof LA_server_ips != 'undefined') { %><%- LA_server_ips %><% } else { %><%_ } %> # This enable or not sections in userdetails/myprofile use_digivol = false use_sandbox = false use_biocollect = <%= LA_use_biocollect %> # Default create account articles reset_password_article = https://support.ala.org.au/support/solutions/articles/6000194958-my-username-password-isn-t-working-or-i-can-t-remember-my-username-password alert_article = https://support.ala.org.au/support/solutions/articles/6000195858-how-do-i-manage-email-alerts-from-the-ala activation_article = https://support.ala.org.au/support/solutions/articles/6000195196-i-created-an-account-but-did-not-receive-the-account-activation-email apikey_server_name=<%= LA_urls_prefix %><%= LA_cas_url %> apikey_hostname=<%= LA_cas_url %> apikey_context_path=apikey apikey_base_url=<%= LA_urls_prefix %><%= LA_cas_url %> apikey_url=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey apikey_auth_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check/ apikey_check_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/apikey/ws/check?apikey= apikey_userdetails_serviceUrl=<%= LA_urls_prefix %><%= LA_cas_url %>/userdetails/userDetails/ apikey_db_name=apikey apikey_db_username=apikey apikey_db_hostname=localhost apikey_db_port=3306 # Flickr integration (disabled by default) oauth_providers_flickr_enabled=false oauth_providers_flickr_key=somekey oauth_providers_flickr_secret=somesecret sightings_base_url= volunteer_base_url= bootadmin_enabled=false bootadmin_username=admin23 cas_db_migration_baseline=true apikey_db_migration_baseline=true mysql_root_username=root cas_db_username=cas cas_db_hostname=localhost cas_flyway_username=flyway ssl=<%= LA_enable_ssl %> cas_tickets_host=localhost cas_tickets_db=cas-ticket-registry cas_tickets_username=tickets cas_tickets_port=27017 cas_tickets_ssl_enabled=false cas_service_ticket_timeout=15 cas_services_host=localhost cas_services_db=cas-service-registry cas_services_username=services cas_services_port=27017 cas_services_ssl_enabled=false cas_services_timeout=PT10S cas_audit_uri="mongodb://{{ cas_audit_username }}:{{ cas_audit_password }}@{{ cas_audit_host }}:{{ cas_audit_port }}/{{ cas_audit_db }}?retryWrites=true&ssl={{ cas_audit_ssl_enabled }}" cas_services_uri="mongodb://{{ cas_services_username }}:{{ cas_services_password }}@{{ cas_services_host }}:{{ cas_services_port }}/{{ cas_services_db }}?retryWrites=true&ssl={{ cas_services_ssl_enabled }}" cas_tickets_uri="mongodb://{{ cas_tickets_username }}:{{ cas_tickets_password }}@{{ cas_tickets_host }}:{{ cas_tickets_port }}/{{ cas_tickets_db }}?retryWrites=true&ssl={{ cas_tickets_ssl_enabled }}" spring_session_mongo_uri="mongodb://{{ cas_spring_session_username }}:{{ cas_spring_session_password }}@{{ cas_spring_session_host }}:{{ cas_spring_session_port }}/{{ cas_spring_session_db }}?retryWrites=true&ssl={{ cas_spring_session_ssl_enabled }}" spring_session_enabled="{{ 'true' if cas_version is version('6', '>=') else 'false' }}" spring_session_store_type="{{ 'mongodb' if cas_version is version('6', '>=') else 'none' }}" mongodb_root_username=admin # use bs container or container-fluid (leave empty to use non fluid) skin_fluid_layout = true userdetails_skin_layout = ala-main userdetails_skin_fluid_layout = false apikey_skin_layout = ala-main use_openjdk8 = "{{ cas_version is version('6.5.6-3', '<') }}" use_openjdk11 = "{{ cas_version is version('6.5.6-3', '>=') }}" use_openjdk17 = false cas_cors_allowed_origins = [ "<%= LA_urls_prefix %><%= LA_spatial_url %>" ] #### END of CAS section <%_ } else { _%> <%_ } _%> <%_ if (LA_use_spatial) { _%> [spatial] <%= LA_spatial_hostname %> [geoserver] <%= LA_spatial_hostname %> [geonetwork] <%= LA_spatial_hostname %> [spatial-hub] <%= LA_spatial_hostname %> [spatial-service] <%= LA_spatial_hostname %> ### # Geoserver ### [spatial:vars] geoserver_hostname=<%= LA_spatial_url %> geoserver_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver geoserver_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %> geoserver_context_path=/geoserver geoserver_app=geoserver geoserver_username=admin # For now we don't set/change the geoserver default password # via ansible because it does not works well: # https://github.com/AtlasOfLivingAustralia/ala-install/issues/556 # Change it later manually geoserver_password=geoserver layers_db_host=localhost layers_db_port=5432 layers_db_name=layersdb layers_db_username=layers postgresql_host=localhost postgresql_port=5432 postgresql_database=layersdb postgresql_username=layers webserver_nginx=true nginx_default_vhost_required=true robots_disallow_paths=["/ws", "/geoserver", "/geonetwork", "/alaspatial", "/files", "/layers-service", "/actions"] robots_disallow_useragents=["SemrushBot", "Semrush", "SEMrush", "semrush", "Mappy", "BUbiNG"] ssl=<%= LA_enable_ssl %> ### # Geonetwork ### geonetwork_hostname=<%= LA_spatial_url %> geonetwork_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geonetwork geonetwork_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %> geonetwork_context_path=/geonetwork geonetwork_app=geonetwork geonetwork_host=localhost geonetwork_port=5432 geonetwork_username=admin geonetwork_database=geonetwork geonetwork_db_username=geonetwork layers_db_host=localhost layers_db_port=5432 layers_db_name=layersdb layers_db_username=layers postgresql_host=localhost postgresql_port=5432 postgresql_database=layersdb postgresql_username=layers webserver_nginx=true nginx_default_vhost_required=true robots_disallow_paths=["/ws", "/geoserver", "/geonetwork", "/alaspatial", "/files", "/layers-service", "/actions"] robots_disallow_useragents=["SemrushBot", "Semrush", "SEMrush", "semrush", "Mappy", "BUbiNG"] ssl=<%= LA_enable_ssl %> ### # Spatial service ### spatial_service_hostname=<%= LA_spatial_url %> spatial_service_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws spatial_service_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %> spatial_service_context_path=/ws layers_service_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws biocache_service_url=<%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> layers_db_host=localhost layers_db_port=5432 layers_db_name=layersdb layers_db_username=layers db_remote=false pg_service=postgresql-12 #"{{ 'postgresql-12' if spatial_service_version is version('2.1.0', '>=') else 'postgresql-10' }}" pg_version=12 # "{{ '12' if spatial_service_version is version('2.1.0', '>=') else '10' }}" postgis_version=3 postgis_scripts_version=3.5 # "{{ 3.4 if spatial_service_version is version('2.1.0', '>=') else 3.2 }}" postgresql_host=localhost postgresql_port=5432 postgresql_database=layersdb postgresql_username=layers slave_enable=true service_enable=true spatial_service_remote_url=https://nectar-spatial-staging.ala.org.au/spatial-service auth_base_url = https://<%= LA_cas_url %> auth_cas_url = https://<%= LA_cas_url %>/cas webserver_nginx=true nginx_default_vhost_required=true robots_disallow_paths=["/ws", "/geoserver", "/geonetwork", "/alaspatial", "/files", "/layers-service", "/actions"] robots_disallow_useragents=["SemrushBot", "Semrush", "SEMrush", "semrush", "Mappy", "BUbiNG"] ssl=<%= LA_enable_ssl %> use_openjdk8 = "{{ spatial_service_version is version('1.1.0', '<') }}" use_openjdk11 = "{{ spatial_service_version is version('1.1.0', '>=') }}" use_openjdk17 = false spatial_cors_allowed_origins = .*\.<%- LA_domain.replace(/\./g, '\\.') %>(:[0-9]+)? ### # Spatial hub ### data_dir=/data spatial_portal = ALA startup_lat = <% if (typeof LA_spatial_map_lan != 'undefined') { %><%- LA_spatial_map_lan %><% } else { %>16.942<%_ } %> startup_lng = <% if (typeof LA_spatial_map_lng != 'undefined') { %><%- LA_spatial_map_lng %><% } else { %>1.261<%_ } %> startup_zoom = 2 spatial_hub_skin_layout=portal spatial_hub_hostname=<%= LA_spatial_url %> spatial_hub_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ spatial_hub_base_url=<%= LA_urls_prefix %><%= LA_spatial_url %> spatial_hub_context_path=/ world_outline_base_layer=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver/wms? # Your node default spatial area (by default Australia) spatial_default_area_name = '<% if (typeof LA_variable_map_zone_name != 'undefined') { %><%- LA_variable_map_zone_name %><% } else { %>Australia<%_ } %>' spatial_default_area_sqkm = <% if (typeof LA_spatial_map_areaSqKm != 'undefined') { %><%- LA_spatial_map_areaSqKm %><% } else { %>4491002.4759<%_ } %> spatial_default_area_bbox = <% if (typeof LA_spatial_map_bbox != 'undefined') { %><%- LA_spatial_map_bbox %><% } else { %>[-19.556, 26.588, 5.493, 44.434]<%_ } %> layers_service_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/ws geoserver_url=<%= LA_urls_prefix %><%= LA_spatial_url %>/geoserver sandbox_url = <%= LA_urls_prefix %><%= LA_domain %>/sandbox sandbox_ui_url=<%= LA_urls_prefix %>sandbox.<%= LA_domain %>/datacheck sandbox_biocache_service_url=<%= LA_urls_prefix %>sandbox.<%= LA_domain %>/biocache-service tomcat_java_opts = -Xmx4g -Xms4g -Xss256k -Djava.awt.headless=true webserver_nginx=true nginx_default_vhost_required=true robots_disallow_paths=["/ws", "/geoserver", "/geonetwork", "/alaspatial", "/files", "/layers-service", "/actions"] robots_disallow_useragents=["SemrushBot", "Semrush", "SEMrush", "semrush", "Mappy", "BUbiNG"] ssl=<%= LA_enable_ssl %> spatial_nginx_client_max_body_size=120m use_openjdk8 = "{{ spatial_hub_version is version('1.1.0', '<') }}" use_openjdk11 = "{{ spatial_hub_version is version('1.1.0', '>=') }}" use_openjdk17 = false openstreetmap_tile_url=https://spatial.ala.org.au/osm/ ## # Other components ## <%_ if (LA_use_species) { _%> bie_base_url = <%= LA_urls_prefix %><%= LA_ala_bie_url %><%= LA_ala_bie_path %> bie_service_base_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> <%_ } _%> collections_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> biocache_url = <%= LA_urls_prefix %><%= LA_ala_hub_url %><%= LA_ala_hub_path %> biocache_service_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> sampling_url = <%= LA_urls_prefix %><%= LA_spatial_url %>/ws ala_base_url = <%= LA_urls_prefix %><%= LA_domain %> spatial_user_details_base_url = <%= LA_urls_prefix %><%= LA_cas_url %>/userdetails spatial_logger_base_url = <%= LA_urls_prefix %><%= LA_logger_url %><%= LA_logger_path %>/service <% if (LA_use_species_lists) { %>lists_url = <%= LA_urls_prefix %><%= LA_lists_url %><%= LA_lists_path %><% } %> api_key_check_url_template = https://<%= LA_cas_url %>/apikey/ws/check?apikey={0} <%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%> biocollect_url = <%= LA_urls_prefix %><%= LA_biocollect_url %><%= LA_biocollect_path %> <%_ } else { _%> biocollect_url = <%_ } _%> #### END of Spatial section <%_ } else { _%> <%_ } _%> <%_ if (LA_use_pipelines) { _%> [spark:vars] use_openjdk8 = True spark_version = 2.4.5 hadoop_version = 2.8.2 spark_working_dir = /data/spark/tmp spark_master_port = 7077 spark_worker_work_port = 65000 spark_master_ui_port = 8080 spark_worker_ui_port = 8085 spark_download_location = https://archive.apache.org/dist/spark/ # the name of the (OS) user created for spark spark_user = spark spark_master_host = <%= LA_pipelines_master %> spark_user_groups = [] # Optional list of (OS) groups the new spark user should belong to spark_user_shell = "/bin/bash" # the spark user's default shell host_strings = '[<%- LA_groups_and_servers['spark'].map(i => `"${i}"`).join(', ') -%>]' spark_defaults_extras = { } # ALA uses 24 cores and 28G, tune this in your local inventories for adjust it spark_env_extras = { 'SPARK_WORKER_CORES': 4, 'SPARK_WORKER_MEMORY': '8g', 'SPARK_LOCAL_DIRS': '/data/spark-tmp', 'SPARK_WORKER_OPTS': '-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=300 -Dspark.worker.cleanup.appDataTtl=300 -Dspark.network.timeout=180000' } spark_installation_dir = "/data/spark" spark_archive = "spark-{{ spark_version }}-bin-without-hadoop.tgz" spark_download = "{{ spark_download_location }}spark-{{ spark_version }}/{{ spark_archive }}" spark_num_workers = "{{ (groups['cluster_master']+ groups['cluster_nodes']) |length|int}}" spark_master_ip = <%= LA_pipelines_master %> ssh_key_filename = /home/ubuntu/.ssh/<% if (typeof LA_variable_pipelines_ssh_key != 'undefined') { %><%- LA_variable_pipelines_ssh_key %><% } else { %>SOME_PRIV_KEY<% } %> # Needed for yml inventory compatibility spark = "{ 'user': '{{spark_user}}', 'master_host': '{{spark_master_host}}', 'master_ip': '{{spark_master_ip}}', 'version': '{{spark_version}}', 'master_port': '{{spark_master_port}}', 'worker_work_port': '{{spark_worker_work_port}}', 'download_location': '{{spark_download_location}}', 'hadoop_version': '{{hadoop_version}}', 'working_dir': '{{ spark_working_dir }}', 'master_ui_port': '{{ spark_master_ui_port }}', 'worker_ui_port': '{{ spark_worker_ui_port }}', 'user_shell': '{{ spark_user_shell }}', 'user_groups': '{{ spark_user_groups }}', 'default_hosts': '[\"0.0.0.0\", \"127.0.0.1\", \"localhost\", <%- LA_groups_and_servers['spark'].map(i => `\\"${i}\\"`).join(', ') -%>]', 'env_extras': {}, 'defaults_extras': {}, 'slaves': [ <%- LA_groups_children['spark']['cluster_nodes'].map(i => `\\"${i}\\"`).join(', ') -%>] }" # default_hosts are used to add entries into .ssh/known_hosts #### END of spark section [hadoop:vars] hadoop_version = 2.8.2 hadoop_download_location = https://archive.apache.org/dist/hadoop/common/ hadoop_archive = hadoop-2.8.2.tar.gz hadoop_data_dir = /data/hdfs/data hadoop_name_dir = /data/hdfs/name hadoop_temp_dir = /data/hdfs/tmp hadoop_user = hdfs hadoop_user_shell = /bin/bash hadoop_install_dir = /data/hadoop ssh_key_filename = /home/ubuntu/.ssh/<% if (typeof LA_variable_pipelines_ssh_key != 'undefined') { %><%- LA_variable_pipelines_ssh_key %><% } else { %>SOME_PRIV_KEY<% } %> hadoop_master_ip = <%= LA_pipelines_master %> hadoop_secondary_name_node = <%= LA_pipelines_master %> hadoop_install_temp_dir = "/data/hadoop-tmp" # FIXME hdfs_replication_factor = 3 number_of_nodes = <%- LA_groups_and_servers['hadoop'].length %> # Needed for yml inventory compatibility hadoop = "{'data_dir': '{{hadoop_data_dir}}', 'download_location': '{{hadoop_download_location}}', 'hadoop_archive': '{{hadoop_archive}}', 'name_dir': '{{hadoop_name_dir}}', 'secondary_name_node': '{{hadoop_secondary_name_node}}', 'temp_dir': '{{hadoop_temp_dir}}', 'user': '{{hadoop_user}}', 'user_shell': '{{hadoop_user_shell}}', 'version': '{{hadoop_version}}', 'tmp.dir': '{{hadoop_temp_dir}}', 'slaves': [ <%- LA_groups_children['spark']['cluster_nodes'].map(i => `\\"${i}\\"`).join(', ') -%>], 'default_hosts': '[\"0.0.0.0\", \"127.0.0.1\", \"localhost\", <%- LA_groups_and_servers['hadoop'].map(i => `\\"${i}\\"`).join(', ') -%>]' }" # default_hosts are used to add entries into .ssh/known_hosts #### END of hadoop section [pipelines:vars] data_dir = /data hadoop_install_dir = /data/hadoop pipelines_data_dir = /pipelines-data hadoop_master = <%= LA_pipelines_master %> hadoop_port = 9000 spark_master = <%= LA_pipelines_master %> spark_user = spark spark_tmp = /data/spark-tmp dwca_tmp = /data/dwca-tmp dwca_import_dir = /dwca-exports jenkins_http_port = 9194 docker_dir = /data/docker include_sampling = <%= LA_use_spatial %> include_jackknife = false include_clustering = true check_solr = true # FIXME solr_num_of_partitions = 3 zk_host=<%- LA_groups_and_servers['zookeeper'] != null ? LA_groups_and_servers['zookeeper'].map(i => `${i}:2181`).join(','): 'PIPELINES_NEEDS_A_SOLRCLOUR_AND_ZOOKEEPER_CLUSTER' %> collectory_service_slash_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %>/ws/ image_service_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> vocabulary_dir = /pipelines-vocabularies use_yq_via_ppa = true # Until we resolve this: https://github.com/AtlasOfLivingAustralia/ala-sensitive-data-service/issues/18 ala_sensitive_data_service_version=1.2-SNAPSHOT+0~20220222064308.12~1.gbpc5c40d # Spark configuration used by ALA # Use something like: http://spark-configuration.luminousmen.com/ # to fit your cluster size interpret_spark_parallelism = 144 interpret_spark_num_executors = 6 interpret_spark_executor_cores = 8 interpret_spark_executor_memory = '24G' interpret_spark_driver_memory = '4G' image_sync_spark_parallelism = 144 image_sync_spark_num_executors = 16 image_sync_spark_executor_cores = 8 image_sync_spark_executor_memory = '7G' image_sync_spark_driver_memory = '1G' image_load_spark_parallelism = 144 image_load_spark_num_executors = 16 image_load_spark_executor_cores = 8 image_load_spark_executor_memory = '7G' image_load_spark_driver_memory = '1G' uuid_spark_parallelism = 500 uuid_spark_num_executors = 6 uuid_spark_executor_cores = 8 uuid_spark_executor_memory = '20G' uuid_spark_driver_memory = '4G' sampling_spark_parallelism = 144 sampling_spark_num_executors = 8 sampling_spark_executor_cores = 8 sampling_spark_executor_memory = '16G' sampling_spark_driver_memory = '4G' sensitive_spark_num_executors = 8 sensitive_spark_executor_cores = 8 sensitive_spark_executor_memory = '16G' sensitive_spark_driver_memory = '4G' index_spark_parallelism = 500 index_spark_num_executors = 6 index_spark_executor_cores = 8 index_spark_executor_memory = '20G' index_spark_driver_memory = '4G' jackknife_spark_parallelism = 500 jackknife_spark_num_executors = 24 jackknife_spark_executor_cores = 8 jackknife_spark_executor_memory = '7G' jackknife_spark_driver_memory = '1G' clustering_spark_parallelism = 500 clustering_spark_executor_memory = '20G' clustering_spark_driver_memory = '4G' solr_spark_parallelism = 500 solr_spark_num_executors = 6 solr_spark_executor_cores = 8 solr_spark_executor_memory = '22G' solr_spark_driver_memory = '6G' <%_ if (LA_use_namematching_service) { _%> namematching_service_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %> <%_ } _%> <%_ if (LA_use_sensitive_data_service) { _%> sensitive_data_service_url = <%= LA_urls_prefix %><%= LA_sensitive_data_service_url %><%= LA_sensitive_data_service_path %> <%_ } _%> #### END of pipelines section <%_ if (LA_use_pipelines_jenkins) { _%> [jenkins:vars] jenkins_http_port = 9194 #### END of jenkins section [pipelines_jenkins:vars] default_hosts = '["0.0.0.0", "127.0.0.1", "localhost"<%- LA_groups_and_servers['pipelines_jenkins'] != null ? ", " + LA_groups_and_servers['pipelines_jenkins'].map(i => `"${i}"`).join(', '): '' -%>]' data_dir = /data ssh_key_filename = /home/ubuntu/.ssh/<% if (typeof LA_variable_pipelines_ssh_key != 'undefined') { %><%- LA_variable_pipelines_ssh_key %><% } else { %>SOME_PRIV_KEY<% } %> master_node = <%= LA_pipelines_master %> solr_cluster_node_a = <%- LA_groups_and_servers['solrcloud'] != null ? LA_groups_and_servers['solrcloud'][0]: 'PIPELINES_NEEDS_A_SOLRCLOUR__CLUSTER' %> solr_cluster_node_b = <%- LA_groups_and_servers['solrcloud'] != null ? LA_groups_and_servers['solrcloud'][0]: 'PIPELINES_NEEDS_A_SOLRCLOUR__CLUSTER' %> solr_cluster_a_prefix = <%- LA_groups_and_servers['solrcloud'] != null ? LA_groups_and_servers['solrcloud'][0]: 'PIPELINES_NEEDS_A_SOLRCLOUR__CLUSTER' %> solr_cluster_b_prefix = <%- LA_groups_and_servers['solrcloud'] != null ? LA_groups_and_servers['solrcloud'][0]: 'PIPELINES_NEEDS_A_SOLRCLOUR__CLUSTER' %> cass_cluster_for_uuid_migration = <%- LA_groups_and_servers['biocache-db'] != null ? LA_groups_and_servers['biocache-db'][0]: 'PIPELINES_NEEDS_A_CASSANDRA_FOR_THIS_JOB' %> #### END of pipelines_jenkins section <%_ } _%> <%_ } else { _%> <%_ } _%> <%_ if (LA_use_solrcloud) { _%> ####################### SOLRCLOUD ####################### [zookeeper:vars] is_vagrant=false data_dir=/data use_openjdk11=true use_openjdk17 = false zookeeper_servers=[ <%_ for (i in LA_groups_and_servers['zookeeper']) { _%> { "id": "<%- parseInt(i) + 1 -%>", "server_name": "<%- LA_groups_and_servers['zookeeper'][i] -%>" }, <%_ } _%>] [solrcloud:vars] is_vagrant=false data_dir=/data solr_home=/data/solr # Advertise only on the internal DNS address solr_port=8983 solr_zk_host=<%- LA_groups_and_servers['zookeeper'] != null ? LA_groups_and_servers['zookeeper'].map(i => `${i}:2181`).join(','): 'PIPELINES_NEEDS_A_SOLRCLOUR_AND_ZOOKEEPER_CLUSTER' %> solr_environment=prod,label=Production+Cluster+2021,color=orange solr_repository=https://archive.apache.org/dist/lucene/solr/ solr_version="{{ solrcloud_version }}" use_openjdk11=true use_openjdk17 = false solr_jmx_port=10058 solr_zk_client_timeout=30000 solr_clustering_enabled=false jts_use_1_16=true # Access to solr using both localhost and the solr_host is necessary for our cloud setup # Access can be restricted to the minimum number of servers necessary using (for instance, # AWS Security Groups) solr_bind_jetty_host=false <%_ } _%> <%_ if (LA_use_data_quality) { _%> [data_quality_filter_service:vars] data_quality_filter_service = data-quality-filter-service data_quality_filter_service_url = <%= LA_urls_prefix %><%= LA_data_quality_url %><%= LA_data_quality_path %> data_quality_filter_service_base_url = <%= LA_urls_prefix %><%= LA_data_quality_url %> data_quality_filter_service_context_path = <%= LA_data_quality_path %> data_quality_filter_service_hostname = <%= LA_data_quality_url %> data_quality_filter_service_uri_filter_pattern=/data-profiles,/filters/*,/download.* # default_list_view = data_quality_skin_layout = "{{ 'ala-main' if data_quality_filter_service_version is version('1.3.0', '>=') else 'ala' }}" dwc_exclude=dataHubUid,dataProviderUid,institutionUid,year,month,day,modified,left,right,provenance,taxonID,preferredFlag,outlierForLayers,speciesGroups,associatedMedia,images,userQualityAssertion,speciesHabitats,duplicationType,taxonomicIssues,subspeciesID,nameMatchMetric,sounds,verbatimAssociatedMedia,datasetName,fieldNumber,samplingProtocol dq_db_user=data-quality dq_db_name=data-quality dq_db_url=jdbc:postgresql://localhost/data-quality dq_db_dialect=org.hibernate.dialect.PostgreSQLDialect dq_db_driver=org.postgresql.Driver # FIXME just testing ALA uses pg 13 data_quality_pg_version=10 use_openjdk8 = "{{ data_quality_filter_service_version is version('1.3.0', '<') }}" use_openjdk11 = "{{ data_quality_filter_service_version is version('1.3.0', '>=') }}" use_openjdk17 = false <%_ } _%> <%_ if (LA_use_namematching_service) { _%> [namematching-service:vars] namematching_service_hostname = <%= LA_namematching_service_url %> namematching_service_context_path= <%= LA_namematching_service_path %> # Use default ala-namematching ports # namematching_service_port = 8880 # namematching_admin_port = 8881 # In ALA: # nameindex_to_use=ala # nameindex_datestamp=20200214 # ala_nameindex_source_url=https://archives.ala.org.au/archives/nameindexes namematching_user=namematching # FIXME, how to set this without affect other services (as auth do) # max_memory=512m # min_memory=512m use_openjdk8 = true use_openjdk17 = false <%_ } _%> <%_ if (LA_use_sensitive_data_service) { _%> [sensitive-data-service:vars] sensitive_data_service_hostname = <%= LA_sensitive_data_service_url %> sensitive_data_service_context_path= <%= LA_sensitive_data_service_path %> <%_ } _%> <%_ if (typeof LA_use_biocollect != 'undefined' && LA_use_biocollect) { _%> [biocollect:vars] ####### BIOCOLLECT ####### biocollect_hostname = <%= LA_biocollect_url %> biocollect_base_url = <%= LA_urls_prefix %><%= LA_biocollect_url %> biocollect_url = <%= LA_urls_prefix %><%= LA_biocollect_url %><%= LA_biocollect_path %> biocollect_context_path = <%= LA_biocollect_path %> biocollect_tomcat_server_port = 9003 # Option to redirect root requests e.g. https://biocollect.ala.org.au/ to an info page elsewhere biocollect_homepage_url=<%= LA_urls_prefix %><%= LA_biocollect_url %><%= LA_biocollect_path %>/ala biocollect_rewrite_root=True images_base_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %> ecodata_base_url = <%= LA_urls_prefix %><%= LA_ecodata_url %> ala_baseURL = <%= LA_urls_prefix %><%= LA_domain %> merit_base_url=https://fieldcapture.ala.org.au biocollect_support_email=support@<%= LA_domain %> mdba_base_url=https://mdba.ala.org.au deployment_env=prod # Analytics tracking id tracking_id=UA-XXXXXX-1 nginx_vhost_fragments_to_clear=["<%= LA_biocollect_url %>"] terms_of_use_url="{{ downloads_terms_of_use | default('') }}" use_openjdk8 = "{{ biocollect_version is version('6.3', '<') }}" use_openjdk11 = "{{ biocollect_version is version('6.3', '>=') }}" use_openjdk17 = false [ecodata:vars] ####### ECODATA ####### ecodata_hostname = <%= LA_ecodata_url %> ecodata_base_url = <%= LA_urls_prefix %><%= LA_ecodata_url %> ecodata_url = <%= LA_urls_prefix %><%= LA_ecodata_url %><%= LA_ecodata_path %> ecodata_context_path = <%= LA_ecodata_path %> ecodata_tomcat_server_port = 9004 deployment_env=prod # In case of use mongo replication # replication = true # host_ip_address = <%= LA_groups_and_servers['ecodata'][0] %> create_user = true ecodata_packaging=jar ecodata_classifier=exec max_memory="{{ ansible_memtotal_mb - 6 * 1024 if ansible_memtotal_mb > 40 * 1024 else ansible_memtotal_mb - 3 * 1024 if ansible_memtotal_mb > 20 * 1024 else ansible_memtotal_mb - 2 * 1024 if ansible_memtotal_mb > 10 * 1024 else ansible_memtotal_mb - 1300 if ansible_memtotal_mb - 1300 > 512 else 512 }}m" ecodata_reporting_hostname = <%= LA_ecodata_reporting_url %> ecodata_reporting_server = <%= LA_urls_prefix %><%= LA_ecodata_reporting_url %><%= LA_ecodata_reporting_path %> ### # elasticsearch ### install_elasticsearch=True elasticsearch_local=false elasticsearch_primary_host=<%= LA_groups_and_servers['ecodata'][0] %> elasticsearch_host=<%= LA_groups_and_servers['ecodata'][0] %> elasticsearch_primary_port=9200 es_heap_size=4g es_api_basic_auth_username=elastic # GeoServer geoserver_enabled=False nginx_vhost_fragments_to_clear=["<%= LA_ecodata_url %>"] use_openjdk8 = true use_openjdk17 = false [ecodata-reporting:vars] deployment_env=prod ecodata_packaging=jar copy_mongorc = true ecodata_tomcat_server_port = 9005 # host_ip_address = <%= LA_groups_and_servers['ecodata-reporting'][0] %> max_memory="{{ ansible_memtotal_mb - 6 * 1024 if ansible_memtotal_mb > 40 * 1024 else ansible_memtotal_mb - 3 * 1024 if ansible_memtotal_mb > 20 * 1024 else ansible_memtotal_mb - 2 * 1024 if ansible_memtotal_mb > 10 * 1024 else ansible_memtotal_mb - 1300 if ansible_memtotal_mb - 1300 > 512 else 512 }}m" ecodata_classifier=exec ecodata_hostname = <%= LA_ecodata_reporting_url %> ecodata_base_url = <%= LA_urls_prefix %><%= LA_ecodata_reporting_url %> ecodata_url = <%= LA_urls_prefix %><%= LA_ecodata_reporting_url %><%= LA_ecodata_reporting_path %> ecodata_context_path = <%= LA_ecodata_reporting_path %> ecodata_reporting_hostname = <%= LA_ecodata_reporting_url %> ecodata_reporting_server = <%= LA_urls_prefix %><%= LA_ecodata_reporting_url %><%= LA_ecodata_reporting_path %> ### # Geoserver ### geoserver_enabled=False install_geoserver=False ### # elasticsearch ### install_elasticsearch=False elasticsearch_local=false elasticsearch_primary_host = <%= LA_groups_and_servers['ecodata'][0] %> elasticsearch_primary_port=9200 es_api_basic_auth_username=elastic nginx_vhost_fragments_to_clear=["<%= LA_ecodata_reporting_url %>"] use_openjdk8 = true use_openjdk17 = false [pdfgen:vars] nginx_vhost_fragments_to_clear=["<%= LA_pdfgen_url %>"] profile_service_context='' profile_service_host=<%= LA_pdfgen_url %> use_openjdk8 = true use_openjdk11 = false use_openjdk17 = false <%_ } _%> <%_ if (typeof LA_use_events != 'undefined' && LA_use_events) { _%> [events:vars] es_docker_image = atlasoflivingaustralia/es-api:d5e84a73 graphql_docker_image = atlasoflivingaustralia/graphql-api:d5e84a73 es2vt_docker_image = atlasoflivingaustralia/es2vt:8af41c39 es_hosts = <%- LA_groups_and_servers['events_elasticsearch'] != null ? LA_groups_and_servers['events_elasticsearch'].map(i => `http://${i}:9200`).join(','): 'EVENTS_NEEDS_A_ELASTICSEARCH_CLUSTER' %> es_index = event-databox es_port = 4011 graphql_port = 4010 es2vt_port = 4012 env = databox downloads_url = https://api.ala.org.au/event-databox collectory_url = <%= LA_urls_prefix %><%= LA_collectory_url %><%= LA_collectory_path %> namesearch_url = <%= LA_urls_prefix %><%= LA_namematching_service_url %><%= LA_namematching_service_path %> bie_service_url = <%= LA_urls_prefix %><%= LA_bie_index_url %><%= LA_bie_index_path %> biocache_ws_url = <%= LA_urls_prefix %><%= LA_biocache_service_url %><%= LA_biocache_service_path %> # Warning, this is media_store_service_url = <%= LA_urls_prefix %><%= LA_images_url %><%= LA_images_path %>/ws is_vagrant = false data_dir = /data events_hostname=<%= LA_events_url %> webserver_nginx=true nginx_vhost_fragments_to_clear = ["<%= LA_events_url %>"] [events_elasticsearch:vars] install_elasticsearch = True elasticsearch_network_host = 0.0.0.0 elasticsearch_discovery_hosts = ["<%- LA_groups_and_servers['events_elasticsearch'] != null ? LA_groups_and_servers['events_elasticsearch'].map(i => `${i}`).join('", "'): 'EVENTS_NEEDS_A_ELASTICSEARCH_CLUSTER' %>"] elasticsearch_cluster_initial_master_nodes = ["<%- LA_groups_and_servers['events_elasticsearch'] != null ? LA_groups_and_servers['events_elasticsearch'].map(i => `${i}`).join('", "'): 'EVENTS_NEEDS_A_ELASTICSEARCH_CLUSTER' %>"] elasticsearch_seed_hosts = [<%- LA_groups_and_servers['events_elasticsearch'] != null ? `"${LA_groups_and_servers['events_elasticsearch'][0]}:9300"` : 'EVENTS_NEEDS_A_ELASTICSEARCH_CLUSTER' %>] elasticsearch_heap_size = 8g elasticsearch_cluster_name = events es_heap_size=8g elasticsearch_node_master = true elasticsearch_node_data = true <%_ } _%> <%_ if (typeof LA_use_docker_swarm != 'undefined' && LA_use_docker_swarm) { _%> ####################### Docker ################################################ [docker_swarm:vars] deployment_type='swarm' i18n_package_enabled=true docker_default_user=<% if (typeof LA_variable_ansible_user != 'undefined') { %><%- LA_variable_ansible_user %><% } else { %>ubuntu<% } %> nginx_docker_internal_aliases=["<%- (typeof LA_nginx_docker_internal_aliases !== 'undefined' ? LA_nginx_docker_internal_aliases .filter(i => !/^User Details/.test(i) && !/^API keys/.test(i) && !/^CAS Management/.test(i)) .map(i => `${i}`) : []) .join('","') %>"] # Enable it to mount /etc/letsencrypt as volume in nginx services # use_letsencrypt=true docker_data_dir=/var/lib/docker # Size of the zookeeper/solrcloud cluster (for now a service on each docker cluster node) zookeeper_hosts=<%- (typeof LA_docker_solr_hosts !== 'undefined' ? LA_docker_solr_hosts.length : 0) %> solr_hosts=<%- (typeof LA_docker_solr_hosts !== 'undefined' ? LA_docker_solr_hosts.length : 0) %> nginx_docker_swarm_resolver=true # For net docker internal debugging use: # docker_nginx_image=livingatlases/nginx-net-debug:latest docker_nginx_image=livingatlases/nginx-sites-enabled:latest # Some roles as collector (with docker deploy) can be debug their entrypoint with this flag to troubleshoot permissions # or boot issues: # debug_docker_entrypoint=true docker_solr_hosts = [<%- (typeof LA_docker_solr_hosts !== 'undefined' && Array.isArray(LA_docker_solr_hosts) ? LA_docker_solr_hosts.map(i => `"${i}"`).join(', ') : '' ) %>] <%_ } _%> <%_ if (typeof LA_use_gatus != 'undefined' && LA_use_gatus) { _%> gatus_path=<%= LA_gatus_path %> gatus_url=<%= LA_gatus_url %> use_gatus=true <%_ } _%> <%_ if (typeof LA_use_portainer != 'undefined' && LA_use_portainer) { _%> portainer_path=<%= LA_portainer_path %> portainer_url=<%= LA_portainer_url %> <%_ } _%>