diff options
Diffstat (limited to 'tasks/webmap.yml')
| -rw-r--r-- | tasks/webmap.yml | 197 |
1 files changed, 56 insertions, 141 deletions
diff --git a/tasks/webmap.yml b/tasks/webmap.yml index 10a6555..682e785 100644 --- a/tasks/webmap.yml +++ b/tasks/webmap.yml @@ -1,168 +1,83 @@ -- 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-gdal - - python3-lxml - - python3-requests - - python3-tqdm - - python3-urllib3 - - python3-xdg - - python3-yaml - -- name: Create directory /etc/webmap - file: path=/etc/webmap - state=directory - owner=root group=root - mode=0755 - -- name: Copy /etc/webmap/config.yml - copy: src=webmap-tools/config.yml - dest=/etc/webmap/config.yml - owner=root group=root - mode=0644 - -- name: Create directory /usr/local/share/webmap - file: path=/usr/local/share/webmap +- name: Install brotli + apt: pkg=brotli + +- name: Build administrative-codes.json* + become: false + delegate_to: localhost + community.general.make: + chdir: ./webmap-tools/administrative-codes + target: all + +- name: Create directory /var/www/webmap/data + file: path=/var/www/webmap/data state=directory owner=root group=root mode=0755 -- name: Copy /usr/local/share/webmap/common.py - copy: src=webmap-tools/common.py - dest=/usr/local/share/webmap/common.py +- name: Copy /var/www/webmap/data/administrative-codes.json* + copy: src=./webmap-tools/administrative-codes/{{ item }} + dest=/var/www/webmap/data/{{ item }} owner=root group=root mode=0644 - -- name: Copy webmap-update@.target - copy: src=etc/systemd/system/webmap-update@.target - dest=/etc/systemd/system/webmap-update@.target - owner=root group=root - mode=0644 - notify: - - systemctl daemon-reload - -- name: Copy webmap-update@.timer - copy: src=etc/systemd/system/webmap-update@.timer - dest=/etc/systemd/system/webmap-update@.timer - owner=root group=root - mode=0644 - notify: - - systemctl daemon-reload - -- name: Enable webmap-update.timer - service: name=webmap-update@{{ item }}.timer state=started enabled=true - with_items: "{{ webmap_layer_groups }}" + with_items: + - administrative-codes.json + - administrative-codes.json.br - meta: flush_handlers -- name: Create system user '_webmap-download' - user: name=_webmap-download system=true - group=nogroup - createhome=false - home=/nonexistent - shell=/usr/sbin/nologin - comment="Webmap update (download)" - password="!" - state=present - -- name: Copy /usr/local/share/webmap/download.py - copy: src=webmap-tools/webmap-download - dest=/usr/local/share/webmap/download.py - owner=root group=root +- name: Create directory /var/www/webmap/tiles + file: path=/var/www/webmap/tiles + state=directory + owner=_geodata group=root mode=0755 -- name: Create /usr/local/bin/webmap-download - file: src=../share/webmap/download.py - dest=/usr/local/bin/webmap-download - owner=root group=root - state=link force=yes - -- name: Copy /usr/local/share/webmap/webmap-download-mrr.py - copy: src=webmap-tools/webmap-download-mrr.py - dest=/usr/local/share/webmap/webmap-download-mrr.py - owner=root group=root - mode=0644 - -- name: Create directory /var/cache/webmap - file: path=/var/cache/webmap +- name: Create directory /var/www/webmap/raster + file: path=/var/www/webmap/raster state=directory - owner=_webmap-download group=nogroup + owner=_geodata group=root mode=0755 -- name: Copy webmap-download@.service - copy: src=etc/systemd/system/webmap-download@.service - dest=/etc/systemd/system/webmap-download@.service - owner=root group=root - mode=0644 - notify: - - systemctl daemon-reload - -- name: Enable webmap-download@.service - service: name=webmap-download@{{ item }}.service enabled=true - with_items: "{{ webmap_layer_groups }}" - - meta: flush_handlers -- name: Install PostgreSQL and PostGIS +- name: Install Python/WSGI dependencies apt: pkg={{ packages }} vars: packages: - - postgresql - - postgresql-postgis - - postgis - # for ansible - - python3-psycopg + - uwsgi-core + - uwsgi-plugin-python3 + - python3-psycopg-c + +- name: Copy webmap-cgi.socket + copy: src=etc/systemd/system/webmap-cgi.socket + dest=/etc/systemd/system/webmap-cgi.socket + owner=root group=root + mode=0644 + notify: + - systemctl daemon-reload -- name: Generate sv_SE.UTF-8 locales - locale_gen: name=sv_SE.UTF-8 state=present - # PostgreSQL needs to be restarted to see the new locale - notify: Restart PostgreSQL +- name: Copy webmap-cgi.service + template: src=etc/systemd/system/webmap-cgi.service + dest=/etc/systemd/system/webmap-cgi.service + owner=root group=root + mode=0644 + notify: + - systemctl daemon-reload + - Stop webmap-cgi.service -- name: Start PostgreSQL - service: name=postgresql@{{ postgresql.version }}-{{ postgresql.cluster }}.service state=started +- name: Copy /usr/local/libexec/webmap-cgi + copy: src=./webmap-tools/webmap-cgi + dest=/usr/local/libexec/webmap-cgi + owner=root group=root + mode=0755 + notify: + - Stop webmap-cgi.service - meta: flush_handlers -- name: Create PostgreSQL database - become: true - # XXX: this creates /var/lib/postgresql/.ansible/tmp - become_user: postgres - community.postgresql.postgresql_db: - name: webmap - comment: Backend PostGIS database for KlimatanalysNorr tooling - encoding: UTF-8 - lc_collate: sv_SE.UTF-8 - lc_ctype: sv_SE.UTF-8 - locale_provider: icu - icu_locale: sv-SE-x-icu - template: template0 - owner: postgres - -- name: Create 'postgis' PostgreSQL schema - become: true - become_user: postgres - community.postgresql.postgresql_schema: - name: postgis - db: webmap - owner: postgres - -- name: Install 'postgis' PostgreSQL extension to the webmap database in the postgis schema - become: true - become_user: postgres - community.postgresql.postgresql_ext: - name: postgis - db: webmap - schema: postgis - comment: Geographic objects support for PostgreSQL +- name: Enable webmap-cgi.socket + service: name=webmap-cgi.socket state=started enabled=true -- meta: flush_handlers +- name: Disable webmap-cgi.service + service: name=webmap-cgi.service enabled=false |
