mirror of
https://github.com/hyperknot/openfreemap.git
synced 2026-05-21 14:02:15 +00:00
planetiler
This commit is contained in:
@@ -2,17 +2,28 @@
|
|||||||
|
|
||||||
from fabric import Connection
|
from fabric import Connection
|
||||||
|
|
||||||
from openfreemaps.kernel import setup_kernel_settings
|
|
||||||
from openfreemaps.nginx import certbot, nginx
|
from openfreemaps.nginx import certbot, nginx
|
||||||
|
from openfreemaps.pkg_base import pkg_base, pkg_clean, pkg_upgrade
|
||||||
|
from openfreemaps.planetiler import install_planetiler
|
||||||
|
from openfreemaps.system import set_cpu_governor, setup_kernel_settings, setup_time
|
||||||
|
|
||||||
|
|
||||||
def prepare_server(c):
|
def prepare_server(c):
|
||||||
|
pkg_upgrade(c)
|
||||||
|
pkg_clean(c)
|
||||||
|
pkg_base(c)
|
||||||
|
|
||||||
|
setup_time(c)
|
||||||
setup_kernel_settings(c)
|
setup_kernel_settings(c)
|
||||||
|
set_cpu_governor(c)
|
||||||
|
|
||||||
nginx(c)
|
nginx(c)
|
||||||
certbot(c)
|
certbot(c)
|
||||||
|
|
||||||
|
install_planetiler(c)
|
||||||
|
|
||||||
c = Connection(host='map128')
|
|
||||||
|
c = Connection(host='map128', port=22)
|
||||||
|
|
||||||
prepare_server(c)
|
prepare_server(c)
|
||||||
|
# reboot(c)
|
||||||
|
|||||||
31
openfreemaps/pkg_base.py
Normal file
31
openfreemaps/pkg_base.py
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
from openfreemaps.utils import (
|
||||||
|
apt_get_autoremove,
|
||||||
|
apt_get_install,
|
||||||
|
apt_get_purge,
|
||||||
|
apt_get_update,
|
||||||
|
sudo_cmd,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def pkg_upgrade(c):
|
||||||
|
apt_get_update(c)
|
||||||
|
c.sudo(
|
||||||
|
'DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold"'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def pkg_clean(c):
|
||||||
|
clean_list = [
|
||||||
|
# firewalls
|
||||||
|
'ufw',
|
||||||
|
'nftables',
|
||||||
|
'firewalld',
|
||||||
|
]
|
||||||
|
|
||||||
|
apt_get_purge(c, ' '.join(clean_list))
|
||||||
|
apt_get_autoremove(c)
|
||||||
|
sudo_cmd(c, 'dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs -r dpkg --purge')
|
||||||
|
|
||||||
|
|
||||||
|
def pkg_base(c):
|
||||||
|
apt_get_install(c, 'nload iftop')
|
||||||
23
openfreemaps/planetiler.py
Normal file
23
openfreemaps/planetiler.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
from openfreemaps.config import templates
|
||||||
|
from openfreemaps.utils import apt_get_install, apt_get_update, put
|
||||||
|
|
||||||
|
|
||||||
|
PLANETILER_VERSION = '0.7.0'
|
||||||
|
|
||||||
|
PLANETILER_DIR = '/data/planetiler/bin'
|
||||||
|
PLANETILER_PATH = f'{PLANETILER_DIR}/planetiler.jar'
|
||||||
|
|
||||||
|
|
||||||
|
def install_planetiler(c):
|
||||||
|
apt_get_update(c)
|
||||||
|
apt_get_install(c, 'openjdk-17-jdk')
|
||||||
|
|
||||||
|
c.run('mkdir -p /data/planetiler/bin')
|
||||||
|
|
||||||
|
c.run(
|
||||||
|
f'wget -q https://github.com/onthegomap/planetiler/releases/download/v{PLANETILER_VERSION}/planetiler.jar '
|
||||||
|
f'-O {PLANETILER_PATH}',
|
||||||
|
)
|
||||||
|
|
||||||
|
c.run(f'java -jar {PLANETILER_PATH} --help')
|
||||||
|
put(c, templates / 'planetiler' / 'run_planet.sh', PLANETILER_DIR, permissions='755')
|
||||||
@@ -1,11 +1,23 @@
|
|||||||
from openfreemaps.config import templates
|
from openfreemaps.config import templates
|
||||||
from openfreemaps.utils import apt_get_install, apt_get_purge, put, put_str
|
from openfreemaps.utils import (
|
||||||
|
apt_get_install,
|
||||||
|
apt_get_purge,
|
||||||
|
put,
|
||||||
|
put_str,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def setup_time(c):
|
||||||
|
apt_get_install(c, 'dbus')
|
||||||
|
|
||||||
|
c.sudo('timedatectl set-local-rtc 0')
|
||||||
|
c.sudo('timedatectl set-ntp 1')
|
||||||
|
c.sudo('timedatectl set-timezone UTC')
|
||||||
|
|
||||||
|
|
||||||
def setup_kernel_settings(c):
|
def setup_kernel_settings(c):
|
||||||
put(c, f'{templates}/sysctl/60-optim.conf', '/etc/sysctl.d/')
|
put(c, f'{templates}/sysctl/60-optim.conf', '/etc/sysctl.d/')
|
||||||
|
|
||||||
set_cpu_governor(c)
|
|
||||||
|
|
||||||
|
|
||||||
def set_cpu_governor(c):
|
def set_cpu_governor(c):
|
||||||
21
templates/planetiler/run_planet.sh
Normal file
21
templates/planetiler/run_planet.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
DATE=$(date +"%Y%m%d_%H%M%S")
|
||||||
|
|
||||||
|
RUN_FOLDER="/data/planetiler/runs/$DATE"
|
||||||
|
|
||||||
|
mkdir -p "$RUN_FOLDER"
|
||||||
|
cd "$RUN_FOLDER" || exit
|
||||||
|
|
||||||
|
java -Xmx20g \
|
||||||
|
-jar /data/planetiler/bin/planetiler.jar \
|
||||||
|
`# Download the latest planet.osm.pbf from s3://osm-pds bucket` \
|
||||||
|
--area=planet --bounds=planet --download \
|
||||||
|
`# Accelerate the download by fetching the 10 1GB chunks at a time in parallel` \
|
||||||
|
--download-threads=10 --download-chunk-size-mb=1000 \
|
||||||
|
`# Also download name translations from wikidata` \
|
||||||
|
--fetch-wikidata \
|
||||||
|
--output=output.mbtiles \
|
||||||
|
`# Store temporary node locations at fixed positions in a memory-mapped file` \
|
||||||
|
--nodemap-type=array --storage=mmap \
|
||||||
|
> "output_$DATE.log"
|
||||||
Reference in New Issue
Block a user