{% 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 #}