1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-15 04:32:11 +00:00

Merge pull request #2201 from holta/osm-split

Refine @jvonau's osm-split PR #2199
This commit is contained in:
A Holt 2020-01-27 02:53:23 -05:00 committed by GitHub
commit 650d28c0ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 169 additions and 103 deletions

View file

@ -30,7 +30,7 @@
- name: Add 'captiveportal' variable values to {{ iiab_ini_file }} - name: Add 'captiveportal' variable values to {{ iiab_ini_file }}
ini_file: ini_file:
path: "{{ iiab_ini_file }}" path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section: captiveportal section: captiveportal
option: "{{ item.option }}" option: "{{ item.option }}"
value: "{{ item.value | string }}" value: "{{ item.value | string }}"

View file

@ -50,7 +50,7 @@
- name: Add 'munin' variable values to {{ iiab_ini_file }} - name: Add 'munin' variable values to {{ iiab_ini_file }}
ini_file: ini_file:
path: "{{ iiab_ini_file }}" path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section: munin section: munin
option: "{{ item.option }}" option: "{{ item.option }}"
value: "{{ item.value | string }}" value: "{{ item.value | string }}"

View file

@ -1,4 +1,3 @@
<head> <head>
<meta http-equiv="refresh" content="0; URL=/osm-vector-maps/maplist/" /> <meta http-equiv="refresh" content="0; URL=/osm-vector-maps/maplist/" />
</head> </head>

View file

@ -0,0 +1,32 @@
# This depends on iiab-admin-console which is not yet installed
#- name: Run the script that does osm-vector-maps housekeeping
# shell: /usr/bin/iiab-update-map
- name: Copy countries.json (geojson) to {{ vector_map_path }}/maplist/assets
copy:
src: countries.json
dest: "{{ vector_map_path }}/maplist/assets" # /library/www/osm-vector-maps
# It is too complicated to use a single file for both iiab and admin-console
- name: Copy map_functions.js (duplicated JavaScript) to {{ vector_map_path }}/maplist/assets
copy:
src: map_functions.js
dest: "{{ vector_map_path }}/maplist/assets" # /library/www/osm-vector-maps
- name: Install {{ vector_map_path }}/maplist/index.html from template, for test page http://box/maps/maplist
template:
src: index.html
dest: "{{ vector_map_path }}/maplist/index.html" # /library/www/osm-vector-maps
#- name: Does the {{ vector_map_path }}/index.html redirect already exist?
# stat:
# path: "{{ vector_map_path }}/index.html"
# register: osm_redirect
#Copy the redirect to the test page -- delete this later if more than one map
- name: Install {{ vector_map_path }}/index.html redirect for http://box/maps -> http://box/osm-vector-maps
copy:
force: no
src: test-index.redirect
dest: "{{ vector_map_path }}/index.html" # /library/www/osm-vector-maps
#when: not osm_redirect.stat.exists

View file

