summaryrefslogtreecommitdiffstats
path: root/tasks/geodata.yml
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/geodata.yml')
-rw-r--r--tasks/geodata.yml211
1 files changed, 211 insertions, 0 deletions
diff --git a/tasks/geodata.yml b/tasks/geodata.yml
new file mode 100644
index 0000000..fcf3471
--- /dev/null
+++ b/tasks/geodata.yml
@@ -0,0 +1,211 @@
+- name: Install gdal-bin
+ apt: pkg=gdal-bin install-recommends=true
+
+- name: Install unzip
+ apt: pkg=unzip
+
+- name: Install python dependencies
+ apt: pkg={{ packages }}
+ vars:
+ packages:
+ - python3
+ - python3-brotli
+ - python3-gdal
+ - python3-requests
+ - python3-systemd
+ - python3-tqdm
+ - python3-urllib3
+ - python3-xdg
+ - python3-yaml
+
+- name: Create directory /etc/geodata
+ file: path=/etc/geodata
+ state=directory
+ owner=root group=root
+ mode=0755
+
+- name: Copy /etc/geodata/config.yml
+ copy: src=webmap-tools/config.yml
+ dest=/etc/geodata/config.yml
+ owner=root group=root
+ mode=0644
+
+- name: Create directory /usr/local/share/geodata
+ file: path=/usr/local/share/geodata
+ state=directory
+ owner=root group=root
+ mode=0755
+
+- name: Copy /usr/local/share/geodata/*.py modules
+ copy: src=webmap-tools/{{ item }}
+ dest=/usr/local/share/geodata/{{ item }}
+ owner=root group=root
+ mode=0644
+ with_items:
+ # TODO these should be compiled
+ - common.py
+ - common_gdal.py
+ - import_source.py
+ - export_mvt.py
+ - export_raster.py
+ - rename_exchange.py
+
+- name: Copy geodata-update@.target
+ copy: src=etc/systemd/system/geodata-update@.target
+ dest=/etc/systemd/system/geodata-update@.target
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemctl daemon-reload
+
+- name: Copy geodata-update@.timer
+ copy: src=etc/systemd/system/geodata-update@.timer
+ dest=/etc/systemd/system/geodata-update@.timer
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemctl daemon-reload
+
+- name: Create directory /etc/systemd/system/geodata-update@*.timer.d
+ file: path=/etc/systemd/system/geodata-update@{{ item }}.timer.d
+ state=directory
+ owner=root group=root
+ mode=0755
+ with_items: "{{ geodata_layer_groups_update_calendar.keys() | list }}"
+
+- name: Copy /etc/systemd/system/geodata-update@*.timer.d/override.conf
+ template: src=etc/systemd/system/geodata-update@.timer.d/override.conf.j2
+ dest=/etc/systemd/system/geodata-update@{{ item }}.timer.d/override.conf
+ owner=root group=root
+ mode=0644
+ with_items: "{{ geodata_layer_groups_update_calendar.keys() | list }}"
+ notify:
+ - systemctl daemon-reload
+
+- name: Enable geodata-update.timer
+ service: name=geodata-update@{{ item }}.timer state=started enabled=true
+ with_items: "{{ geodata_layer_groups | union(geodata_raster) }}"
+
+- meta: flush_handlers
+
+
+- name: Create system group '_geodata'
+ group: name=_geodata system=true
+ state=present
+
+- name: Create system user '_geodata-download'
+ user: name=_geodata-download system=true
+ group=_geodata
+ createhome=false
+ home=/nonexistent
+ shell=/usr/sbin/nologin
+ comment="geodata update (download)"
+ password="!"
+ state=present
+
+- name: Copy /usr/local/share/geodata/download.py
+ copy: src=webmap-tools/geodata-download
+ dest=/usr/local/share/geodata/download.py
+ owner=root group=root
+ mode=0755
+
+- name: Create /usr/local/bin/geodata-download
+ file: src=../share/geodata/download.py
+ dest=/usr/local/bin/geodata-download
+ owner=root group=root
+ state=link force=yes
+
+- name: Create directory /var/cache/geodata
+ file: path=/var/cache/geodata
+ state=directory
+ owner=_geodata-download group=root
+ mode=0755
+
+- name: Create directory /var/cache/geodata/custom
+ file: path=/var/cache/geodata/custom
+ state=directory
+ owner=root group=root
+ mode=0755
+
+- name: Copy custom layers into /var/cache/geodata/custom
+ copy: src=webmap-tools/layers/custom/
+ dest=/var/cache/geodata/custom/
+ owner=root group=root
+ mode=0644
+ directory_mode=0755
+
+- name: Copy geodata-download@.service
+ copy: src=etc/systemd/system/geodata-download@.service
+ dest=/etc/systemd/system/geodata-download@.service
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemctl daemon-reload
+
+- name: Enable geodata-download@.service
+ service: name=geodata-download@{{ item }}.service enabled=true
+ with_items: "{{ geodata_layer_groups | union(geodata_raster) | difference(geodata_layer_groups_nodownload) }}"
+
+- name: Disable some geodata-download@.service
+ service: name=geodata-download@{{ item }}.service enabled=false
+ with_items: "{{ geodata_layer_groups_nodownload }}"
+
+- meta: flush_handlers
+
+
+- name: Copy /etc/tmpfiles.d/geodata.conf
+ copy: src=etc/tmpfiles.d/geodata.conf
+ dest=/etc/tmpfiles.d/geodata.conf
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemd-tmpfiles --create
+
+- meta: flush_handlers
+
+
+- name: Create system user '_geodata'
+ user: name=_geodata system=true
+ group=_geodata
+ createhome=false
+ home=/nonexistent
+ shell=/usr/sbin/nologin
+ comment="geodata update (extract/import)"
+ password="!"
+ state=present
+
+- name: Copy /usr/local/share/geodata/import.py
+ copy: src=webmap-tools/geodata-import
+ dest=/usr/local/share/geodata/import.py
+ owner=root group=root
+ mode=0755
+
+- name: Create /usr/local/bin/geodata-import
+ file: src=../share/geodata/import.py
+ dest=/usr/local/bin/geodata-import
+ owner=root group=root
+ state=link force=yes
+
+- name: Copy geodata-import@.service
+ copy: src=etc/systemd/system/geodata-import@.service
+ dest=/etc/systemd/system/geodata-import@.service
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemctl daemon-reload
+
+- name: Enable geodata-import@.service
+ service: name=geodata-import@{{ item }}.service enabled=true
+ with_items: "{{ geodata_layer_groups }}"
+
+- name: Copy geodata-raster@.service
+ copy: src=etc/systemd/system/geodata-raster@.service
+ dest=/etc/systemd/system/geodata-raster@.service
+ owner=root group=root
+ mode=0644
+ notify:
+ - systemctl daemon-reload
+
+- name: Enable geodata-raster@.service
+ service: name=geodata-raster@{{ item }}.service enabled=true
+ with_items: "{{ geodata_raster }}"