Set up GIS software on multiple computers (Windows & Linux) simultaneosly using SaltStack
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

160 lines
3.7 KiB

{% set qgis_version = '2.18' %}
{% set os_version = 'windows' %}
{#
# Things to be considered: https://docs.saltstack.com/en/latest/ref/states/parallel.html
#}
{#
# LASTools: Works OK
#}
{% for file in [
'las2las',
'las2txt',
'lasdiff',
'lasindex',
'lasinfo',
'lasmerge',
'lasprecision',
'laszip',
'txt2las',
'blast2dem',
'blast2iso',
'bytecopy',
'bytediff',
'e572las',
'las2dem',
'las2iso',
'las2shp',
'las2tin',
'lasboundary',
'lascanopy',
'lasclassify',
'lasclip',
'lascolor',
'lascontrol',
'lascopy',
'lasduplicate',
'lasgrid',
'lasground',
'lasground_new',
'lasheight',
'laslayers',
'lasnoise',
'lasoptimize',
'lasoverage',
'lasoverlap',
'lasplanes',
'laspublish',
'lasreturn',
'lassort',
'lassplit',
'lasthin',
'lastile',
'lastool',
'lastrack',
'lasvalidate',
'lasview',
'lasvoxel',
'shp2las',
'sonarnoiseblaster'
]
%}
{{ file }}:
file.managed:
- makedirs: True
- name: 'C:\lastools\{{ file }}.exe'
- source: 'salt://gis_{{ os_version }}/files/lastools/{{ file }}.exe'
{% endfor %}
{#
# GPX2SHP: Works OK
#}
put_gpx2shp.exe:
file.managed:
- name: 'C:\lastools\gpx2shp.exe'
- source: 'salt://gis_{{ os_version }}/files/gpx2shp.exe'
{#
# Installation of Windows programs with Salt is not as good as on Linux minions
# Many installation processes seem not to report about their statuses back to the
# Salt minion process, thus making Salt master to think that the minion
# computer doesn't return anything. Therefore, some custom approaches
# for installing Windows software on Salt minion must be taken for now
#}
{#
# QuickRoute: installs OK - NOTE: retcode 2 (Error), install_status: success
#}
install_quickroute:
pkg.installed:
- pkgs:
- quickroute-gps_x86
{#
# Merkaartor: Installs OK - NOTE: retcode 2 (Error), install_status: success
#}
install_merkaartor:
pkg.installed:
- pkgs:
- merkaartor
{#
# CloudCompare: Installs OK although takes time
#}
install_cloudcompare:
pkg.installed:
- pkgs:
- cloudcompare
{#
# GPSd: Silent installer complaints about missing serial port, thus hanging the Salt state execution
# Disable the package installation until solution is found
#install_gpsd:
# pkg.installed:
# - pkgs:
# - gpsd
# QGIS: Installs OK although takes A LOT OF time
# Requires increased timeout in salt command on Salt master computer
# until better support for NSIS installers have been implemented in Saltstack
#
# See runme.sh for further information
# The installer does not work as well as CloudCompare's installer
# This is not a good workaround but better than nothing
# Without it, the state hangs here forever until timeout is reached when
# re-running the installation:
#}
{% if not salt['file.directory_exists']('C:\Program Files\QGIS ' + qgis_version) %}
install_qgis_pkg:
pkg.installed:
- pkgs:
- qgis
{% endif %}
{#
# At launch, QGIS tends to complaint about SSL. Fix this by doing the following.
#}
fix_qgis_ssl:
cmd.run:
- shell: powershell
- name: '(New-Object System.Net.WebClient).DownloadString("https://ubuntu.qgis.org/version.txt")'
qgis_lastools:
file.managed:
- name: C:\Program Files\QGIS {{ qgis_version }}\apps\qgis-ltr\python\plugins\processing\algs\lidar\LidarToolsAlgorithmProvider.py
- source: salt://common/qgis_lastools/LidarToolsAlgorithmProvider.py
{#
# Technically the following should be required, but qgis installation status retcode is always 2 (failure) although
# returned string states: 'install_status: success' and installation can be confirmed on the minion computer
# This is likely a bug in Saltstack because it happens on multiple Windows NSIS installer packages
# - require:
# - pkg: install_qgis_pkg
#}