@ -0,0 +1,74 @@
- name: Ensure directory {{ vector_map_path }}/maplist/assets exists
file:
path: "{{ vector_map_path }}/maplist/assets" # /library/www/osm-vector-maps
state: directory
owner: "{{ apache_user }}" # Typically 'www-data' or 'apache'
group: "{{ apache_user }}"
mode: '0755'
- name: Download map catalog {{ iiab_map_url }}/assets/regions.json to {{ vector_map_path }}/maplist/assets/
get_url:
url: "{{ iiab_map_url }}/assets/regions.json" # http://download.iiab.io/content/OSM/vector-tiles/maplist/hidden
dest: "{{ vector_map_path }}/maplist/assets/" # /library/www/osm-vector-maps
- name: Symlink catalog {{ doc_root }}/common/assets/regions.json -> {{ vector_map_path }}/maplist/assets/regions.json
file:
src: "{{ vector_map_path }}/maplist/assets/regions.json" # /library/www/osm-vector-maps
dest: "{{ doc_root }}/common/assets/regions.json" # /library/www/html
state: link
- name: Download the JavaScript bundle with OpenLayers (main.js) into {{ vector_map_path }}/maplist/, for test page http://box/maps/maplist
get_url:
url: "{{ iiab_map_url }}/../main.js" # http://download.iiab.io/content/OSM/vector-tiles/maplist/hidden
dest: "{{ vector_map_path }}/maplist/" # /library/www/osm-vector-maps
- name: Install {{ vector_map_path }}/maplist/index.html from template, for test page http://box/maps/maplist/
template:
src: index.html
dest: "{{ vector_map_path }}/maplist/index.html" # /library/www/osm-vector-maps
# Bboxes (bounding boxes) are currently square. But geofabrik has non-rectangular bboxes.
# So bring the bounding box definition from cloud (bboxes.geojson is big)
- name: Download bounding box definitions (bboxes.geojson) to {{ vector_map_path }}/maplist/assets/
get_url:
url: "{{ iiab_map_url }}/assets/bboxes.geojson" # http://download.iiab.io/content/OSM/vector-tiles/maplist/hidden
dest: "{{ vector_map_path }}/maplist/assets/" # /library/www/osm-vector-maps
- name: Install /usr/bin/iiab-update-map from template, for updating of Map Pack catalog & descriptions
template:
src: iiab-update-map
dest: /usr/bin/iiab-update-map
mode: '0755'
# 2020-01-27: See #2197 "OSM Install Errors" -- should the following 4 stanzas
# be restored to enable-or-disable.yml ? What fix is best short/long term?
- name: Copy countries.json (geojson) into {{ vector_map_path }}/maplist/assets/
copy:
src: countries.json
dest: "{{ vector_map_path }}/maplist/assets" # /library/www/osm-vector-maps
# It is too complicated to use a single file for both iiab and admin-console
- name: Copy map_functions.js (duplicated JavaScript) into {{ vector_map_path }}/maplist/assets/
copy:
src: map_functions.js
dest: "{{ vector_map_path }}/maplist/assets" # /library/www/osm-vector-maps
- name: Install {{ vector_map_path }}/maplist/index.html from template, for test page http://box/maps/maplist/
template:
src: index.html
dest: "{{ vector_map_path }}/maplist/index.html" # /library/www/osm-vector-maps
- name: "Copy test-index.redirect to {{ vector_map_path }}/index.html, for interim redirect: http://box/maps/ -> http://box/osm-vector-maps/maplist/"
copy:
force: no
src: test-index.redirect
dest: "{{ vector_map_path }}/index.html" # /library/www/osm-vector-maps
- name: "Add 'osm_vector_maps_installed: True' to {{ iiab_state_file }}"
lineinfile:
dest: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^osm_vector_maps_installed'
line: 'osm_vector_maps_installed: True'

View file

