Skip to content

Generating updated LA configuration properties files

vjrj edited this page Nov 19, 2019 · 4 revisions

Many times, we find ourselves asking for some updated configuration for some service to other portals.

This can be useful for instance to:

  • use in your docker images
  • to compare with your current configuration
  • to use in a development environment
  • to package some default configuration
  • for documentation purposes

We can use our LA generator and run ansiblew (the ansible-playbook wrapper) to generate only the properties for the LA services.

For this we can patch the generated main inventory and ansiblew like this:

diff --git a/ansiblew b/ansiblew
index a4c183a..5a71786 100755
--- a/ansiblew
+++ b/ansiblew
@@ -17,6 +17,7 @@ Options:
   --nodryrun             Exec the ansible-playbook commands
   -p --properties        Only update properties
   -l --limit=<hosts>     Limit to some inventories hosts
+  -L                     Limit to localhost
   -s --skip=<tags>       Skip tags
   -t --tags=<tags>       Limit to tags
   -h --help              Show help options.
@@ -39,6 +40,7 @@ if __name__ == '__main__':
     skip = args['--skip']
     tags = args['--tags']
     limit = args['--limit']
+    local = args['-L']
     main = args['main']
     doall = args['all']
     alainstall = args['--alainstall']
@@ -53,6 +55,9 @@ if __name__ == '__main__':
     if debug:
         print(args)
 
+    if local:
+        limit = "localhost"
+
     if properties:
         extras = "%s  --tags properties" % (extras)
     if skip:
diff --git a/gbif-es-inventory.yml b/gbif-es-inventory.yml
index deb5fb2..4400e68 100644
--- a/gbif-es-inventory.yml
+++ b/gbif-es-inventory.yml
@@ -16,61 +16,77 @@ ansible_become=yes
 
 [ala-demo]
 datos.gbif.es
-
+localhost ansible_connection=local
 
 [collectory]
 colecciones.gbif.es
+localhost ansible_connection=local
 
 [biocache-hub]
 registros.gbif.es
+localhost ansible_connection=local
 
 [biocache-service-clusterdb]
 registros-ws.gbif.es
+localhost ansible_connection=local
 
 [bie-hub]
 especies.gbif.es
+localhost ansible_connection=local
 
 [bie-index]
 especies-ws.gbif.es
+localhost ansible_connection=local
 
 [image-service]
 imagenes.gbif.es
+localhost ansible_connection=local
 
 [species-list]
 listas.gbif.es
+localhost ansible_connection=local
 
 [regions]
 regiones.gbif.es
+localhost ansible_connection=local
 
 [logger-service]
 logger.gbif.es
+localhost ansible_connection=local
 
 [solr7-server]
 index.gbif.es
+localhost ansible_connection=local
 
 [cas-servers]
 auth.gbif.es
+localhost ansible_connection=local
 
 [biocache]
 jenkins.gbif.es
+localhost ansible_connection=local
 
 [biocache-cli]
 jenkins.gbif.es
+localhost ansible_connection=local
 
 [spatial]
 espacial.gbif.es
+localhost ansible_connection=local
 
 [webapi_standalone]
 api.gbif.es
+localhost ansible_connection=local
 
 [nameindexer]
 jenkins.gbif.es
+localhost ansible_connection=local
 
 
 [all:vars]
 is_vagrant=false
 # Mounted storage is usually /mnt on EC2. Create a symlink to /mnt -> /data
-data_dir=/data
+data_dir=/home/youruser/dev/ala-properties
 
 demo_hostname = datos.gbif.es
 skin_home_url = https://datos.gbif.es

(in this example we patch a copy of the gbif.es inventories) so running:

./ansiblew --alainstall=../ala-install-up-to-date all -p -L --nodryrun

You will get the typical /data/*/config/* files for the main LA services (collectoy, biocache, biocache-cli, bie, species list, logger, etc) updated for you node, in:

/home/youruser/dev/ala-properties

So you'll obtain:

.
├── ala-bie
│   └── config
├── ala-collectory
│   ├── config
│   │   ├── ala-collectory-config.properties
│   │   ├── charts.json
│   │   ├── connection-profiles.json
│   │   └── default-gbif-licence-mapping.json
│   ├── data
│   │   └── taxa
│   │       └── taxa.json
│   ├── taxa
│   │   └── data
│   └── upload
│       └── tmp
├── ala-hub
│   ├── cache
│   ├── config
│   │   ├── ala-hub-config.properties
│   │   ├── charts.json
│   │   ├── GeoLite2-City.mmdb
│   │   ├── grouped_facets_ala.json
│   │   └── system-message.json
│   ├── download
│   │   └── GeoLite2-City.tar.gz
│   └── geolite_db
│       └── GeoLite2-City_20191112
│           ├── COPYRIGHT.txt
│           ├── GeoLite2-City.mmdb
│           ├── LICENSE.txt
│           └── README.txt
├── bie
│   └── import
├── bie-index
│   └── config
│       ├── bie-index-config.yml
│       ├── conservation-lists.json
│       ├── favourites.json
│       ├── image-lists.json
│       └── vernacular-lists.json
├── biocache
│   ├── config
│   │   ├── biocache-config.properties
│   │   ├── facets.json
│   │   ├── log4j.xml
│   │   └── subgroups.json
│   └── layers
├── biocache-delete
├── biocache-load
├── biocache-media
├── biocache-upload
│   ├── status
│   └── temp
├── cache
├── offline
│   └── exports
├── regions
│   └── config
│       ├── menu-config.json
│       ├── regions-config.properties
│       ├── state-emblems.json
│       └── stateEmblems.txt
├── specieslist-webapp
│   └── config
│       └── specieslist-webapp-config.properties
├── tmp
└── tool

Prerequisite: some tomcat7 user in your machine or you can also configure the tomcat and tomcat7_user variables.

For now this doesn't works for CAS and Spatial services because they use a include_role. See tag inheritance.

Clone this wiki locally