@ -1,106 +1,49 @@
- name: Ensure directory {{ vector_map_path }}/maplist/assets exists # "How do i fail a task in Ansible if the variable contains a boolean value?
file: # I want to perform input validation for Ansible playbooks"
path: "{{ vector_map_path }}/maplist/assets" # https://stackoverflow.com/questions/46664127/how-do-i-fail-a-task-in-ansible-if-the-variable-contains-a-boolean-value-i-want/46667499#46667499
state: directory
owner: "{{ apache_user }}"
group: "{{ apache_user }}"
mode: '0755'
- name: Download map catalog {{ iiab_map_url }}/assets/regions.json to {{ vector_map_path }}/maplist/assets/ # We assume 0-init/tasks/validate_vars.yml has DEFINITELY been run, so no need
get_url: # to re-check whether vars are defined here. As Ansible vars cannot be unset:
url: "{{ iiab_map_url }}/assets/regions.json" # https://serverfault.com/questions/856729/how-to-destroy-delete-unset-a-variable-value-in-ansible
dest: "{{ vector_map_path }}/maplist/assets/"
- name: Symlink catalog {{ doc_root }}/common/assets/regions.json -> {{ vector_map_path }}/maplist/assets/regions.json - name: Assert that "osm_vector_maps_install is sameas true" (boolean not string etc)
file: assert:
src: "{{ vector_map_path }}/maplist/assets/regions.json" that: osm_vector_maps_install is sameas true
dest: "{{ doc_root }}/common/assets/regions.json" fail_msg: "PLEASE SET 'osm_vector_maps_install: True' e.g. IN: /etc/iiab/local_vars.yml"
state: link quiet: yes
- name: Download the JavaScript bundle with OpenLayers (main.js) for test page http://box/maps/maplist - name: Assert that "osm_vector_maps_enabled | type_debug == 'bool'" (boolean not string etc)
get_url: assert:
url: "{{ iiab_map_url }}/../main.js" that: osm_vector_maps_enabled | type_debug == 'bool'
dest: "{{ vector_map_path }}/maplist/" fail_msg: "PLEASE GIVE VARIABLE 'osm_vector_maps_enabled' A PROPER (UNQUOTED) BOOLEAN VALUE e.g. IN: /etc/iiab/local_vars.yml"
quiet: yes
- name: Install {{ vector_map_path }}/maplist/index.html from template, for test page http://box/maps/maplist
template:
src: index.html
dest: "{{ vector_map_path }}/maplist/index.html"
# Bboxes (bounding boxes) are currently square. But geofabrik has non-rectangular bboxes. - name: Install OSM Vector Maps if 'osm_vector_maps_installed' is not defined in {{ iiab_state_file }} # /etc/iiab/iiab_state.yml
# So bring the bounding box definition from cloud (bboxes.geojson is big) include_tasks: install.yml
- name: Download bounding box definitions (bboxes.geojson) to {{ vector_map_path }}/maplist/assets/ when: osm_vector_maps_installed is undefined
get_url:
url: "{{ iiab_map_url }}/assets/bboxes.geojson"
dest: "{{ vector_map_path }}/maplist/assets/"
# REMOVE this stanza once the transition to Python 3 is confirmed
#- name: Install python-geojson package (OS's prior to Ubuntu 19.10)
# package:
# name: python-geojson
# state: present
# when: is_raspbian_9 or is_raspbian_10 or is_ubuntu_16 or is_ubuntu_18 or is_debian_9 or is_debian_10
# 2019-10-19: Above python-geojson does not exist on Ubuntu 19.10, so let's #- name: Install countries.json, map_functions.js & 2 index.html's under-or-in {{ vector_map_path }}/maplist # /library/www/osm-vector-maps
# begin the transition to Python 3... currently unused # include_tasks: enable-or-disable.yml
#- name: Install python3-geojson package (especially for new OS's like Ubuntu 19.10+)
# package:
# name: python3-geojson # 2019-10-19: available across most/all recent
# state: present # OS's, but not yet used by osm-vector-maps code?
- name: Install /usr/bin/iiab-update-map from template, for updating of Map Pack catalog & descriptions - name: Enable/Disable/Reload NGINX for OSM, if nginx_enabled
template: include_tasks: nginx.yml
src: iiab-update-map when: nginx_enabled | bool
dest: /usr/bin/iiab-update-map
mode: '0755'
# This depends on iiab-admin-console which is not yet installed
#- name: Run the script that does osm-vector-maps housekeeping
# shell: /usr/bin/iiab-update-map
- name: Copy countries.json (geojson) to {{ vector_map_path }}/maplist/assets - name: Add 'osm-vector-maps' variable values to {{ iiab_ini_file }}
copy: ini_file:
src: countries.json path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
dest: "{{ vector_map_path }}/maplist/assets" section: osm-vector-maps
option: "{{ item.option }}"
# It is too complicated to use a single file for both iiab and admin-console value: "{{ item.value | string }}"
- name: Copy the duplicated JavaScript (map_functions.js) to {{ vector_map_path }}/maplist/assets with_items:
copy: - option: name
src: map_functions.js value: OSM Vector Maps
dest: "{{ vector_map_path }}/maplist/assets" - option: description
value: '"OpenStreetMap is like Google Maps but better, for schools especially, as it works offline and avoids all the advertising. Download detailed ''vector maps'' for an entire continent, or the entire world! Also includes 10+ zoom levels of satellite imagery!"'
- name: Install {{ nginx_conf_dir }}/osm-vector-maps.conf from template - option: installed
template: value: "{{ osm_vector_maps_install }}"
src: osm-vector-maps-nginx.conf - option: enabled
dest: "{{ nginx_conf_dir }}/osm-vector-maps-nginx.conf" value: "{{ osm_vector_maps_enabled }}"
when: osm_vector_maps_enabled | bool
- name: Remove {{ nginx_conf_dir }}/osm-vector-maps.conf
file:
path: "{{ nginx_conf_dir }}/osm-vector-maps-nginx.conf"
state: absent
when: not osm_vector_maps_enabled
#- name: Does the {{ vector_map_path }}/index.html redirect already exist?
# stat:
# path: "{{ vector_map_path }}/index.html"
# register: osm_redirect
#Copy the redirect to the test page -- delete this later if more than one map
- name: Install {{ vector_map_path }}/index.html redirect for http://box/maps -> http://box/osm-vector-maps/maplist/ if no redirect exists
copy:
force: no
src: test-index.redirect
dest: "{{ vector_map_path }}/index.html"
#when: not osm_redirect.stat.exists
- name: Reload 'nginx' systemd service
systemd:
name: nginx
state: reloaded
- name: "Add 'osm_vector_maps_installed: True' to {{ iiab_state_file }}"
lineinfile:
dest: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
regexp: '^osm_vector_maps_installed'
line: 'osm_vector_maps_installed: True'

View file

@ -0,0 +1,16 @@
- name: Enable http://box/maps & http://box/osm-vector-maps via NGINX, by installing {{ nginx_conf_dir }}/osm-vector-maps-nginx.conf from template
template:
src: osm-vector-maps-nginx.conf.j2
dest: "{{ nginx_conf_dir }}/osm-vector-maps-nginx.conf"
when: osm_vector_maps_enabled | bool
- name: Disable http://box/maps & http://box/osm-vector-maps via NGINX, by removing {{ nginx_conf_dir }}/osm-vector-maps-nginx.conf
file:
path: "{{ nginx_conf_dir }}/osm-vector-maps-nginx.conf"
state: absent
when: not osm_vector_maps_enabled
- name: Reload 'nginx' systemd service
systemd:
name: nginx
state: reloaded

View file

@ -1,12 +1,14 @@
# For downloadable regional vector tilesets # For downloadable regional vector tilesets
location /maps { location /maps {
rewrite ^/maps(.*)$ /osm-vector-maps$1; rewrite ^/maps(.*)$ /osm-vector-maps$1;
} }
location /osm-vector-maps { location /osm-vector-maps {
alias /library/www/osm-vector-maps; alias {{ vector_map_path }}; # /library/www/osm-vector-maps
} }
location ~ ^/osm-vector-maps/(.*)\.php(.*)$ { location ~ ^/osm-vector-maps/(.*)\.php(.*)$ {
alias /library/www/osm-vector-maps/$1.php$2; alias {{ vector_map_path }}/$1.php$2; # /library/www/osm-vector-maps
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host; proxy_set_header Host $host;

View file

@ -41,7 +41,7 @@
- name: Add 'wordpress' variable values to {{ iiab_ini_file }} - name: Add 'wordpress' variable values to {{ iiab_ini_file }}
ini_file: ini_file:
path: "{{ iiab_ini_file }}" path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section: wordpress section: wordpress
option: "{{ item.option }}" option: "{{ item.option }}"
value: "{{ item.value | string }}" value: "{{ item.value | string }}"