├── .config ├── ansible-lint-ignore.txt └── ansible-lint.yml ├── .editorconfig ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── .vscode └── settings.json ├── .yamllint ├── COPYRIGHT ├── LICENSE ├── README.md ├── accounts.yml ├── ansible.cfg ├── backuppc-server.yml ├── buildbot-master.yml ├── buildbot-slave.yml ├── comcommaker.yml ├── common.yml ├── drupal.yml ├── export-cadastre.yml ├── geoosm.yml ├── group_vars ├── all │ └── accounts.yml ├── cluster-ovh ├── osm2pgsql │ └── users_root ├── osmose-backend │ └── users_root ├── osmose-frontend │ └── users_root ├── vm │ └── users_root └── wireguard │ └── wireguard_hosts ├── host_vars ├── adopte-une-commune.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── backuppc2.vm.openstreetmap.fr │ └── proxmox ├── bano.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── batimap.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── buildbot.osmose.vm.openstreetmap.fr │ └── proxmox ├── bzh202.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── cadastre-joker.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── cadastre.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── comcommaker.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── commerces.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── crm.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── dev.download.vm.openstreetmap.fr │ └── proxmox ├── dev.osmose.vm.openstreetmap.fr │ ├── postgres │ ├── proxmox │ └── users_root ├── download.vm.openstreetmap.fr │ ├── proxmox │ └── user_root ├── enedis.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── garmin.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── geoosm.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── geovisio.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── layers.vm.openstreetmap.fr │ └── proxmox ├── live.vm.openstreetmap.fr │ └── proxmox ├── localdb.osmose.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── mapcontrib.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── matrix.vm.openstreetmap.fr │ └── proxmox ├── mobilizon.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── notes-heatmap.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm11.openstreetmap.fr │ ├── proxy │ └── users_root ├── osm110.openstreetmap.fr │ └── postgres ├── osm12.openstreetmap.fr │ ├── letsencrypt_proxy │ └── proxy ├── osm13.openstreetmap.fr │ └── users_root ├── osm133.openstreetmap.fr │ └── proxmox ├── osm134.openstreetmap.fr │ └── proxmox ├── osm135.openstreetmap.fr │ └── proxmox ├── osm136.openstreetmap.fr │ └── proxmox ├── osm137.openstreetmap.fr │ └── proxmox ├── osm138.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm139.openstreetmap.fr │ └── proxmox ├── osm14.openstreetmap.fr │ └── proxy ├── osm141.openstreetmap.fr │ └── proxmox ├── osm142.openstreetmap.fr │ ├── proxmox │ ├── users_root │ └── wordpress ├── osm144.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm145.openstreetmap.fr │ └── proxmox ├── osm146.openstreetmap.fr │ └── proxmox ├── osm147.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm148.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm149.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm151.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm152.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm153.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm154.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm157.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm158.openstreetmap.fr │ └── proxmox ├── osm160.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm163.openstreetmap.fr │ └── users_root ├── osm164.openstreetmap.fr │ └── proxmox ├── osm165.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm166.openstreetmap.fr │ └── proxmox ├── osm167.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm169.openstreetmap.fr │ └── proxmox ├── osm170.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm173.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm205.openstreetmap.fr │ └── users_root ├── osm206.openstreetmap.fr │ └── users_root ├── osm207.openstreetmap.fr │ └── users_root ├── osm208.openstreetmap.fr │ └── proxmox ├── osm209.openstreetmap.fr │ └── proxmox ├── osm210.openstreetmap.fr │ └── proxmox ├── osm211.openstreetmap.fr │ ├── postgres │ └── proxmox ├── osm212.openstreetmap.fr │ ├── postgres │ └── proxmox ├── osm213.openstreetmap.fr │ ├── postgres │ └── proxmox ├── osm235.openstreetmap.fr │ └── proxmox ├── osm25.openstreetmap.fr │ ├── proxy │ └── users_root ├── osm26.openstreetmap.fr │ └── users_root ├── osm27.openstreetmap.fr │ └── users_root ├── osm28.openstreetmap.fr │ └── users_root ├── osm29.openstreetmap.fr │ └── users_root ├── osm2pgsql-bzh.vm.openstreetmap.fr │ └── proxmox ├── osm2pgsql-cyclosm.vm.openstreetmap.fr │ └── proxmox ├── osm30.openstreetmap.fr │ └── users_root ├── osm300.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm303.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osm31.openstreetmap.fr │ └── users_root ├── osm324.openstreetmap.fr │ └── proxmox ├── osmose-aquilenet.openstreetmap.fr │ └── postgres ├── osmose-hivane1.openstreetmap.fr │ └── postgres ├── osmose-hivane2.openstreetmap.fr │ └── postgres ├── osmose-jupyter.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── osmose.vm.openstreetmap.fr │ └── wireguard ├── osmose1.davintech.ca │ └── postgres ├── osmose2.davintech.ca │ └── postgres ├── peertube.vm.openstreetmap.fr │ ├── peertube │ └── proxmox ├── pic4review.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── pleinair.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── postgres-free.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── postgres-ovh.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── proxy-free.vm.openstreetmap.fr │ └── proxmox ├── proxy.moji.vm.openstreetmap.fr │ └── proxy ├── proxy.osmose.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── proxy.ovh.vm.openstreetmap.fr │ └── proxmox ├── proxy.th3.vm.openstreetmap.fr │ ├── proxmox │ └── proxy ├── renderd-bzh.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── renderd-cyclosm.vm.openstreetmap.fr │ ├── proxmox │ ├── renderd │ └── users_root ├── stable-data.vm.openstreetmap.fr │ └── proxmox ├── taginfo.vm.openstreetmap.fr │ └── proxmox ├── tile-vect.vm.openstreetmap.fr │ ├── proxmox │ └── users_root └── umap.vm.openstreetmap.fr │ ├── proxmox │ └── users_root ├── hosts ├── layers.openstreetmap.fr.yml ├── letsencrypt.yml ├── live.yml ├── munin-server.yml ├── nextcloud.yml ├── ocitysmap.yml ├── osm2pgsql.yml ├── osmbin.yml ├── osmose-backend.yml ├── osmose-frontend.yml ├── osmosis.yml ├── overpass-api.yml ├── peertube.yml ├── polygons.yml ├── postgresql.yml ├── proxmox-backup.yml ├── proxmox-mail-gateway.yml ├── proxycache.yml ├── pylama.ini ├── rawedit.yml ├── renderd.yml ├── requirements.txt ├── roles ├── accounts │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── default.gitconfig │ │ └── default.vimrc │ └── tasks │ │ ├── account.yml │ │ └── main.yml ├── backuppc-server │ ├── files │ │ ├── monit-backuppc │ │ ├── munin-config-backuppc │ │ └── munin-plugin-backuppc │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── backuppc-linux-rsync.j2 ├── buildbot-master │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── apache.site │ │ ├── munin-buildbot │ │ └── nginx.site ├── buildbot-slave │ ├── files │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── systemd-buildbot-worker-override.conf ├── comcommaker │ ├── defaults │ │ └── main.yml │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── apache.site.j2 │ │ └── comcommaker_settings.py.j2 ├── common │ ├── files │ │ ├── apache-logformat.conf │ │ ├── apache-monit │ │ ├── backuppc.authorized_keys │ │ ├── monit-apache │ │ ├── monit-munin │ │ ├── monit-mysql │ │ ├── monit-openssh-no-dsa-check-1.patch │ │ ├── monit-openssh-no-dsa-check-2.patch │ │ ├── monit-sympa │ │ ├── sudoers │ │ ├── sysstat-default │ │ ├── sysstat.conf │ │ └── systemd-lxfs-override.conf │ ├── handlers │ │ ├── main.yml │ │ ├── munin-node.yml │ │ ├── sysctl.yml │ │ └── sysstat.yml │ ├── tasks │ │ ├── apache2-monit.yml │ │ ├── apache2.yml │ │ ├── main.yml │ │ ├── munin-node.yml │ │ ├── nginx.yml │ │ ├── ntp.yml │ │ ├── ssh-tunnel.yml │ │ ├── sysctl.yml │ │ └── sysstat.yml │ └── templates │ │ ├── apache-remoteip.conf │ │ ├── monit-alert │ │ ├── monit-postgresql │ │ ├── monit-webserver │ │ ├── nginx-forwarded_ip.conf │ │ ├── sudoers-users │ │ ├── systemd-hostnamed-no-private-mounts.j2 │ │ └── systemd-tmpfiles.conf.j2 ├── drupal │ ├── files │ │ └── apache.site │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── export-cadastre │ ├── files │ │ └── apache.site │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── geoosm │ └── tasks │ │ └── main.yml ├── layers.openstreetmap.fr │ ├── files │ │ ├── apache │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── letsencrypt │ ├── files │ │ ├── apache-challenge.site │ │ ├── apache-keys.site │ │ ├── letsencrypt-to-apache.sh │ │ ├── letsencrypt-to-nginx.sh │ │ ├── letsencrypt-to-proxmox-mail-gateway.sh │ │ ├── letsencrypt-to-proxmox.sh │ │ ├── nginx-letsencrypt-challenge-certbot.conf │ │ ├── nginx-letsencrypt-challenge.conf │ │ ├── nginx-letsencrypt-ssl.conf │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── acme-tiny.yml │ │ ├── certbot.yml │ │ └── main.yml │ └── templates │ │ ├── launch-acme-tiny.sh │ │ ├── launch-certbot.sh │ │ ├── letsencrypt-hosts-list │ │ └── letsencrypt-hosts-list-certbot ├── live │ ├── files │ │ ├── apache.site │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── munin-server │ ├── files │ │ ├── apache.site │ │ └── robots.txt │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── hosts.conf.j2 ├── nextcloud │ ├── files │ │ └── apache.site │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── ocitysmap │ ├── files │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ ├── templates │ │ └── ocitysmap.conf.j2 │ └── vars │ │ └── main.yml ├── osm2pgsql │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── sudoers │ ├── meta │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── osmbin │ ├── files │ │ ├── README.deb │ │ ├── osmium-2.15.2-or-later_1.0_all.deb │ │ └── sudoers │ └── tasks │ │ └── main.yml ├── osmose-backend │ ├── files │ │ └── sudoers │ ├── meta │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── osmose-frontend │ ├── files │ │ ├── sudoers │ │ └── systemd-gunicorn.service │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ └── postgresql-config ├── osmosis │ ├── files │ │ └── sudoers │ └── tasks │ │ └── main.yml ├── overpass-api │ ├── README.md │ ├── defaults │ │ └── main.yml │ ├── files │ │ ├── fcgiwrap │ │ ├── log-to-stdout.patch │ │ └── rate_limit.conf │ ├── handlers │ │ └── main.yml │ ├── meta │ │ └── mail.yml │ ├── tasks │ │ ├── compile.yml │ │ ├── main.yml │ │ ├── munin.yml │ │ ├── restart.yml │ │ ├── services.yml │ │ ├── set_up_database.yml │ │ └── web.yml │ └── templates │ │ ├── api.html │ │ ├── default.conf │ │ ├── index.html │ │ ├── munin │ │ └── overpass_db_lag │ │ ├── overpass-areas-builder.service │ │ ├── overpass-areas-dispatcher.service │ │ ├── overpass-copy-id.py │ │ ├── overpass-copy-id.service │ │ ├── overpass-diff-applier.service │ │ ├── overpass-diff-downloader.service │ │ ├── overpass-dispatcher.service │ │ ├── overpass-setup.py │ │ ├── overpass-setup.service │ │ └── overpass-updater.service ├── polygons │ ├── files │ │ ├── apache.site │ │ └── sudoers │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── postgresql │ ├── defaults │ │ └── main.yml │ ├── files │ │ └── logrotate-postgres │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── postgresql-config │ │ └── systemd-postgresql-override.conf ├── proxmox-backup │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── proxmox-autosnap-daily.service │ │ ├── proxmox-autosnap-daily.timer │ │ ├── proxmox-autosnap-monthly.service │ │ ├── proxmox-autosnap-monthly.timer │ │ ├── proxmox-autosnap-weekly.service │ │ └── proxmox-autosnap-weekly.timer ├── proxmox-mail-gateway │ ├── files │ │ ├── opendkim-keytable │ │ ├── opendkim-signer.conf │ │ ├── opendkim-signingtable │ │ ├── opendkim-verifier.conf │ │ ├── pmg-master.cf.in.patch │ │ ├── postfix-sasl-smtpd.conf │ │ ├── systemd-opendkim-signer.service │ │ └── systemd-opendkim-verifier.service │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── proxycache │ ├── files │ │ ├── nginx-osm23.openstreetmap.fr.site │ │ └── nginx-proxy.osmose.vm.openstreetmap.fr.site │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ └── main.yml │ └── templates │ │ ├── nginx-osm24.openstreetmap.fr.site │ │ ├── nginx-site-buildbot.j2 │ │ ├── nginx-site-cyclosm.j2 │ │ ├── nginx-site-mastodon.j2 │ │ ├── nginx-site-osmose-jupyter.j2 │ │ ├── nginx-site-peertube.j2 │ │ ├── nginx-site-port.j2 │ │ ├── nginx-site-wms.j2 │ │ └── nginx-site.j2 ├── rawedit │ ├── files │ │ └── apache.site │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── renderd │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── cyclosm.yml │ │ └── main.yml │ └── templates │ │ └── tileserver_site.conf ├── sympa │ ├── files │ │ └── apache.site │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── taginfo │ ├── files │ │ ├── 10_download.sh │ │ ├── 10_filtre.osh.sh │ │ ├── 10_filtre.sh │ │ ├── 10_update_pbf.sh │ │ ├── 20_update.sh │ │ ├── 30_restart_webserver.sh │ │ ├── apache.site │ │ ├── crontab.osh.sh │ │ ├── crontab.sh │ │ ├── fr-metropolitaine.png │ │ ├── france.png │ │ ├── france.poly │ │ ├── key-source-valide.txt │ │ ├── mise-a-jour.sh │ │ ├── remove-metadata.sh │ │ ├── remove-not-in-france.sh │ │ ├── remove-source.sh │ │ ├── sudoers │ │ └── taginfo-config.json │ ├── handlers │ │ └── main.yml │ └── tasks │ │ └── main.yml ├── umap │ └── files │ │ └── anonymous_edit_url.sh ├── unattended-upgrades │ ├── files │ │ └── auto-upgrades │ └── tasks │ │ └── main.yml ├── wireguard │ ├── handlers │ │ └── main.yml │ ├── tasks │ │ ├── files │ │ │ ├── wireguard_reresolve-dns.service │ │ │ └── wireguard_reresolve-dns.timer │ │ └── main.yml │ └── templates │ │ ├── wireguard-client-wg0.conf │ │ └── wireguard-server-wg0.conf └── yeswiki │ ├── files │ └── apache.site │ ├── handlers │ └── main.yml │ └── tasks │ └── main.yml ├── shared ├── files │ ├── default.gitconfig │ └── default.vimrc ├── osmosis.yml └── project-account.yml ├── site.yml ├── sympa.yml ├── taginfo.yml ├── tools ├── add-vm.py ├── check-network.py └── modules │ └── gandi.py ├── unattended-upgrades.yml ├── wireguard.yml ├── wordpress.yml └── yeswiki.yml /.config/ansible-lint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | profile: production 3 | 4 | enable_list: 5 | - empty-string-compare 6 | - no-log-password 7 | - no-prompting 8 | - no-same-owner 9 | 10 | offline: true 11 | ... 12 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [*.py] 15 | indent_size = 4 16 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: [fork, pull_request, push] 4 | 5 | jobs: 6 | lint: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v4 12 | 13 | - name: Setup Python 14 | uses: actions/setup-python@v5 15 | with: 16 | cache: 'pip' 17 | 18 | - name: Install Python dependencies 19 | run: pip install -U -r requirements.txt 20 | 21 | - name: Run ansible-lint 22 | run: ansible-lint 23 | 24 | - name: Run Pylama 25 | run: pylama 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.retry 2 | .vscode/tags 3 | ansible_cache/ 4 | credentials/ 5 | public_keys/ 6 | cache/ 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "galaxy/ansible-role-storyteller"] 2 | path = galaxy/ansible-role-storyteller 3 | url = https://github.com/osm-fr/ansible-role-storyteller.git 4 | [submodule "galaxy/yedit"] 5 | path = galaxy/yedit 6 | url = https://github.com/kwoodson/yedit.git 7 | [submodule "galaxy/ansible-peertube"] 8 | path = galaxy/ansible-peertube 9 | url = https://github.com/osm-fr/ansible-peertube.git 10 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Placez vos paramètres dans ce fichier pour remplacer les paramètres par défaut et les paramètres utilisateur. 2 | { 3 | "files.associations": { 4 | "hosts": "properties", 5 | "*.yml": "ansible", 6 | "**/host_vars/*": "ansible", 7 | "**/group_vars/*": "ansible" 8 | }, 9 | "python.formatting.provider": "yapf" 10 | } 11 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | extends: default 2 | 3 | rules: 4 | line-length: 5 | max: 1000 6 | level: warning 7 | 8 | braces: 9 | max-spaces-inside: 1 10 | colons: 11 | max-spaces-after: 10 12 | commas: 13 | max-spaces-after: 40 14 | comments: 15 | ignore: | 16 | roles/ocitysmap/vars/main.yml 17 | roles/ocitysmap/tasks/main.yml 18 | comments-indentation: 19 | ignore: | 20 | roles/ocitysmap/tasks/main.yml 21 | document-start: disable 22 | truthy: 23 | allowed-values: ['true', 'false', 'True', 'False', 'yes', 'no'] 24 | -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Jocelyn Jaubert 2 | 3 | This program is free software; you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation; either version 2 of the License, or 6 | (at your option) any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License along 14 | with this program; if not, see . 15 | -------------------------------------------------------------------------------- /accounts.yml: -------------------------------------------------------------------------------- 1 | - name: Default configuration 2 | hosts: all 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - accounts 7 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | [ssh_connection] 2 | pipelining=True 3 | 4 | [defaults] 5 | ansible_managed="This file is managed by Ansible, do not edit directly" 6 | gathering = smart 7 | fact_caching = jsonfile 8 | fact_caching_connection = ansible_cache 9 | fact_caching_timeout = 86400 10 | roles_path = galaxy:galaxy/yedit/roles/ 11 | inventory = ./hosts 12 | interpreter_python = auto_silent 13 | -------------------------------------------------------------------------------- /backuppc-server.yml: -------------------------------------------------------------------------------- 1 | - name: backuppc-server configuration 2 | hosts: backuppc-server 3 | become: yes 4 | roles: 5 | - backuppc-server 6 | -------------------------------------------------------------------------------- /buildbot-master.yml: -------------------------------------------------------------------------------- 1 | - name: buildbot-master configuration 2 | hosts: buildbot-master 3 | become: yes 4 | roles: 5 | - buildbot-master 6 | -------------------------------------------------------------------------------- /buildbot-slave.yml: -------------------------------------------------------------------------------- 1 | - name: buildbot-slave configuration 2 | hosts: buildbot-slave 3 | become: yes 4 | roles: 5 | - buildbot-slave 6 | -------------------------------------------------------------------------------- /comcommaker.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: comcommaker 3 | hosts: comcommaker 4 | become: true 5 | roles: 6 | - comcommaker 7 | -------------------------------------------------------------------------------- /common.yml: -------------------------------------------------------------------------------- 1 | - name: default configuration 2 | hosts: all 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - common 7 | - accounts 8 | -------------------------------------------------------------------------------- /drupal.yml: -------------------------------------------------------------------------------- 1 | - name: drupal configuration 2 | hosts: drupal 3 | become: yes 4 | roles: 5 | - drupal 6 | -------------------------------------------------------------------------------- /export-cadastre.yml: -------------------------------------------------------------------------------- 1 | - name: export-cadastre configuration 2 | hosts: export-cadastre 3 | become: yes 4 | roles: 5 | - export-cadastre 6 | -------------------------------------------------------------------------------- /geoosm.yml: -------------------------------------------------------------------------------- 1 | - name: geoosm configuration 2 | hosts: geoosm 3 | become: yes 4 | roles: 5 | - geoosm 6 | -------------------------------------------------------------------------------- /group_vars/cluster-ovh: -------------------------------------------------------------------------------- 1 | # for proxycache 2 | proxy: 3 | - 4 | logname: "taginfo" 5 | websites: "taginfo.openstreetmap.fr dev.taginfo.openstreetmap.fr" 6 | target: "10.1.0.118" 7 | - 8 | logname: "osmma" 9 | websites: "tile.openstreetmap.ma dev.tile.openstreetmap.ma osmma.openstreetmap.fr" 10 | target: "10.1.0.125" 11 | - 12 | logname: "opendata.osmose" 13 | websites: "opendata.osmose.openstreetmap.fr" 14 | target: "10.1.0.128" 15 | - 16 | logname: "api-pic4carto" 17 | websites: "api-pic4carto.openstreetmap.fr" 18 | target: "10.1.0.145" 19 | 20 | -------------------------------------------------------------------------------- /group_vars/osm2pgsql/users_root: -------------------------------------------------------------------------------- 1 | group_users_root_osm2pgsql: 2 | - teslix 3 | -------------------------------------------------------------------------------- /group_vars/osmose-backend/users_root: -------------------------------------------------------------------------------- 1 | group_users_root_osmose_backend: 2 | - fred 3 | - marc_marc 4 | - teslix 5 | -------------------------------------------------------------------------------- /group_vars/osmose-frontend/users_root: -------------------------------------------------------------------------------- 1 | group_users_root_osmose_frontend: 2 | - fred 3 | - teslix 4 | -------------------------------------------------------------------------------- /group_vars/vm/users_root: -------------------------------------------------------------------------------- 1 | group_users_root_vm: 2 | - marc_marc 3 | -------------------------------------------------------------------------------- /group_vars/wireguard/wireguard_hosts: -------------------------------------------------------------------------------- 1 | wireguard_hosts: 2 | - download.geofabrik.de 3 | - github.com 4 | - 140.82.121.3 5 | - 140.82.121.4 6 | - centrodedescargas.cnig.es 7 | - taginfo.openstreetmap.org 8 | - o4504033570848768.ingest.sentry.io 9 | -------------------------------------------------------------------------------- /host_vars/adopte-une-commune.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm12.openstreetmap.fr 3 | cpus: 4 4 | disk: 50 5 | docker: 1 6 | hostname: adopte-une-commune.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c200:204 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.204/24,gw=10.0.0.12,ip6=2a01:e0d:1:c:58bf:fac1:c200:204/97,gw6=2a01:e0d:1:c:58bf:fac1:c200:12"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.0-1_amd64.tar.zst 12 | storage: "hdd-zfs" 13 | swap: 2048 14 | vmid: 204 15 | -------------------------------------------------------------------------------- /host_vars/adopte-une-commune.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - apavie 3 | -------------------------------------------------------------------------------- /host_vars/backuppc2.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 2 4 | disk: 800 5 | docker: 0 6 | hostname: backuppc2.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:184 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.184/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:184/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 2048 10 | ostemplate: debian-10-standard_10.7-1_amd64.tar.gz 11 | storage: "hdd-zfs" 12 | swap: 2048 13 | vmid: 184 14 | -------------------------------------------------------------------------------- /host_vars/bano.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 5 4 | disk: 200 5 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:162 6 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=192.168.0.162/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:162/97,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 7 | memory: 8192 8 | ostemplate: debian-10-standard_10.7-1_amd64.tar.gz 9 | storage: "sdd-zfs" 10 | swap: 2048 11 | vmid: 162 12 | -------------------------------------------------------------------------------- /host_vars/bano.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - vdct 3 | -------------------------------------------------------------------------------- /host_vars/batimap.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 3 4 | disk: 100 5 | docker: 1 6 | hostname: batimap.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:187 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.187/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:187/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 4096 10 | ostemplate: debian-10-standard_10.7-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 187 14 | -------------------------------------------------------------------------------- /host_vars/batimap.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - gpelloux 3 | -------------------------------------------------------------------------------- /host_vars/buildbot.osmose.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | hostname: buildbot.osmose.vm.openstreetmap.fr 6 | ipv6: 2001:41d0:1008:2c6b:1::175 7 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.175/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::175/97,gw6=2001:41d0:1008:2c6b:1::28"} 8 | memory: 1024 9 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 10 | storage: "hdd-sdd" 11 | swap: 2048 12 | vmid: 175 13 | -------------------------------------------------------------------------------- /host_vars/bzh202.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm27.openstreetmap.fr 3 | cpus: 8 4 | disk: 10 5 | docker: 0 6 | hostname: bzh202.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:1f84:1::202 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.202/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::202/97,gw6=2001:41d0:1008:1fff:ff:ff:ff:ff"} 10 | memory: 16384 11 | ostemplate: ubuntu-22.04-standard_22.04-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 0 14 | vmid: 202 15 | -------------------------------------------------------------------------------- /host_vars/bzh202.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - mael 3 | -------------------------------------------------------------------------------- /host_vars/cadastre-joker.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 1 4 | disk: 50 5 | docker: 1 6 | hostname: cadastre-joker.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:182 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.182/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:182/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 4096 10 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 182 14 | -------------------------------------------------------------------------------- /host_vars/cadastre-joker.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/cadastre.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 100 5 | hostname: cadastre.vm.openstreetmap.fr 6 | ipv6: 2001:41d0:1008:1f65:1::180 7 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.180/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::180/97,gw6=2001:41d0:1008:1f65:1::26"} 8 | memory: 4096 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "hdd-sdd" 11 | swap: 2048 12 | vmid: 180 13 | -------------------------------------------------------------------------------- /host_vars/cadastre.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - tyndare 3 | -------------------------------------------------------------------------------- /host_vars/comcommaker.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | hostname: comcommaker.vm.openstreetmap.fr 6 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:179 7 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=192.168.0.179/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:179/97,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 8 | memory: 1024 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "hdd-zfs" 11 | swap: 2048 12 | vmid: 179 13 | -------------------------------------------------------------------------------- /host_vars/comcommaker.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - gileri 3 | -------------------------------------------------------------------------------- /host_vars/commerces.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 1 4 | disk: 50 5 | docker: 1 6 | hostname: commerces.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:191 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.191/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:191/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 12288 10 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 191 14 | -------------------------------------------------------------------------------- /host_vars/commerces.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - panieravide 3 | -------------------------------------------------------------------------------- /host_vars/crm.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm41.openstreetmap.fr 3 | cpus: 2 4 | disk: 10 5 | docker: 0 6 | hostname: crm.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::216 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.216/24,gw=45.147.209.254", "net1": "name=eth1,bridge=vmbr0,ip6=2a06:c484:5::216/80,gw6=2a06:c484:5::"} 10 | memory: 4096 11 | ostemplate: debian-12-standard_12.7-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 216 15 | -------------------------------------------------------------------------------- /host_vars/crm.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - thibtib51 3 | -------------------------------------------------------------------------------- /host_vars/dev.download.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm44.openstreetmap.fr 3 | cpus: 16 4 | disk: 20 5 | docker: 0 6 | hostname: dev.download.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::215 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.215/24,gw=45.147.209.254", "net1": "name=eth1,bridge=vmbr0,ip6=2a06:c484:5::215/80,gw6=2a06:c484:5::"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.7-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 215 15 | -------------------------------------------------------------------------------- /host_vars/dev.osmose.vm.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: true 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/dev.osmose.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm41.openstreetmap.fr 3 | cpus: 4 4 | disk: 200 5 | docker: 0 6 | hostname: dev.osmose.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::210 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.210/24,gw=45.147.209.254", "net1": "name=eth1,bridge=vmbr0,ip6=2a06:c484:5::210/80,gw6=2a06:c484:5::"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "nvme-zfs" 13 | swap: 2048 14 | vmid: 210 15 | -------------------------------------------------------------------------------- /host_vars/dev.osmose.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/download.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 8 4 | disk: 600 5 | hostname: download.vm.openstreetmap.fr 6 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:171 7 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.171/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:171/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 8 | memory: 4096 9 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 10 | storage: "hdd-zfs" 11 | swap: 2048 12 | vmid: 171 13 | -------------------------------------------------------------------------------- /host_vars/download.vm.openstreetmap.fr/user_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/enedis.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm34.openstreetmap.fr 3 | cpus: 2 4 | disk: 100 5 | docker: 0 6 | hostname: enedis.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::193 8 | kvm: 1 9 | net: {"net0": "bridge=vmbr0", "net1": "bridge=vmbr1"} 10 | ipconfig: {"ipconfig0": "ip=10.1.0.193/24,gw=10.0.0.34", "ipconfig1": "ip6=2001:67c:1740:9031::193/128,gw6=2001:67c:1740:9031::1"} 11 | memory: 4096 12 | ostemplate: debian-11-genericcloud-amd64 13 | storage: "local-zfs" 14 | swap: 2048 15 | vmid: 193 16 | -------------------------------------------------------------------------------- /host_vars/enedis.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - flacombe 3 | -------------------------------------------------------------------------------- /host_vars/garmin.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | hostname: garmin.vm.openstreetmap.fr 6 | ipv6: 2001:41d0:1008:1f65:1::176 7 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.176/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::176/97,gw6=2001:41d0:1008:1f65:1::26"} 8 | memory: 1024 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "local-zfs" 11 | swap: 2048 12 | vmid: 176 13 | -------------------------------------------------------------------------------- /host_vars/garmin.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - jacques 3 | -------------------------------------------------------------------------------- /host_vars/geoosm.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm42.openstreetmap.fr 3 | cpus: 4 4 | disk: 300 5 | docker: 0 6 | hostname: geoosm.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::214 8 | kvm: 1 9 | net: {"net0": "bridge=vmbr0", "net1": "bridge=vmbr0"} 10 | ipconfig: {"ipconfig0": "ip=10.1.0.214/8,gw=45.147.209.254", "ipconfig1": "ip6=2a06:c484:5::214/64,gw6=2a06:c484:5::"} 11 | memory: 32768 12 | ostemplate: debian-12-genericcloud-amd64 13 | storage: "local-zfs" 14 | swap: 2048 15 | vmid: 214 16 | -------------------------------------------------------------------------------- /host_vars/geoosm.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - karl 3 | - lafeychine 4 | -------------------------------------------------------------------------------- /host_vars/geovisio.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm33.openstreetmap.fr 3 | cpus: 3 4 | disk: 100 5 | docker: 0 6 | hostname: geovisio.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::197 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.197/24,gw=10.0.0.33", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::197/128,gw6=2001:67c:1740:9031::1"} 10 | memory: 4096 11 | ostemplate: debian-11-standard_11.3-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 197 15 | -------------------------------------------------------------------------------- /host_vars/geovisio.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - panieravide 3 | -------------------------------------------------------------------------------- /host_vars/layers.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm12.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | docker: 0 6 | hostname: layers.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c200:190 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.190/24,gw=10.0.0.12,ip6=2a01:e0d:1:c:58bf:fac1:c200:190/97,gw6=2a01:e0d:1:c:58bf:fac1:c200:12"} 9 | memory: 4096 10 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 190 14 | -------------------------------------------------------------------------------- /host_vars/live.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.132/24,gw=10.0.0.27"} 6 | memory: 4096 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 4096 10 | vmid: 132 11 | -------------------------------------------------------------------------------- /host_vars/localdb.osmose.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm41.openstreetmap.fr 3 | cpus: 4 4 | disk: 350 5 | docker: 0 6 | hostname: localdb.osmose.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::209 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.209/24,gw=45.147.209.254", "net1": "name=eth1,bridge=vmbr0,ip6=2a06:c484:5::209/80,gw6=2a06:c484:5::"} 10 | memory: 8192 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "nvme-zfs" 13 | swap: 2048 14 | vmid: 209 15 | -------------------------------------------------------------------------------- /host_vars/localdb.osmose.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - flacombe 3 | - fred 4 | -------------------------------------------------------------------------------- /host_vars/mapcontrib.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 1 4 | disk: 50 5 | docker: 1 6 | hostname: mapcontrib.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:185 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.185/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:185/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 2048 10 | ostemplate: debian-10-standard_10.7-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 185 14 | -------------------------------------------------------------------------------- /host_vars/mapcontrib.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/matrix.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | docker: 0 6 | hostname: matrix.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:2c6b:1::195 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.195/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::195/97,gw6=2001:41d0:1008:2cff:ff:ff:ff:ff"} 10 | memory: 1024 11 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 195 15 | -------------------------------------------------------------------------------- /host_vars/mobilizon.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | hostname: mobilizon.vm.openstreetmap.fr 6 | ipv6: 2001:41d0:1008:1f65:1::181 7 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.181/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::181/97,gw6=2001:41d0:1008:1f65:1::26"} 8 | memory: 2048 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "local-zfs" 11 | swap: 2048 12 | vmid: 181 13 | -------------------------------------------------------------------------------- /host_vars/mobilizon.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | - pyrog 4 | - tykayn 5 | -------------------------------------------------------------------------------- /host_vars/notes-heatmap.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | docker: 0 6 | hostname: notes-heatmap.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:2c6b:1::194 8 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.194/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::194/97,gw6=2001:41d0:1008:2cff:ff:ff:ff:ff"} 9 | memory: 2048 10 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 11 | storage: "local-zfs" 12 | swap: 2048 13 | vmid: 194 14 | -------------------------------------------------------------------------------- /host_vars/notes-heatmap.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - cgiquello 3 | -------------------------------------------------------------------------------- /host_vars/osm11.openstreetmap.fr/proxy: -------------------------------------------------------------------------------- 1 | # for proxycache 2 | host_proxy: 3 | - 4 | logname: "tile" 5 | websites: "dev.tile.openstreetmap.fr dev.a.tile.openstreetmap.fr dev.b.tile.openstreetmap.fr dev.c.tile.openstreetmap.fr" 6 | target: "192.168.0.166" 7 | config_src: "nginx-site-cyclosm.j2" 8 | 9 | -------------------------------------------------------------------------------- /host_vars/osm11.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/osm110.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: true 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osm12.openstreetmap.fr/letsencrypt_proxy: -------------------------------------------------------------------------------- 1 | letsencrypt_proxy: 2 | - osm117.openstreetmap.fr 3 | - osm124.openstreetmap.fr 4 | -------------------------------------------------------------------------------- /host_vars/osm12.openstreetmap.fr/proxy: -------------------------------------------------------------------------------- 1 | # for proxycache 2 | host_proxy: 3 | - 4 | logname: "layers" 5 | websites: "layers.openstreetmap.fr tile.openstreetmap.fr" 6 | target: "10.1.0.190" 7 | -------------------------------------------------------------------------------- /host_vars/osm13.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | -------------------------------------------------------------------------------- /host_vars/osm133.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 4 4 | disk: 1000 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.133/24,gw=10.0.0.27"} 6 | memory: 8192 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 8192 10 | vmid: 133 11 | -------------------------------------------------------------------------------- /host_vars/osm134.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.134/24,gw=10.0.0.28"} 6 | memory: 2048 7 | # mounts: {"mp0": "/media/sdd1/fs/134/data,mp=/data,size=0"} # should be added manually to config 8 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 134 12 | -------------------------------------------------------------------------------- /host_vars/osm135.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.135/24,gw=10.0.0.27"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 135 11 | -------------------------------------------------------------------------------- /host_vars/osm136.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.136/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::136/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 1048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 1048 10 | vmid: 136 11 | -------------------------------------------------------------------------------- /host_vars/osm137.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 5 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.137/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::137/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 137 11 | -------------------------------------------------------------------------------- /host_vars/osm138.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.138/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::138/80,gw6=2001:41d0:1008:1f84:1::27"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 138 11 | -------------------------------------------------------------------------------- /host_vars/osm138.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | -------------------------------------------------------------------------------- /host_vars/osm139.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.139/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::139/80,gw6=2001:41d0:1008:1f84:1::27"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 139 11 | -------------------------------------------------------------------------------- /host_vars/osm141.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.141/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::141/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 141 11 | -------------------------------------------------------------------------------- /host_vars/osm142.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.142/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::142/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 2048 7 | ostemplate: debian-9.0-standard_9.0-2_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 142 11 | -------------------------------------------------------------------------------- /host_vars/osm142.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - jacques 3 | -------------------------------------------------------------------------------- /host_vars/osm142.openstreetmap.fr/wordpress: -------------------------------------------------------------------------------- 1 | storyteller_hostname: "next.openstreetmap.fr" 2 | storyteller_wp_path: "/data/project/wordpress/" 3 | storyteller_wp_user: "wordpress" 4 | storyteller_wp_file: "wordpress-4.8.2.tar.gz" 5 | storyteller_wp_sha256sum: "c2c65d156e1f3f1d81bbb61a4bb7267b108a09130d46d33b9b9c6b2e93e16752" 6 | storyteller_wp_cli: "yes" 7 | -------------------------------------------------------------------------------- /host_vars/osm144.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 500 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.144/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::144/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 4096 7 | ostemplate: ubuntu-18.04-standard_18.04-1_amd64.tar.gz 8 | storage: "hdd-sdd" 9 | swap: 2048 10 | vmid: 144 11 | -------------------------------------------------------------------------------- /host_vars/osm144.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | - ybon 4 | -------------------------------------------------------------------------------- /host_vars/osm145.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 3 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.145/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::145/80,gw6=2001:41d0:1008:1f84:1::27"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.6-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 145 11 | -------------------------------------------------------------------------------- /host_vars/osm146.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 4 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.146/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::146/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 4096 7 | ostemplate: debian-8.0-standard_8.6-1_amd64.tar.gz 8 | storage: "ceph" 9 | swap: 2048 10 | vmid: 146 11 | -------------------------------------------------------------------------------- /host_vars/osm147.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.147/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::147/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 16384 7 | ostemplate: debian-9.0-standard_9.0-2_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 147 11 | -------------------------------------------------------------------------------- /host_vars/osm147.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - jacques 3 | -------------------------------------------------------------------------------- /host_vars/osm148.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.148/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::148/80,gw6=2001:41d0:1008:1f65:1::26"} 6 | memory: 16384 7 | ostemplate: debian-9.0-standard_9.0-2_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 148 11 | -------------------------------------------------------------------------------- /host_vars/osm148.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - jacques 3 | -------------------------------------------------------------------------------- /host_vars/osm149.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.149/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::149/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 8192 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 149 11 | -------------------------------------------------------------------------------- /host_vars/osm149.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - thrrp 3 | - cormoran 4 | -------------------------------------------------------------------------------- /host_vars/osm151.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 50 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.151/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::151/80,gw6=2001:41d0:1008:1f84:1::27"} 6 | memory: 8192 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 16384 10 | vmid: 151 11 | -------------------------------------------------------------------------------- /host_vars/osm151.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - lcombe 3 | -------------------------------------------------------------------------------- /host_vars/osm152.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.152/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::152/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 8192 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 152 11 | -------------------------------------------------------------------------------- /host_vars/osm152.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - thrrp 3 | - cormoran 4 | -------------------------------------------------------------------------------- /host_vars/osm153.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 2 4 | disk: 60 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.153/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::153/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 8192 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 153 11 | -------------------------------------------------------------------------------- /host_vars/osm153.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | - marc_marc 4 | -------------------------------------------------------------------------------- /host_vars/osm154.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 5 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.154/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::154/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 1024 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 1024 10 | vmid: 154 11 | -------------------------------------------------------------------------------- /host_vars/osm154.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - juliep 3 | -------------------------------------------------------------------------------- /host_vars/osm157.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.157/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::157/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 1024 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "hdd-sdd" 9 | swap: 1024 10 | vmid: 157 11 | -------------------------------------------------------------------------------- /host_vars/osm157.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - cgiquello 3 | -------------------------------------------------------------------------------- /host_vars/osm158.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 30 5 | ipv6: 2001:41d0:1008:2c6b:1::158 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.158/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::158/80,gw6=2001:41d0:1008:2c6b:1::28"} 7 | memory: 4096 8 | ostemplate: debian-9.0-standard_9.7-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 1024 11 | vmid: 158 12 | -------------------------------------------------------------------------------- /host_vars/osm160.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 50 5 | ipv6: 2001:41d0:1008:2c6b:1::160 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.0.0.160/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::160/80,gw6=2001:41d0:1008:2c6b:1::28"} 7 | memory: 1024 8 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 160 12 | -------------------------------------------------------------------------------- /host_vars/osm160.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - mael 3 | -------------------------------------------------------------------------------- /host_vars/osm163.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osm164.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | ipv6: 2001:41d0:1008:2c6b:1::164 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.164/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::164/80,gw6=2001:41d0:1008:2c6b:1::28"} 7 | memory: 1024 8 | ostemplate: debian-9.0-standard_9.7-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 164 12 | -------------------------------------------------------------------------------- /host_vars/osm165.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 12 4 | disk: 10 5 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:165 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=192.168.0.165/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:165/80,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 7 | memory: 128000 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "hdd-zfs" 10 | # mounts: '{"mp0": "/ssd-nvme/165,mp=/ssd-nvme,replicate=0,backup=0", "mp1": "/ssd-sata/165,mp=/ssd-sata,replicate=0,backup=0", "mp2": "/hdd-zfs/shared,mp=/data/shared,ro=1,shared=1" }' 11 | swap: 2048 12 | vmid: 165 13 | -------------------------------------------------------------------------------- /host_vars/osm165.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/osm166.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 16 4 | disk: 16 5 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:166 6 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=192.168.0.166/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:166/80,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 7 | memory: 32768 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "hdd-zfs" 10 | swap: 2048 11 | vmid: 166 12 | -------------------------------------------------------------------------------- /host_vars/osm167.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 2 4 | disk: 100 5 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:167 6 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=10.1.0.167/24,gw=10.0.0.11,ip6=2a01:e0d:1:c:58bf:fac1:c000:167/80,gw6=2a01:e0d:1:c:58bf:fac1:c000:11"} 7 | memory: 4096 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "hdd-zfs" 10 | swap: 2048 11 | vmid: 167 12 | -------------------------------------------------------------------------------- /host_vars/osm167.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - bristow 3 | - lafeychine 4 | -------------------------------------------------------------------------------- /host_vars/osm169.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | ipv6: 2001:41d0:1008:2c6b:1::169 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.169/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::169/97,gw6=2001:41d0:1008:2c6b:1::28"} 7 | memory: 1024 8 | ostemplate: ubuntu-18.04-standard_18.04.1-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 2048 11 | vmid: 169 12 | -------------------------------------------------------------------------------- /host_vars/osm170.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 20 5 | ipv6: 2001:41d0:1008:1f65:1::170 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.170/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::170/97,gw6=2001:41d0:1008:1f65:1::26"} 7 | memory: 2048 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 170 12 | -------------------------------------------------------------------------------- /host_vars/osm170.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - cormoran 3 | -------------------------------------------------------------------------------- /host_vars/osm173.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | hostname: osm173.openstreetmap.fr 6 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:173 7 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=192.168.0.173/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:173/97,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 8 | memory: 1024 9 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 10 | storage: "hdd-zfs" 11 | swap: 64 12 | vmid: 173 13 | -------------------------------------------------------------------------------- /host_vars/osm173.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osm205.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osm206.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osm207.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osm208.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.208/24,gw=10.0.0.26"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 208 11 | -------------------------------------------------------------------------------- /host_vars/osm209.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.209/24,gw=10.0.0.27"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 209 11 | -------------------------------------------------------------------------------- /host_vars/osm210.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | netif: {"0": "name=eth0,bridge=vmbr0,ip=10.1.0.210/24,gw=10.0.0.28"} 6 | memory: 2048 7 | ostemplate: debian-8.0-standard_8.4-1_amd64.tar.gz 8 | storage: "local" 9 | swap: 2048 10 | vmid: 210 11 | -------------------------------------------------------------------------------- /host_vars/osm211.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osm211.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm29.openstreetmap.fr 3 | cpus: 24 4 | disk: 210 5 | ipv6: 2a00:1788:100:109::211 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.42.109.211/24,gw=10.42.109.1,ip6=2a00:1788:100:109::211/80,gw6=2a00:1788:100:109::1"} 7 | memory: 43008 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 0 11 | vmid: 211 12 | -------------------------------------------------------------------------------- /host_vars/osm212.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osm212.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm30.openstreetmap.fr 3 | cpus: 24 4 | disk: 210 5 | ipv6: 2a00:1788:100:109::212 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.42.109.212/24,gw=10.42.109.1,ip6=2a00:1788:100:109::212/80,gw6=2a00:1788:100:109::1"} 7 | memory: 43008 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 0 11 | vmid: 212 12 | -------------------------------------------------------------------------------- /host_vars/osm213.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osm213.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm31.openstreetmap.fr 3 | cpus: 20 4 | disk: 210 5 | ipv6: 2a00:1788:100:109::213 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.42.109.213/24,gw=10.42.109.1,ip6=2a00:1788:100:109::213/80,gw6=2a00:1788:100:109::1"} 7 | memory: 36000 8 | ostemplate: debian-10.0-standard_10.0-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 2048 11 | vmid: 213 12 | -------------------------------------------------------------------------------- /host_vars/osm235.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm31.openstreetmap.fr 3 | cpus: 24 4 | disk: 500 5 | ipv6: 2a00:1788:100:109::235 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.42.109.235/24,gw=10.42.109.1,ip6=2a00:1788:100:109::235/80,gw6=2a00:1788:100:109::1"} 7 | memory: 43008 8 | ostemplate: debian-9.0-standard_9.7-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 2048 11 | vmid: 235 12 | -------------------------------------------------------------------------------- /host_vars/osm25.openstreetmap.fr/proxy: -------------------------------------------------------------------------------- 1 | proxy: 2 | - 3 | logname: "openstreetmap.bzh" 4 | # websites: "teol.openstreetmap.bzh tile.openstreetmap.bzh api.openstreetmap.bzh stats.openstreetmap.bzh" 5 | websites: "teol.openstreetmap.bzh tile.openstreetmap.bzh stats.openstreetmap.bzh" 6 | target: "10.1.0.202" 7 | - 8 | logname: "monit.tile.openstreetmap.bzh" 9 | websites: "monit.tile.openstreetmap.bzh" 10 | target: "10.1.0.202" 11 | target_port: "2812" 12 | config_src: "nginx-site-port.j2" 13 | - 14 | logname: "kosmtik.openstreetmap.bzh" 15 | websites: "kosmtik.openstreetmap.bzh" 16 | target: "10.1.0.202" 17 | target_port: "6789" 18 | config_src: "nginx-site-port.j2" 19 | -------------------------------------------------------------------------------- /host_vars/osm25.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | -------------------------------------------------------------------------------- /host_vars/osm26.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | - teslix 4 | -------------------------------------------------------------------------------- /host_vars/osm27.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | - teslix 4 | -------------------------------------------------------------------------------- /host_vars/osm28.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - marc_marc 3 | - teslix 4 | -------------------------------------------------------------------------------- /host_vars/osm29.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/osm2pgsql-bzh.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm35.openstreetmap.fr 3 | cpus: 24 4 | disk: 1024 5 | docker: 0 6 | hostname: osm2pgsqsl-bzh.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::208 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.208/24,gw=10.0.0.35", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::208/80,gw6=2001:67c:1740:9031::1"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "nvme-zfs" 13 | swap: 2048 14 | vmid: 208 15 | -------------------------------------------------------------------------------- /host_vars/osm2pgsql-cyclosm.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm36.openstreetmap.fr 3 | cpus: 24 4 | disk: 1024 5 | docker: 0 6 | hostname: osm2pgsqsl-cyclosm.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::207 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.207/24,gw=10.0.0.36", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::207/80,gw6=2001:67c:1740:9031::1"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "nvme-zfs" 13 | swap: 2048 14 | vmid: 207 15 | -------------------------------------------------------------------------------- /host_vars/osm30.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/osm300.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 200 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.3.0/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::300/80,gw6=2001:41d0:1008:1f84:1::27"} 6 | memory: 8192 7 | ostemplate: ubuntu-16.04-standard_16.04-1_amd64.tar.gz 8 | storage: "hdd-sdd" 9 | swap: 16384 10 | vmid: 300 11 | -------------------------------------------------------------------------------- /host_vars/osm300.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - don-vip 3 | -------------------------------------------------------------------------------- /host_vars/osm303.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | ipv6: 2001:41d0:1008:1f65:1::303 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.1.47/24,gw=10.0.0.26,ip6=2001:41d0:1008:1f65:1::303/80,gw6=2001:41d0:1008:1f65:1::26"} 7 | memory: 1024 8 | ostemplate: debian-9.0-standard_9.5-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 303 12 | -------------------------------------------------------------------------------- /host_vars/osm303.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - cormoran 3 | -------------------------------------------------------------------------------- /host_vars/osm31.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/osm324.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | ipv6: 2001:41d0:1008:2c6b:1::324 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.1.68/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::324/80,gw6=2001:41d0:1008:2c6b:1::28"} 7 | memory: 1024 8 | ostemplate: debian-9.0-standard_9.7-1_amd64.tar.gz 9 | storage: "hdd-sdd" 10 | swap: 2048 11 | vmid: 324 12 | -------------------------------------------------------------------------------- /host_vars/osmose-aquilenet.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osmose-hivane1.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: false 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osmose-hivane2.openstreetmap.fr/postgres: -------------------------------------------------------------------------------- 1 | zfs: false 2 | ssd: false 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osmose-jupyter.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 1 4 | disk: 50 5 | hostname: osmose-jupyter.vm.openstreetmap.fr 6 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:178 7 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.178/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:178/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 8 | memory: 1024 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "hdd-zfs" 11 | swap: 2048 12 | vmid: 178 13 | -------------------------------------------------------------------------------- /host_vars/osmose-jupyter.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/osmose.vm.openstreetmap.fr/wireguard: -------------------------------------------------------------------------------- 1 | wireguard_clients: 2 | - osmose-aquilenet.openstreetmap.fr 3 | - osmose-hivane1.openstreetmap.fr 4 | - osmose-hivane2.openstreetmap.fr 5 | -------------------------------------------------------------------------------- /host_vars/osmose1.davintech.ca/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: true 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/osmose2.davintech.ca/postgres: -------------------------------------------------------------------------------- 1 | zfs: true 2 | ssd: true 3 | synchronous_commit: "off" 4 | -------------------------------------------------------------------------------- /host_vars/peertube.vm.openstreetmap.fr/peertube: -------------------------------------------------------------------------------- 1 | peertube_tld: peertube.openstreetmap.fr 2 | peertube_proxy_handle_https: 'yes' 3 | peertube_proxy_ips: [10.0.0.26, 10.0.0.27, 10.0.0.28] 4 | peertube_user_path: /data/project/peertube 5 | -------------------------------------------------------------------------------- /host_vars/peertube.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm26.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.155/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::155/80,gw6=2001:41d0:1008:2c6b:1::28"} 6 | memory: 1024 7 | ostemplate: debian-9.0-standard_9.3-1_amd64.tar.gz 8 | storage: "hdd-sdd" 9 | swap: 1024 10 | vmid: 155 11 | -------------------------------------------------------------------------------- /host_vars/pic4review.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 4 4 | disk: 50 5 | ipv6: 2001:41d0:1008:1f84:1::168 6 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.168/24,gw=10.0.0.28,ip6=2001:41d0:1008:1f84:1::168/97,gw6=2001:41d0:1008:1f84:1::27"} 7 | memory: 8192 8 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 9 | storage: "local-zfs" 10 | swap: 512 11 | vmid: 168 12 | -------------------------------------------------------------------------------- /host_vars/pic4review.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - panieravide 3 | -------------------------------------------------------------------------------- /host_vars/pleinair.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm27.openstreetmap.fr 3 | cpus: 2 4 | disk: 150 5 | docker: 0 6 | hostname: pleinair.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:1f84:1::201 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.201/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::201/97,gw6=2001:41d0:1008:1fff:ff:ff:ff:ff"} 10 | memory: 4096 11 | ostemplate: debian-12-standard_12.0-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 201 15 | -------------------------------------------------------------------------------- /host_vars/pleinair.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - pyrog 3 | - stephanec 4 | -------------------------------------------------------------------------------- /host_vars/postgres-free.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm12.openstreetmap.fr 3 | cpus: 4 4 | disk: 50 5 | docker: 1 6 | hostname: postgres-free.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c200:203 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.203/24,gw=10.0.0.12,ip6=2a01:e0d:1:c:58bf:fac1:c200:203/97,gw6=2a01:e0d:1:c:58bf:fac1:c200:12"} 10 | memory: 16384 11 | ostemplate: debian-12-standard_12.0-1_amd64.tar.zst 12 | storage: "hdd-zfs" 13 | swap: 2048 14 | vmid: 203 15 | -------------------------------------------------------------------------------- /host_vars/postgres-free.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - apavie 3 | -------------------------------------------------------------------------------- /host_vars/postgres-ovh.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm27.openstreetmap.fr 3 | cpus: 4 4 | disk: 300 5 | docker: 0 6 | hostname: postgres-ovh.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:1f84:1::200 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.200/24,gw=10.0.0.27,ip6=2001:41d0:1008:1f84:1::200/97,gw6=2001:41d0:1008:1fff:ff:ff:ff:ff"} 10 | memory: 4096 11 | ostemplate: debian-12-standard_12.0-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 200 15 | -------------------------------------------------------------------------------- /host_vars/postgres-ovh.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - teslix 3 | -------------------------------------------------------------------------------- /host_vars/proxy-free.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | docker: 0 6 | hostname: proxy-free.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:192 8 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.192/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:192/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 9 | memory: 1024 10 | ostemplate: debian-11-standard_11.0-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 192 14 | -------------------------------------------------------------------------------- /host_vars/proxy.osmose.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm34.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | docker: 0 6 | hostname: proxy.osmose.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::196 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.196/24,gw=10.0.0.34", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::196/128,gw6=2001:67c:1740:9031::1"} 10 | memory: 2048 11 | ostemplate: debian-11-standard_11.3-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 196 15 | -------------------------------------------------------------------------------- /host_vars/proxy.osmose.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | -------------------------------------------------------------------------------- /host_vars/proxy.ovh.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm28.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | docker: 0 6 | hostname: proxy.ovh.vm.openstreetmap.fr 7 | ipv6: 2001:41d0:1008:2c6b:1::198 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.198/24,gw=10.0.0.28,ip6=2001:41d0:1008:2c6b:1::198/97,gw6=2001:41d0:1008:2cff:ff:ff:ff:ff"} 10 | memory: 1024 11 | ostemplate: debian-11-standard_11.6-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 198 15 | -------------------------------------------------------------------------------- /host_vars/proxy.th3.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm33.openstreetmap.fr 3 | cpus: 1 4 | disk: 10 5 | docker: 0 6 | hostname: proxy.th3.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031:1::103 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=193.200.42.123/28,gw=193.200.42.113,ip6=2001:67c:1740:9031:1::103/64,gw6=2001:67c:1740:9031::1", "net1": "name=eth1,bridge=vmbr0,ip=10.1.0.103/24"} 10 | memory: 2048 11 | ostemplate: debian-11-standard_11.6-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 103 15 | -------------------------------------------------------------------------------- /host_vars/renderd-bzh.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm35.openstreetmap.fr 3 | cpus: 8 4 | disk: 100 5 | docker: 0 6 | hostname: renderd-bzh.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::206 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.206/24,gw=10.0.0.35", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::206/80,gw6=2001:67c:1740:9031::1"} 10 | memory: 16000 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 206 15 | -------------------------------------------------------------------------------- /host_vars/renderd-bzh.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - mael 3 | -------------------------------------------------------------------------------- /host_vars/renderd-cyclosm.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm36.openstreetmap.fr 3 | cpus: 16 4 | disk: 100 5 | docker: 0 6 | hostname: renderd-cyclosm.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::205 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.205/24,gw=10.0.0.36", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::205/80,gw6=2001:67c:1740:9031::1"} 10 | memory: 65536 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 205 15 | -------------------------------------------------------------------------------- /host_vars/renderd-cyclosm.vm.openstreetmap.fr/renderd: -------------------------------------------------------------------------------- 1 | renderd_serveralias: dev.cyclosm.openstreetmap.fr 2 | -------------------------------------------------------------------------------- /host_vars/renderd-cyclosm.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - phyks 3 | -------------------------------------------------------------------------------- /host_vars/stable-data.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm11.openstreetmap.fr 3 | cpus: 1 4 | disk: 100 5 | docker: 0 6 | hostname: stable-data.vm.openstreetmap.fr 7 | ipv6: 2a01:e0d:1:c:58bf:fac1:8000:183 8 | netif: {"net0": "name=eth0,bridge=vmbr1,ip=192.168.0.183/24,gw=192.168.0.254,ip6=2a01:e0d:1:c:58bf:fac1:8000:183/97,gw6=2a01:e0d:1:c:58bf:fac1:8000:11"} 9 | memory: 8196 10 | ostemplate: debian-10-standard_10.7-1_amd64.tar.gz 11 | storage: "ssd-zfs" 12 | swap: 2048 13 | vmid: 183 14 | -------------------------------------------------------------------------------- /host_vars/taginfo.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm41.openstreetmap.fr 3 | cpus: 4 4 | disk: 20 5 | docker: 0 6 | hostname: taginfo.vm.openstreetmap.fr 7 | ipv6: 2a06:c484:5::119 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.119/24,gw=45.147.209.254", "net1": "name=eth1,bridge=vmbr0,ip6=2a06:c484:5::119/80,gw6=2a06:c484:5::"} 10 | memory: 32768 11 | ostemplate: debian-12-standard_12.2-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 119 15 | -------------------------------------------------------------------------------- /host_vars/tile-vect.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm14.openstreetmap.fr 3 | cpus: 4 4 | disk: 10 5 | hostname: tile-vect.vm.openstreetmap.fr 6 | ipv6: 2a01:e0d:1:c:58bf:fac1:c400:177 7 | netif: {"net0": "name=eth0,bridge=vmbr2,ip=10.1.0.177/24,gw=10.0.0.14,ip6=2a01:e0d:1:c:58bf:fac1:c400:177/97,gw6=2a01:e0d:1:c:58bf:fac1:c400:14"} 8 | memory: 8192 9 | ostemplate: debian-10-standard_10.5-1_amd64.tar.gz 10 | storage: "hdd-zfs" 11 | swap: 2048 12 | vmid: 177 13 | -------------------------------------------------------------------------------- /host_vars/tile-vect.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - fred 3 | - lefuturiste 4 | -------------------------------------------------------------------------------- /host_vars/umap.vm.openstreetmap.fr/proxmox: -------------------------------------------------------------------------------- 1 | proxmox_var: 2 | host: osm34.openstreetmap.fr 3 | cpus: 1 4 | disk: 600 5 | docker: 0 6 | hostname: umap.vm.openstreetmap.fr 7 | ipv6: 2001:67c:1740:9031::199 8 | kvm: 0 9 | netif: {"net0": "name=eth0,bridge=vmbr0,ip=10.1.0.199/24,gw=10.0.0.34", "net1": "name=eth1,bridge=vmbr1,ip6=2001:67c:1740:9031::199/80,gw6=2001:67c:1740:9031::1"} 10 | memory: 8192 11 | ostemplate: ubuntu-22.04-standard_22.04-1_amd64.tar.zst 12 | storage: "local-zfs" 13 | swap: 2048 14 | vmid: 199 15 | -------------------------------------------------------------------------------- /host_vars/umap.vm.openstreetmap.fr/users_root: -------------------------------------------------------------------------------- 1 | users_root: 2 | - ybon 3 | - teslix 4 | -------------------------------------------------------------------------------- /layers.openstreetmap.fr.yml: -------------------------------------------------------------------------------- 1 | - name: layers.openstreetmap.fr OL website configuration 2 | hosts: layers.openstreetmap.fr 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - layers.openstreetmap.fr 7 | -------------------------------------------------------------------------------- /letsencrypt.yml: -------------------------------------------------------------------------------- 1 | - name: letsencrypt configuration 2 | hosts: letsencrypt 3 | become: yes 4 | roles: 5 | - letsencrypt 6 | -------------------------------------------------------------------------------- /live.yml: -------------------------------------------------------------------------------- 1 | - name: live configuration 2 | hosts: live 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - live 7 | -------------------------------------------------------------------------------- /munin-server.yml: -------------------------------------------------------------------------------- 1 | - name: munin-server configuration 2 | hosts: munin-server 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - munin-server 7 | -------------------------------------------------------------------------------- /nextcloud.yml: -------------------------------------------------------------------------------- 1 | - name: nextcloud configuration 2 | hosts: nextcloud 3 | become: yes 4 | roles: 5 | - nextcloud 6 | -------------------------------------------------------------------------------- /ocitysmap.yml: -------------------------------------------------------------------------------- 1 | - name: ocitysmap.yml 2 | hosts: ocitysmap 3 | roles: 4 | - role: ocitysmap 5 | when: 6 | - ansible_distribution_release == "stretch" 7 | become: yes 8 | -------------------------------------------------------------------------------- /osm2pgsql.yml: -------------------------------------------------------------------------------- 1 | - name: Configure osm2pgsql 2 | hosts: osm2pgsql 3 | become: yes 4 | roles: 5 | - osm2pgsql 6 | -------------------------------------------------------------------------------- /osmbin.yml: -------------------------------------------------------------------------------- 1 | - name: osmbin configuration 2 | hosts: osmbin 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - osmbin 7 | -------------------------------------------------------------------------------- /osmose-backend.yml: -------------------------------------------------------------------------------- 1 | - name: osmose-backend configuration 2 | hosts: osmose-backend 3 | become: yes 4 | roles: 5 | - osmose-backend 6 | -------------------------------------------------------------------------------- /osmose-frontend.yml: -------------------------------------------------------------------------------- 1 | - name: osmose-frontend configuration 2 | hosts: osmose-frontend 3 | gather_facts: yes 4 | become: yes 5 | roles: 6 | - osmose-frontend 7 | -------------------------------------------------------------------------------- /osmosis.yml: -------------------------------------------------------------------------------- 1 | - name: osmosis configuration 2 | hosts: osmosis 3 | become: yes 4 | roles: 5 | - osmosis 6 | -------------------------------------------------------------------------------- /overpass-api.yml: -------------------------------------------------------------------------------- 1 | - name: overpass-api.yml 2 | hosts: overpass-api 3 | roles: 4 | - role: overpass-api 5 | when: 6 | - overpass_version != "skip" 7 | - ansible_distribution_release == "stretch" 8 | become: yes 9 | -------------------------------------------------------------------------------- /peertube.yml: -------------------------------------------------------------------------------- 1 | - name: peertube configuration 2 | hosts: peertube 3 | become: yes 4 | roles: 5 | - yedit 6 | - ansible-peertube 7 | -------------------------------------------------------------------------------- /polygons.yml: -------------------------------------------------------------------------------- 1 | - name: polygons configuration 2 | hosts: polygons 3 | become: yes 4 | roles: 5 | - polygons 6 | -------------------------------------------------------------------------------- /postgresql.yml: -------------------------------------------------------------------------------- 1 | - name: postgresql configuration 2 | hosts: postgresql 3 | become: yes 4 | roles: 5 | - postgresql 6 | -------------------------------------------------------------------------------- /proxmox-backup.yml: -------------------------------------------------------------------------------- 1 | - name: proxmox-backup configuration 2 | hosts: proxmox-backup 3 | become: yes 4 | roles: 5 | - proxmox-backup 6 | -------------------------------------------------------------------------------- /proxmox-mail-gateway.yml: -------------------------------------------------------------------------------- 1 | - name: proxmox-mail-gateway configuration 2 | hosts: proxmox-mail-gateway 3 | become: yes 4 | roles: 5 | - proxmox-mail-gateway 6 | -------------------------------------------------------------------------------- /proxycache.yml: -------------------------------------------------------------------------------- 1 | - name: proxycache configuration 2 | hosts: proxycache 3 | become: yes 4 | roles: 5 | - proxycache 6 | -------------------------------------------------------------------------------- /pylama.ini: -------------------------------------------------------------------------------- 1 | [pylama] 2 | skip = galaxy/* 3 | ignore = E111,E121,E221,E501,C901 4 | max_line_length = 160 5 | -------------------------------------------------------------------------------- /rawedit.yml: -------------------------------------------------------------------------------- 1 | - name: rawedit configuration 2 | hosts: rawedit 3 | become: yes 4 | roles: 5 | - rawedit 6 | -------------------------------------------------------------------------------- /renderd.yml: -------------------------------------------------------------------------------- 1 | - name: renderd configuration 2 | hosts: renderd 3 | become: yes 4 | roles: 5 | - renderd 6 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | ansible ~= 8.0 2 | ansible-lint ~= 6.0 3 | proxmoxer ~= 1.0 4 | pylama ~= 8.0 5 | -------------------------------------------------------------------------------- /roles/accounts/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | accounts__users: {} 3 | ... 4 | -------------------------------------------------------------------------------- /roles/accounts/files/default.gitconfig: -------------------------------------------------------------------------------- 1 | [color] 2 | diff = auto 3 | status = auto 4 | branch = auto 5 | [alias] 6 | st = status 7 | ci = commit 8 | br = branch 9 | cp = cherry-pick 10 | logf = log --follow 11 | [log] 12 | decorate = short 13 | 14 | -------------------------------------------------------------------------------- /roles/accounts/files/default.vimrc: -------------------------------------------------------------------------------- 1 | colorscheme elflord 2 | syn on 3 | set ruler 4 | set noai 5 | set title 6 | 7 | set is " incremental search 8 | set hlsearch 9 | 10 | set foldlevel=500 11 | 12 | " Pour se souvenir de la dernière position dans le fichier 13 | autocmd BufReadPost * 14 | \ if line("'\"") > 0 && line("'\"") <= line("$") | 15 | \ exe "normal g`\"" | 16 | \ endif 17 | -------------------------------------------------------------------------------- /roles/accounts/tasks/account.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set group {{ user }} 3 | ansible.builtin.group: 4 | name: "{{ user }}" 5 | 6 | - name: Set account {{ user }} 7 | ansible.builtin.user: 8 | group: "{{ user }}" 9 | home: "{{ workspace }}/{{ user }}" 10 | name: "{{ user }}" 11 | uid: "{{ uid }}" 12 | shell: "/bin/bash" 13 | 14 | - name: Initialise folders for {{ user }} 15 | ansible.builtin.file: 16 | path: "{{ file }}" 17 | state: directory 18 | group: "{{ user }}" 19 | owner: "{{ user }}" 20 | mode: u=rwx,g=rx,o=rx 21 | loop: 22 | - "/data/work/{{ user }}" 23 | - "{{ workspace }}/{{ user }}" 24 | loop_control: 25 | loop_var: file 26 | 27 | - name: Copy SSH key of user {{ user }} 28 | ansible.posix.authorized_key: 29 | user: "{{ user }}" 30 | key: "{{ lookup('file', file) }}" 31 | with_fileglob: 32 | - "public_keys/{{ user }}*" 33 | loop_control: 34 | loop_var: file 35 | 36 | - name: Copy default config files 37 | ansible.builtin.copy: 38 | force: false 39 | src: "default{{ file }}" 40 | dest: "{{ workspace }}/{{ user }}/{{ file }}" 41 | group: "{{ user }}" 42 | owner: "{{ user }}" 43 | mode: u=rw,g=r,o=r 44 | loop: 45 | - .gitconfig 46 | - .vimrc 47 | loop_control: 48 | loop_var: file 49 | ... 50 | -------------------------------------------------------------------------------- /roles/accounts/tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set accounts 3 | ansible.builtin.include_tasks: account.yml 4 | vars: 5 | service: "{{ item.value.service | default(false) }}" 6 | uid: "{{ item.value.uid | default(omit) }}" 7 | user: "{{ item.user }}" 8 | workspace: "{{ '/data/project' if item.value.service | default(false) else '/home' }}" 9 | loop: "{{ accounts__users | dict2items(key_name='user') }}" 10 | when: "item.user in group_names or (item.value.admin | default(false))" 11 | ... 12 | -------------------------------------------------------------------------------- /roles/backuppc-server/files/monit-backuppc: -------------------------------------------------------------------------------- 1 | check process backuppc with pidfile /var/run/backuppc/BackupPC.pid 2 | group backuppc 3 | start program = "/etc/init.d/backuppc start" 4 | stop program = "/etc/init.d/backuppc stop" 5 | depend backuppc_auth 6 | depend backuppc_bin 7 | depend backuppc_rc 8 | 9 | check host backuppc_auth with address 127.0.0.1 10 | group backuppc 11 | if failed host localhost port 443 with protocol https and request "/backuppc" and status = 401 then alert 12 | 13 | check file backuppc_bin with path /usr/lib/backuppc/cgi-bin/index.cgi 14 | group backuppc 15 | if failed checksum then alert 16 | if failed uid backuppc then alert 17 | if failed gid www-data then alert 18 | if failed permission 4750 then alert 19 | 20 | check file backuppc_rc with path /etc/init.d/backuppc 21 | group backuppc 22 | include /etc/monit/templates/rootbin 23 | -------------------------------------------------------------------------------- /roles/backuppc-server/files/munin-config-backuppc: -------------------------------------------------------------------------------- 1 | [backuppc] 2 | user backuppc 3 | env.pcdir /data/backuppc/pc 4 | -------------------------------------------------------------------------------- /roles/backuppc-server/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | 4 | - name: restart backuppc 5 | service: name=backuppc state=restarted 6 | 7 | - name: restart munin-node 8 | service: name=munin-node state=restarted 9 | 10 | - name: restart monit 11 | service: name=monit state=restarted 12 | -------------------------------------------------------------------------------- /roles/backuppc-server/templates/backuppc-linux-rsync.j2: -------------------------------------------------------------------------------- 1 | # 2 | # {{ item }} backup of everything as user backuppc 3 | # 4 | $Conf{XferMethod} = 'rsync'; 5 | 6 | $Conf{RsyncShareName} = [ 7 | '/etc', 8 | '/data/project', 9 | '/home', 10 | '/var/backups', 11 | '/var/spool', 12 | '/var/www' 13 | ]; 14 | 15 | $Conf{BackupFilesExclude} = { 16 | '/etc' => [ 17 | '/.git' 18 | ] 19 | }; 20 | 21 | $Conf{RsyncClientCmd} = '$sshPath -q -x -l backuppc $host sudo $rsyncPath $argList+'; 22 | 23 | $Conf{RsyncClientRestoreCmd} = '$sshPath -q -x -l backuppc sudo $host $rsyncPath $argList+'; 24 | 25 | # VM are often not accessible with ping or netbios, so disable these commands 26 | $Conf{PingCmd} = ''; 27 | $Conf{NmbLookupCmd} = ''; 28 | $Conf{NmbLookupFindHostCmd} = ''; 29 | 30 | -------------------------------------------------------------------------------- /roles/buildbot-master/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | 4 | - name: restart nginx 5 | systemd: name=nginx state=restarted 6 | 7 | - name: restart buildbot 8 | service: name=buildbot state=restarted 9 | 10 | - name: restart buildbot_nine 11 | systemd: name=buildbot@osmose state=restarted 12 | 13 | - name: restart munin-node 14 | systemd: name=munin-node state=restarted 15 | -------------------------------------------------------------------------------- /roles/buildbot-master/templates/apache.site: -------------------------------------------------------------------------------- 1 | 2 | 3 | ServerAdmin jjaubert@openstreetmap.fr 4 | 5 | ServerName {{ buildbot_site }} 6 | 7 | ProxyPass / http://localhost:8010/ 8 | ProxyPassReverse / http://localhost:8010/ 9 | ProxyPreserveHost On 10 | ProxyTimeout 600 11 | 12 | 13 | ErrorLog /var/log/apache2/buildbot-error.log 14 | 15 | # Possible values include: debug, info, notice, warn, error, crit, 16 | # alert, emerg. 17 | LogLevel warn 18 | 19 | CustomLog /var/log/apache2/munin-access.log combined 20 | 21 | 22 | -------------------------------------------------------------------------------- /roles/buildbot-master/templates/munin-buildbot: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | URL="https://{{ buildbot_site }}/api/v2/" 4 | 5 | if [[ "$1" == "config" ]]; then 6 | { 7 | echo 'graph_title Buildbot jobs' 8 | echo 'graph_vlabel Number' 9 | echo 'graph_category buildbot' 10 | echo "total.label total" 11 | echo "pending.label pending" 12 | echo "running.label running" 13 | exit 0 14 | } 15 | fi 16 | 17 | TOTAL=$( wget -q -O - "$URL/builders?field=builderid" | jq .meta.total) 18 | PENDING=$(wget -q -O - "$URL/buildrequests?field=complete&complete__eq=false" | jq .meta.total) 19 | RUNNING=$(wget -q -O - "$URL/builds?&field=complete&complete__eq=false" | jq .meta.total) 20 | 21 | echo "total.value $TOTAL" 22 | echo "pending.value $PENDING" 23 | echo "running.value $RUNNING" 24 | exit 0 25 | -------------------------------------------------------------------------------- /roles/buildbot-master/templates/nginx.site: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80 default_server; 3 | listen [::]:80 default_server; 4 | 5 | # must listen to all servers, as proxy to /ws directly access IP, and not site 6 | server_name _; 7 | # server_name {{ buildbot_site }} 8 | 9 | access_log "/var/log/nginx/buildbot.access.log"; 10 | 11 | root html; 12 | index index.html index.htm; 13 | 14 | # put a one day session timeout for websockets to stay longer 15 | ssl_session_cache shared:SSL:10m; 16 | ssl_session_timeout 1440m; 17 | 18 | proxy_set_header HOST $host; 19 | proxy_set_header X-Real-IP $remote_addr; 20 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 21 | proxy_set_header X-Forwarded-Proto $scheme; 22 | proxy_set_header X-Forwarded-Server $host; 23 | proxy_set_header X-Forwarded-Host $host; 24 | 25 | # you could use / if you use domain based proxy instead of path based proxy 26 | location / { 27 | proxy_pass http://127.0.0.1:8010/; 28 | } 29 | location /sse/ { 30 | # proxy buffering will prevent sse to work 31 | proxy_buffering off; 32 | proxy_pass http://127.0.0.1:8010/sse/; 33 | } 34 | # required for websocket 35 | location /ws { 36 | proxy_http_version 1.1; 37 | proxy_set_header Upgrade $http_upgrade; 38 | proxy_set_header Connection "upgrade"; 39 | proxy_pass http://127.0.0.1:8010/ws; 40 | # raise the proxy timeout for the websocket 41 | proxy_read_timeout 6000s; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /roles/buildbot-slave/files/sudoers: -------------------------------------------------------------------------------- 1 | buildbot ALL=(osmose) NOPASSWD: ALL 2 | -------------------------------------------------------------------------------- /roles/buildbot-slave/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: systemd daemon-reload 2 | systemd: 3 | daemon_reload: yes 4 | 5 | - name: restart buildslave 6 | service: name=buildslave state=restarted 7 | 8 | - name: restart buildbot-worker 9 | systemd: name=buildbot-worker@osmose state=restarted 10 | -------------------------------------------------------------------------------- /roles/buildbot-slave/templates/systemd-buildbot-worker-override.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | [Service] 3 | Restart=always 4 | RestartSec=30s 5 | -------------------------------------------------------------------------------- /roles/comcommaker/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | comcommaker_cache_dir: cache 3 | comcommaker_cache_path: /data/work/comcommaker/cache 4 | comcommaker_database: osm2pgsql 5 | comcommaker_database_debug: false 6 | comcommaker_database_host: localhost 7 | comcommaker_database_table: planet_osm_polygon 8 | comcommaker_database_user: comcommaker 9 | comcommaker_debug: false 10 | comcommaker_install_path: /data/project/comcommaker/comcommaker 11 | comcommaker_user: comcommaker 12 | comcommaker_group: comcommaker 13 | comcommaker_server_name: comcommaker.openstreetmap.fr 14 | comcommaker_server_aliases: [dev.comcommaker.openstreetmap.fr] 15 | comcommaker_srid: 3857 16 | -------------------------------------------------------------------------------- /roles/comcommaker/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: reload apache 3 | systemd: 4 | service: apache2 5 | state: reloaded 6 | - name: restart apache 7 | systemd: 8 | service: apache2 9 | state: restarted 10 | -------------------------------------------------------------------------------- /roles/comcommaker/templates/apache.site.j2: -------------------------------------------------------------------------------- 1 | 2 | ServerName {{ comcommaker_server_name }} 3 | ServerAlias {{ comcommaker_server_aliases | join(' ') }} 4 | 5 | DocumentRoot {{ comcommaker_install_path }} 6 | 7 | 8 | Require all granted 9 | 10 | 11 | WSGIScriptAlias /comcommaker.py {{ comcommaker_install_path }}/comcommaker.py 12 | WSGIScriptAlias /ajax.py {{ comcommaker_install_path }}/ajax.py 13 | 14 | -------------------------------------------------------------------------------- /roles/comcommaker/templates/comcommaker_settings.py.j2: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """comcommaker@frvipofm.net""" 3 | 4 | __version__ = '0.0.4' 5 | created_by = "comcommaker@frvipofm.net" 6 | 7 | db_name= '{{ comcommaker_database }}' 8 | db_user= '{{ comcommaker_database_user }}' 9 | db_host= '{{ comcommaker_database_host }}' 10 | db_password= '{{ comcommaker_database_password }}' 11 | db_table= '{{ comcommaker_database_table }}' 12 | db_geometry= 'way' # geometry field 13 | db_srid= '{{ comcommaker_srid }}' 14 | db_debug= {{ comcommaker_database_debug | capitalize }} 15 | 16 | db_where= "boundary='administrative' AND admin_level='8'" 17 | 18 | api_server= "www.openstreetmap.org" 19 | api_path = "/api/0.6/" 20 | 21 | 22 | from time import gmtime, mktime 23 | cache_dir= "{{ comcommaker_cache_dir }}/" 24 | cache_deadline = int(mktime(gmtime())) - (60*60*24) # cache 24 h 25 | 26 | debug={{ comcommaker_debug | capitalize }} 27 | -------------------------------------------------------------------------------- /roles/common/files/apache-logformat.conf: -------------------------------------------------------------------------------- 1 | # This file is managed by Ansible, do not edit directly 2 | 3 | # Replace %h by %a to print real-ip if behind a proxy, and mod_remoteip configured 4 | LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined 5 | -------------------------------------------------------------------------------- /roles/common/files/apache-monit: -------------------------------------------------------------------------------- 1 | 2 | ProxyPass http://localhost:2812/ 3 | 4 | SSLRequireSSL 5 | 6 | -------------------------------------------------------------------------------- /roles/common/files/monit-apache: -------------------------------------------------------------------------------- 1 | check process apache with pidfile /var/run/apache2.pid 2 | start program "/etc/init.d/apache2 start" 3 | stop program "/etc/init.d/apache2 stop" 4 | if failed port 80 protocol http with timeout 10 seconds for 3 cycles then restart 5 | if 5 restarts within 5 cycles then timeout 6 | -------------------------------------------------------------------------------- /roles/common/files/monit-munin: -------------------------------------------------------------------------------- 1 | check process munin with pidfile /var/run/munin/munin-node.pid 2 | start program = "/etc/init.d/munin-node start" 3 | stop program = "/etc/init.d/munin-node stop" 4 | if failed port 4949 then restart 5 | if 5 restarts within 5 cycles then timeout 6 | -------------------------------------------------------------------------------- /roles/common/files/monit-mysql: -------------------------------------------------------------------------------- 1 | check process mysql with pidfile /var/run/mysqld/mysqld.pid 2 | group mysql 3 | start program = "/etc/init.d/mysql start" 4 | stop program = "/etc/init.d/mysql stop" 5 | if failed host localhost port 3306 protocol mysql then restart 6 | if 5 restarts within 5 cycles then timeout 7 | depends on mysql_bin 8 | depends on mysql_rc 9 | 10 | check file mysql_bin with path /usr/sbin/mysqld 11 | group mysql 12 | if failed checksum then unmonitor 13 | if failed permission 755 then unmonitor 14 | if failed uid root then unmonitor 15 | if failed gid root then unmonitor 16 | 17 | check file mysql_rc with path /etc/init.d/mysql 18 | group mysql 19 | if failed checksum then unmonitor 20 | if failed permission 755 then unmonitor 21 | if failed uid root then unmonitor 22 | if failed gid root then unmonitor 23 | -------------------------------------------------------------------------------- /roles/common/files/monit-openssh-no-dsa-check-1.patch: -------------------------------------------------------------------------------- 1 | Patch is adapted from following Debian modification: 2 | https://salsa.debian.org/sk-guest/monit/commit/ac71b49a08b7f6aa23c185183ab87a64cae4e913 3 | --- etc/monit/conf-available/openssh-server 4 | +++ etc/monit/conf-available/openssh-server 5 | @@ -22,11 +22,7 @@ 6 | check file sshd_rsa_key with path /etc/ssh/ssh_host_rsa_key 7 | group sshd 8 | include /etc/monit/templates/rootstrict 9 | 10 | - check file sshd_dsa_key with path /etc/ssh/ssh_host_dsa_key 11 | - group sshd 12 | - include /etc/monit/templates/rootstrict 13 | - 14 | check file sshd_rc with path /etc/ssh/sshd_config 15 | group sshd 16 | include /etc/monit/templates/rootrc 17 | -------------------------------------------------------------------------------- /roles/common/files/monit-openssh-no-dsa-check-2.patch: -------------------------------------------------------------------------------- 1 | --- etc/monit/conf-available/openssh-server 2 | +++ etc/monit/conf-available/openssh-server 3 | @@ -9,7 +9,6 @@ 4 | depend on sftp_bin 5 | depend on sshd_rc 6 | depend on sshd_rsa_key 7 | - depend on sshd_dsa_key 8 | 9 | check file sshd_bin with path /usr/sbin/sshd 10 | group sshd 11 | 12 | -------------------------------------------------------------------------------- /roles/common/files/monit-sympa: -------------------------------------------------------------------------------- 1 | check process sympa with pidfile /var/run/sympa/sympa.pid 2 | start program = "/etc/init.d/sympa start" 3 | stop program = "/etc/init.d/sympa stop" 4 | depends on sympa_bulk, sympa_archived, sympa_bounced, sympa_task_manager 5 | mode manual 6 | group sympa 7 | 8 | check process sympa_bulk with pidfile /var/run/sympa/bulk.pid 9 | start program = "/bin/true" 10 | stop program = "/bin/true" 11 | mode manual 12 | group sympa 13 | 14 | check process sympa_archived with pidfile /var/run/sympa/archived.pid 15 | start program = "/bin/true" 16 | stop program = "/bin/true" 17 | mode manual 18 | group sympa 19 | 20 | check process sympa_bounced with pidfile /var/run/sympa/bounced.pid 21 | start program = "/bin/true" 22 | stop program = "/bin/true" 23 | mode manual 24 | group sympa 25 | 26 | check process sympa_task_manager with pidfile /var/run/sympa/task_manager.pid 27 | start program = "/bin/true" 28 | stop program = "/bin/true" 29 | mode manual 30 | group sympa 31 | -------------------------------------------------------------------------------- /roles/common/files/sudoers: -------------------------------------------------------------------------------- 1 | cquest ALL= NOPASSWD: ALL 2 | jocelyn ALL= NOPASSWD: ALL 3 | 4 | cquest ALL= (ALL) NOPASSWD: ALL 5 | jocelyn ALL= (ALL) NOPASSWD: ALL 6 | 7 | backuppc ALL=NOPASSWD: /usr/bin/rsync --server --sender * 8 | -------------------------------------------------------------------------------- /roles/common/files/sysstat-default: -------------------------------------------------------------------------------- 1 | # 2 | # Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat 3 | # and /etc/cron.daily/sysstat files 4 | # 5 | 6 | # Should sadc collect system activity informations? Valid values 7 | # are "true" and "false". Please do not put other values, they 8 | # will be overwritten by debconf! 9 | ENABLED="true" 10 | -------------------------------------------------------------------------------- /roles/common/files/sysstat.conf: -------------------------------------------------------------------------------- 1 | # sysstat configuration file. See sysstat(5) manual page. 2 | 3 | # How long to keep log files (in days). 4 | # Used by sa2(8) script 5 | # If value is greater than 28, then log files are kept in 6 | # multiple directories, one for each month. 7 | HISTORY=28 8 | 9 | # Compress (using xz, gzip or bzip2) sa and sar files older than (in days): 10 | COMPRESSAFTER=7 11 | 12 | # Parameters for the system activity data collector (see sadc(8) manual page) 13 | # which are used for the generation of log files. 14 | # By default contains the `-S DISK' option responsible for generating disk 15 | # statisitcs. Use `-S XALL' to collect all available statistics. 16 | SADC_OPTIONS="-S XALL" 17 | 18 | # Directory where sa and sar files are saved. 19 | SA_DIR=/var/log/sysstat 20 | 21 | # Compression program to use. 22 | ZIP="xz" 23 | 24 | # By default sa2 script generates yesterday's summary, since the cron job 25 | # usually runs right after midnight. If you want sa2 to generate the summary 26 | # of the same day (for example when cron job runs at 23:53) set this variable. 27 | #YESTERDAY=no 28 | 29 | # By default sa2 script generates reports files (the so called sarDD files). 30 | # Set this variable to false to disable reports generation. 31 | #REPORTS=false 32 | -------------------------------------------------------------------------------- /roles/common/files/systemd-lxfs-override.conf: -------------------------------------------------------------------------------- 1 | # This file is managed by Ansible, do not edit directly 2 | 3 | [Service] 4 | ExecStart= 5 | ExecStart=/usr/bin/lxcfs /var/lib/lxcfs -l 6 | -------------------------------------------------------------------------------- /roles/common/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload apache 2 | systemd: 3 | name: apache2 4 | state: reloaded 5 | 6 | - name: restart apache 7 | systemd: 8 | name: apache2 9 | state: restarted 10 | 11 | - name: reload nginx 12 | systemd: 13 | name: nginx 14 | state: reloaded 15 | 16 | - name: restart monit 17 | systemd: 18 | name: monit 19 | state: restarted 20 | 21 | - name: generate locales 22 | command: /usr/sbin/locale-gen 23 | 24 | - name: detect sensors 25 | shell: /usr/sbin/sensors-detect < /dev/null 26 | 27 | - import_tasks: munin-node.yml 28 | 29 | - import_tasks: sysstat.yml 30 | 31 | - import_tasks: sysctl.yml 32 | 33 | - name: restart systemd-hostnamed 34 | systemd: 35 | daemon_reload: yes 36 | name: systemd-hostnamed 37 | state: restarted 38 | 39 | - name: systemd daemon-reload 40 | systemd: 41 | daemon_reload: yes 42 | -------------------------------------------------------------------------------- /roles/common/handlers/munin-node.yml: -------------------------------------------------------------------------------- 1 | - name: restart munin-node 2 | systemd: 3 | name: munin-node 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/common/handlers/sysctl.yml: -------------------------------------------------------------------------------- 1 | - name: systemd-tmpfiles create 2 | command: systemd-tmpfiles --create 3 | -------------------------------------------------------------------------------- /roles/common/handlers/sysstat.yml: -------------------------------------------------------------------------------- 1 | - name: restart sysstat 2 | systemd: 3 | name: sysstat 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/common/tasks/apache2-monit.yml: -------------------------------------------------------------------------------- 1 | - name: add apache proxy module 2 | file: 3 | src: "/etc/apache2/mods-available/{{ item }}" 4 | dest: "/etc/apache2/mods-enabled/{{ item }}" 5 | state: link 6 | notify: restart apache 7 | with_items: 8 | - proxy.conf 9 | - proxy_http.load 10 | - proxy.load 11 | 12 | - name: configure monit in apache 13 | copy: 14 | src: "apache-monit" 15 | dest: "/etc/apache2/sites-available/monit.conf" 16 | owner: root 17 | group: root 18 | mode: 0644 19 | notify: restart apache 20 | 21 | - name: enable monit in apache 22 | file: 23 | src: "/etc/apache2/sites-available/monit.conf" 24 | dest: "/etc/apache2/sites-enabled/monit.conf" 25 | state: link 26 | notify: restart apache 27 | 28 | - name: remove /etc/apache2/sites-available/monit 29 | file: 30 | path: "/etc/apache2/sites-available/monit" 31 | state: absent 32 | notify: restart apache 33 | 34 | - name: remove /etc/apache2/sites-enabled/monit 35 | file: 36 | path: "/etc/apache2/sites-enabled/monit" 37 | state: absent 38 | notify: restart apache 39 | -------------------------------------------------------------------------------- /roles/common/tasks/nginx.yml: -------------------------------------------------------------------------------- 1 | - name: check if nginx installed 2 | command: /usr/bin/test -e /etc/nginx/sites-available/ -a -e /etc/nginx/sites-enabled/ -a -e /etc/nginx/conf.d/ 3 | ignore_errors: True 4 | register: nginx_installed 5 | 6 | # enable forwarded_ip for reverse proxy 7 | - name: configure remoteip 8 | template: 9 | src: nginx-forwarded_ip.conf 10 | dest: /etc/nginx/conf.d/forwarded_ip.conf 11 | mode: 0644 12 | owner: root 13 | group: root 14 | notify: reload nginx 15 | when: nginx_installed.rc == 0 and vm_host is defined 16 | -------------------------------------------------------------------------------- /roles/common/tasks/ntp.yml: -------------------------------------------------------------------------------- 1 | - name: install ntp package 2 | apt: 3 | pkg: 4 | - ntp 5 | 6 | - name: launch ntp 7 | systemd: 8 | name: ntp 9 | state: started 10 | enabled: yes 11 | -------------------------------------------------------------------------------- /roles/common/tasks/ssh-tunnel.yml: -------------------------------------------------------------------------------- 1 | - name: Check if user exists 2 | action: shell /usr/bin/getent passwd {{ user }} 3 | register: user_exist 4 | ignore_errors: True 5 | changed_when: "user_exist.rc != 0" 6 | tags: ssh-tunnel 7 | 8 | - name: init user ${user} 9 | user: 10 | name: "{{ user }}" 11 | home: "/data/project/{{ user }}/" 12 | shell: "/bin/false" 13 | generate_ssh_key: yes 14 | when: user_exist.changed 15 | tags: ssh-tunnel 16 | 17 | - name: init group ${user} 18 | group: 19 | name: "{{ user }}" 20 | tags: ssh-tunnel 21 | 22 | - name: copy default config files 23 | copy: 24 | force: no 25 | src: "shared/files/default{{ item }}" 26 | dest: "/data/project/{{ user }}/{{ item }}" 27 | owner: "{{ user }}" 28 | group: "{{ user }}" 29 | mode: 0644 30 | tags: ssh-tunnel 31 | with_items: 32 | - .gitconfig 33 | - .vimrc 34 | 35 | - fetch: 36 | src: "/data/project/{{ user }}/.ssh/id_rsa.pub" 37 | dest: "public_keys/ansible/{{ user }}-{{ ansible_hostname }}" 38 | flat: yes 39 | tags: ssh-tunnel 40 | 41 | - name: init ssh key to user ${user} 42 | authorized_key: 43 | user: "{{ user }}" 44 | key: "{{ item }}" 45 | key_options: 'no-pty,no-X11-forwarding,permitopen="localhost:*"' 46 | tags: ssh-tunnel 47 | when: ansible_hostname == 'osm7' 48 | with_fileglob: 49 | - "{{ lookup('env', 'PWD') }}/public_keys/ansible/{{ user }}-osm3" 50 | - "{{ lookup('env', 'PWD') }}/public_keys/ansible/{{ user }}-osm101" 51 | -------------------------------------------------------------------------------- /roles/common/tasks/sysstat.yml: -------------------------------------------------------------------------------- 1 | - name: install packages for sysstat and atop 2 | apt: 3 | update_cache: yes 4 | pkg: 5 | - sysstat 6 | - xz-utils 7 | - atop 8 | when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' 9 | 10 | - name: Enable sysstat 11 | copy: 12 | src: "{{ item.src }}" 13 | dest: "{{ item.dest }}" 14 | owner: root 15 | mode: "{{ item.mode }}" 16 | loop: 17 | - { src: 'sysstat-default', dest: '/etc/default/sysstat', mode: '0644' } 18 | - { src: 'sysstat.conf', dest: '/etc/sysstat/sysstat', mode: '0644' } 19 | notify: restart sysstat 20 | -------------------------------------------------------------------------------- /roles/common/templates/apache-remoteip.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | 4 | {% if vm_host is defined %} 5 | {% if vm_host in ["osm26.openstreetmap.fr", "osm27.openstreetmap.fr", "osm28.openstreetmap.fr"] %} 6 | RemoteIPInternalProxy 10.0.0.26 10.0.0.27 10.0.0.28 7 | RemoteIPHeader X-Forwarded-For 8 | {% elif vm_host in ["osm11.openstreetmap.fr"] %} 9 | RemoteIPInternalProxy 192.168.0.254 10 | RemoteIPHeader X-Forwarded-For 11 | {% elif vm_host in ["osm14.openstreetmap.fr"] %} 12 | RemoteIPInternalProxy 10.0.0.14 13 | RemoteIPHeader X-Forwarded-For 14 | {% elif vm_host in ["osm32.openstreetmap.fr", "osm33.openstreetmap.fr", "osm34.openstreetmap.fr"] %} 15 | RemoteIPInternalProxy 10.1.0.103 16 | RemoteIPHeader X-Forwarded-For 17 | {% elif vm_host in ["osm38.openstreetmap.fr", "osm39.openstreetmap.fr", "osm40.openstreetmap.fr", "osm41.openstreetmap.fr", "osm42.openstreetmap.fr", "osm43.openstreetmap.fr", "osm44.openstreetmap.fr"] %} 18 | RemoteIPInternalProxy 10.1.0.100 19 | RemoteIPHeader X-Forwarded-For 20 | {% endif %} 21 | {% endif %} 22 | 23 | -------------------------------------------------------------------------------- /roles/common/templates/monit-alert: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | set mailserver localhost 4 | set mail-format { from: monit@{{ inventory_hostname }} } 5 | 6 | # to store events if mailserver is not available 7 | set eventqueue 8 | basedir /var/spool/monit # set the base directory where events will be stored 9 | slots 10 # limit the queue size 10 | 11 | set alert admin-notification@listes.openstreetmap.fr # not on { instance, action } 12 | -------------------------------------------------------------------------------- /roles/common/templates/monit-postgresql: -------------------------------------------------------------------------------- 1 | check process postgres with pidfile /var/run/postgresql/{{ postgresql_version }}-main.pid 2 | group database 3 | start program = "/etc/init.d/postgresql start" 4 | stop program = "/etc/init.d/postgresql stop" 5 | if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql 6 | with timeout 10 seconds 7 | for 3 times within 5 cycles 8 | then restart 9 | if 5 restarts within 5 cycles then timeout 10 | -------------------------------------------------------------------------------- /roles/common/templates/monit-webserver: -------------------------------------------------------------------------------- 1 | set httpd port 2812 and 2 | use address localhost # only accept connection from localhost 3 | allow localhost # allow localhost to connect to the server 4 | allow monit:{{ lookup('password', 'credentials/monit length=15 chars=ascii_letters,digits') }} 5 | allow guest:guest readonly 6 | -------------------------------------------------------------------------------- /roles/common/templates/nginx-forwarded_ip.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | {% if vm_host is defined %} 4 | {% if vm_host in ["osm26.openstreetmap.fr", "osm27.openstreetmap.fr", "osm28.openstreetmap.fr"] %} 5 | set_real_ip_from 10.0.0.26; 6 | set_real_ip_from 10.0.0.27; 7 | set_real_ip_from 10.0.0.28; 8 | real_ip_header X-Forwarded-For; 9 | {% elif vm_host in ["osm11.openstreetmap.fr"] %} 10 | set_real_ip_from 192.168.0.254; 11 | real_ip_header X-Forwarded-For; 12 | {% elif vm_host in ["osm32.openstreetmap.fr", "osm33.openstreetmap.fr", "osm34.openstreetmap.fr"] %} 13 | set_real_ip_from 10.1.0.103; 14 | real_ip_header X-Forwarded-For; 15 | {% elif vm_host in ["osm38.openstreetmap.fr", "osm39.openstreetmap.fr", "osm40.openstreetmap.fr", "osm41.openstreetmap.fr", "osm42.openstreetmap.fr", "osm43.openstreetmap.fr", "osm44.openstreetmap.fr"] %} 16 | set_real_ip_from 10.1.0.100; 17 | real_ip_header X-Forwarded-For; 18 | {% endif %} 19 | {% endif %} 20 | -------------------------------------------------------------------------------- /roles/common/templates/sudoers-users: -------------------------------------------------------------------------------- 1 | # generated by ansible 2 | {% if users_root is defined %} 3 | {% for user in users_root %} 4 | {{ user }} ALL=(ALL) NOPASSWD: ALL 5 | {% endfor %} 6 | {% endif %} 7 | {% if group_users_root is defined %} 8 | {% for user in group_users_root %} 9 | {{ user }} ALL=(ALL) NOPASSWD: ALL 10 | {% endfor %} 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /roles/common/templates/systemd-hostnamed-no-private-mounts.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | [Service] 3 | PrivateSystem=no 4 | PrivateNetwork=no 5 | -------------------------------------------------------------------------------- /roles/common/templates/systemd-tmpfiles.conf.j2: -------------------------------------------------------------------------------- 1 | w /sys/kernel/mm/transparent_hugepage/enabled - - - - never 2 | w /sys/kernel/mm/transparent_hugepage/defrag - - - - never 3 | w /proc/sys/kernel/sched_autogroup_enabled - - - - 0 4 | w /sys/kernel/debug/sched/migration_cost_ns - - - - 5000000 5 | -------------------------------------------------------------------------------- /roles/drupal/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerAdmin webmaster@localhost 3 | 4 | ServerName www.openstreetmap.fr 5 | ServerAlias dev.www.openstreetmap.fr 6 | 7 | DocumentRoot /data/project/www/website/ 8 | 9 | Options Indexes FollowSymLinks MultiViews 10 | AllowOverride All 11 | Require all granted 12 | 13 | 14 | AccessFileName .htaccess 15 | 16 | LogLevel warn 17 | ErrorLog /var/log/apache2/www-error.log 18 | CustomLog /var/log/apache2/www-access.log combined 19 | 20 | 21 | 22 | ServerName planet.openstreetmap.fr 23 | Redirect / http://openstreetmap.fr/planet 24 | 25 | -------------------------------------------------------------------------------- /roles/drupal/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/drupal/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: pkg={{ item }} 3 | with_items: 4 | - apache2 5 | - curl 6 | - php5 7 | - php5-gd 8 | - php5-pgsql 9 | - postgresql-9.4 10 | - python-psycopg2 11 | 12 | - include_tasks: ../../../shared/project-account.yml 13 | vars: 14 | user: www 15 | 16 | - name: init database 17 | postgresql_db: name=osm_fr encoding='UTF-8' lc_collate='en_US.UTF-8' lc_ctype='en_US.UTF-8' template='template0' 18 | become: yes 19 | become_user: postgres 20 | 21 | - name: init database user 22 | postgresql_user: name=osm_fr password="{{ lookup('password', 'credentials/' + inventory_hostname + '/drupal-osm_fr-password length=15 chars=ascii_letters,digits') }}" db=osm_fr priv=ALL 23 | become: yes 24 | become_user: postgres 25 | 26 | # install drupal manually in /data/project/www/website 27 | - name: check if drupal was installed 28 | stat: 29 | path: /data/project/www/website 30 | register: p 31 | 32 | - fail: 33 | msg: "Please install drupal in /data/project/www/website" 34 | when: not (p.stat.isdir is defined and p.stat.isdir) 35 | 36 | - name: add apache mods 37 | file: src="/etc/apache2/mods-available/{{ item }}" dest="/etc/apache2/mods-enabled/{{ item }}" state=link 38 | notify: restart apache 39 | with_items: 40 | - rewrite.load 41 | 42 | - name: copy apache config 43 | copy: src=apache.site dest="/etc/apache2/sites-available/www.conf" 44 | notify: restart apache 45 | 46 | - name: enable apache site 47 | file: src="/etc/apache2/sites-available/www.conf" dest="/etc/apache2/sites-enabled/www.conf" state=link 48 | notify: restart apache 49 | -------------------------------------------------------------------------------- /roles/export-cadastre/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerAdmin webmaster@localhost 3 | 4 | ServerName cadastre.openstreetmap.fr 5 | ServerAlias cadastre.vm.openstreetmap.fr 6 | 7 | DocumentRoot /data/project/cadastre/export-cadastre/web 8 | 9 | 10 | AllowOverride all 11 | Require all granted 12 | Options Indexes FollowSymLinks 13 | 14 | 15 | AccessFileName .htaccess 16 | 17 | ErrorLog /var/log/apache2/cadastre-error.log 18 | CustomLog /var/log/apache2/cadastre-access.log vhost_combined 19 | 20 | RewriteEngine on 21 | RewriteCond %{HTTP_USER_AGENT} .*Semrush.* [nocase] 22 | RewriteRule .* - [forbidden,last] 23 | 24 | #Marc_marc pour https://github.com/osm-fr/export-cadastre/issues/34 25 | Header always set Access-Control-Allow-Origin "*" 26 | 27 | 28 | 29 | # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 30 | -------------------------------------------------------------------------------- /roles/export-cadastre/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | systemd: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/layers.openstreetmap.fr/files/apache: -------------------------------------------------------------------------------- 1 | ############## layers.openstreetmap.fr 2 | 3 | ServerName layers.openstreetmap.fr 4 | 5 | DocumentRoot /data/project/layers.openstreetmap.fr/web/www 6 | 7 | AllowOverride all 8 | Require all granted 9 | 10 | 11 | ErrorLog /var/log/apache2/layers.openstreetmap.fr-error.log 12 | CustomLog /var/log/apache2/layers.openstreetmap.fr-access.log combined 13 | 14 | 15 | -------------------------------------------------------------------------------- /roles/layers.openstreetmap.fr/files/sudoers: -------------------------------------------------------------------------------- 1 | sly ALL=(layers.openstreetmap.fr) NOPASSWD: ALL 2 | cquest ALL=(layers.openstreetmap.fr) NOPASSWD: ALL 3 | jocelyn ALL=(layers.openstreetmap.fr) NOPASSWD: ALL 4 | -------------------------------------------------------------------------------- /roles/layers.openstreetmap.fr/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/layers.openstreetmap.fr/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - include_tasks: ../../../shared/project-account.yml 2 | vars: 3 | user: layers.openstreetmap.fr 4 | 5 | - name: install packages 6 | apt: pkg={{ item }} 7 | with_items: 8 | - apache2 9 | - libapache2-mod-php5 10 | 11 | - name: checkout git repository 12 | git: repo={{ item.repo }} dest={{ item.dir }} force=no update=no 13 | become: yes 14 | become_user: layers.openstreetmap.fr 15 | with_items: 16 | - {repo: "https://github.com/osm-fr/presentoir-carte.git", dir: "/data/project/layers.openstreetmap.fr/web"} 17 | 18 | 19 | - name: copy apache config 20 | copy: src=apache dest=/etc/apache2/sites-available/layers.conf 21 | notify: restart apache 22 | 23 | - name: add apache mods 24 | file: src="/etc/apache2/mods-available/{{ item }}" dest="/etc/apache2/mods-enabled/{{ item }}" state=link 25 | notify: restart apache 26 | with_items: 27 | - expires.load 28 | - php5.conf 29 | - php5.load 30 | - rewrite.load 31 | 32 | - name: enable apache site 33 | file: src="/etc/apache2/sites-available/layers.conf" dest="/etc/apache2/sites-enabled/layers.conf" state=link 34 | notify: restart apache 35 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/apache-challenge.site: -------------------------------------------------------------------------------- 1 | Alias "/.well-known/acme-challenge/" "/data/project/letsencrypt/challenges/" 2 | 3 | 4 | Options None 5 | AllowOverride None 6 | ForceType text/plain 7 | # RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)" 8 | Satisfy any 9 | Require all granted 10 | 11 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/apache-keys.site: -------------------------------------------------------------------------------- 1 | 2 | 3 | SSLCertificateChainFile /etc/ssl/letsencrypt/intermediate.pem 4 | SSLCertificateFile /etc/ssl/letsencrypt/signed.crt 5 | SSLCertificateKeyFile /etc/ssl/letsencrypt/domain.key 6 | 7 | 8 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/letsencrypt-to-apache.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | set -e 4 | 5 | mkdir -p /etc/ssl/letsencrypt/ 6 | cp /data/project/letsencrypt/keys/chained.pem "/etc/ssl/letsencrypt/chained.pem" 7 | cp /data/project/letsencrypt/keys/domain.key "/etc/ssl/letsencrypt/domain.key" 8 | cp /data/project/letsencrypt/keys/dhparams.pem "/etc/ssl/letsencrypt/dhparams.pem" 9 | cp /data/project/letsencrypt/keys/intermediate.pem "/etc/ssl/letsencrypt/intermediate.pem" 10 | cp /data/project/letsencrypt/keys/signed.crt "/etc/ssl/letsencrypt/signed.crt" 11 | systemctl reload apache2 12 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/letsencrypt-to-nginx.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | set -e 4 | 5 | mkdir -p /etc/ssl/letsencrypt/ 6 | cp /data/project/letsencrypt/keys/chained.pem "/etc/ssl/letsencrypt/chained.pem" 7 | cp /data/project/letsencrypt/keys/domain.key "/etc/ssl/letsencrypt/domain.key" 8 | cp /data/project/letsencrypt/keys/dhparams.pem "/etc/ssl/letsencrypt/dhparams.pem" 9 | systemctl reload nginx 10 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/letsencrypt-to-proxmox-mail-gateway.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | cat /data/project/letsencrypt/keys/domain.key /data/project/letsencrypt/keys/signed.crt > /etc/pmg/pmg-api.pem 4 | 5 | systemctl restart pmgproxy 6 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/letsencrypt-to-proxmox.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | domains=$(openssl x509 -text < /data/project/letsencrypt/keys/chained.pem | grep DNS:) 4 | 5 | for node in $(ls /etc/pve/nodes); do 6 | echo $node 7 | if [[ "$domains" == *"$node"* ]]; then 8 | cp /data/project/letsencrypt/keys/domain.key "/etc/pve/nodes/$node/pveproxy-ssl.key" 9 | cp /data/project/letsencrypt/keys/chained.pem "/etc/pve/nodes/$node/pveproxy-ssl.pem" 10 | sudo -u letsencrypt ssh letsencrypt@$node.openstreetmap.fr sudo systemctl reload pveproxy 11 | else 12 | echo " - skipped" 13 | fi 14 | done 15 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/nginx-letsencrypt-challenge-certbot.conf: -------------------------------------------------------------------------------- 1 | location /.well-known/acme-challenge/ { 2 | alias /data/project/letsencrypt/challenges/.well-known/acme-challenge/; 3 | try_files $uri =404; 4 | } 5 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/nginx-letsencrypt-challenge.conf: -------------------------------------------------------------------------------- 1 | location /.well-known/acme-challenge/ { 2 | alias /data/project/letsencrypt/challenges/; 3 | try_files $uri =404; 4 | } 5 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/nginx-letsencrypt-ssl.conf: -------------------------------------------------------------------------------- 1 | listen 443 ssl http2; 2 | listen [::]:443 ssl http2; 3 | 4 | ssl_certificate /etc/ssl/letsencrypt/chained.pem; 5 | ssl_certificate_key /etc/ssl/letsencrypt/domain.key; 6 | ssl_dhparam /etc/ssl/letsencrypt/dhparams.pem; 7 | -------------------------------------------------------------------------------- /roles/letsencrypt/files/sudoers: -------------------------------------------------------------------------------- 1 | letsencrypt ALL=NOPASSWD: /usr/bin/certbot 2 | letsencrypt ALL=NOPASSWD: /etc/init.d/apache2 reload 3 | letsencrypt ALL=NOPASSWD: /etc/init.d/nginx reload 4 | letsencrypt ALL=NOPASSWD: /bin/systemctl reload nginx 5 | letsencrypt ALL=NOPASSWD: /bin/systemctl reload pveproxy 6 | letsencrypt ALL=NOPASSWD: /usr/local/bin/letsencrypt-to-proxmox.sh 7 | letsencrypt ALL=NOPASSWD: /usr/local/bin/letsencrypt-to-proxmox-mail-gateway.sh 8 | letsencrypt ALL=NOPASSWD: /usr/local/bin/letsencrypt-to-nginx.sh 9 | letsencrypt ALL=NOPASSWD: /usr/local/bin/letsencrypt-to-apache.sh 10 | -------------------------------------------------------------------------------- /roles/letsencrypt/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload apache 2 | service: name=apache2 state=reloaded 3 | when: using_apache.changed 4 | 5 | - name: reload nginx 6 | service: name=nginx state=reloaded 7 | when: using_nginx.changed 8 | 9 | - name: restart apache 10 | service: name=apache2 state=restarted 11 | when: using_apache.changed 12 | -------------------------------------------------------------------------------- /roles/letsencrypt/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: run acme-tiny 2 | include_tasks: acme-tiny.yml 3 | when: letsencrypt_certbot is not defined 4 | 5 | - name: run certbot 6 | include_tasks: certbot.yml 7 | when: letsencrypt_certbot is defined 8 | -------------------------------------------------------------------------------- /roles/letsencrypt/templates/launch-acme-tiny.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | set -e 4 | 5 | echo "Starting launch-acme-tiny.sh" 6 | 7 | need_update=0 8 | 9 | if [ ! -f "./signed.crt" ]; then 10 | need_update=1 11 | elif [ "$(find ./account.key ./domain.csr ./hosts-list -newer ./signed.crt)" ]; then 12 | need_update=1 13 | elif [ "$(find ./signed.crt -mtime +62)" ]; then 14 | # file is more than 2 months old 15 | need_update=1 16 | fi 17 | 18 | if [ "$need_update" -eq 0 ]; then 19 | echo "Update is not necessary" 20 | exit 0 21 | fi 22 | 23 | openssl req -new -sha256 -key domain.key -subj "/" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=$(cat hosts-list)")) > domain.csr.tmp 24 | 25 | mv domain.csr.tmp domain.csr 26 | 27 | 28 | python3 ../acme-tiny/acme_tiny.py --account-key ./account.key --csr ./domain.csr --acme-dir /data/project/letsencrypt/challenges > ./signed.crt.tmp 29 | 30 | mv ./signed.crt.tmp ./signed.crt 31 | 32 | if [ -e intermediate.pem ]; then 33 | cat ./signed.crt intermediate.pem > chained.pem 34 | if [ -e /etc/init.d/apache2 ]; then 35 | sudo /usr/local/bin/letsencrypt-to-apache.sh 36 | echo "apache2 was reloaded" 37 | fi 38 | if [ -e /etc/init.d/nginx ]; then 39 | sudo /usr/local/bin/letsencrypt-to-nginx.sh 40 | {% if inventory_hostname in groups["cluster-free"] %} 41 | {% for node in groups["cluster-free"] %} 42 | {% if node != inventory_hostname %} 43 | # ssh letsencrypt@{{ node }} sudo /etc/init.d/nginx reload 44 | {% endif %} 45 | {% endfor %} 46 | {% elif inventory_hostname in groups["cluster-ovh"] %} 47 | {% for node in groups["cluster-ovh"] %} 48 | {% if node != inventory_hostname %} 49 | ssh letsencrypt@{{ node }} sudo /usr/local/bin/letsencrypt-to-nginx.sh 50 | {% endif %} 51 | {% endfor %} 52 | {% endif %} 53 | echo "nginx was reloaded" 54 | fi 55 | fi 56 | 57 | if [ -e /etc/pve/nodes ]; then 58 | sudo /usr/local/bin/letsencrypt-to-proxmox.sh 59 | fi 60 | if [ -e /etc/pmg/pmg-api.pem ]; then 61 | sudo /usr/local/bin/letsencrypt-to-proxmox-mail-gateway.sh 62 | fi 63 | -------------------------------------------------------------------------------- /roles/letsencrypt/templates/launch-certbot.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | set -e 4 | 5 | echo "Starting certbot.sh" 6 | 7 | sudo certbot certonly -m admin@listes.openstreetmap.fr --agree-tos --non-interactive --expand --webroot -w /data/project/letsencrypt/challenges $(cat hosts-list) 8 | 9 | if [ -e /etc/init.d/nginx ]; then 10 | sudo systemctl reload nginx 11 | 12 | {% if inventory_hostname in groups["cluster-free"] %} 13 | {% for node in groups["cluster-free"] %} 14 | {% if node != inventory_hostname %} 15 | # ssh letsencrypt@{{ node }} sudo /etc/init.d/nginx reload 16 | {% endif %} 17 | {% endfor %} 18 | {% elif inventory_hostname in groups["cluster-ovh"] %} 19 | {% for node in groups["cluster-ovh"] %} 20 | {% if node != inventory_hostname %} 21 | ssh letsencrypt@{{ node }} sudo /usr/local/bin/letsencrypt-to-nginx.sh 22 | {% endif %} 23 | {% endfor %} 24 | {% endif %} 25 | echo "nginx was reloaded" 26 | fi 27 | 28 | if [ -e /etc/pve/nodes ]; then 29 | sudo /usr/local/bin/letsencrypt-to-proxmox.sh 30 | fi 31 | if [ -e /etc/pmg/pmg-api.pem ]; then 32 | sudo /usr/local/bin/letsencrypt-to-proxmox-mail-gateway.sh 33 | fi 34 | -------------------------------------------------------------------------------- /roles/letsencrypt/templates/letsencrypt-hosts-list: -------------------------------------------------------------------------------- 1 | DNS:{{ letsencrypt_hosts | replace (","," ") | replace(" ", ",DNS:") }} 2 | -------------------------------------------------------------------------------- /roles/letsencrypt/templates/letsencrypt-hosts-list-certbot: -------------------------------------------------------------------------------- 1 | -d {{ letsencrypt_hosts | replace (","," ") | replace(" ", " -d ") }} 2 | -------------------------------------------------------------------------------- /roles/live/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | 3 | ServerAdmin cquest@openstreetmap.fr 4 | 5 | ServerName live.openstreetmap.fr 6 | 7 | DocumentRoot /data/project/live/osm-livechanges/frontend/ 8 | 9 | 10 | AddDefaultCharset UTF-8 11 | Options FollowSymLinks Indexes MultiViews 12 | Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 13 | AddHandler cgi-script .py 14 | AllowOverride None 15 | Require all granted 16 | 17 | 18 | ErrorLog /var/log/apache2/live-error.log 19 | LogLevel warn 20 | CustomLog /var/log/apache2/live-access.log combined 21 | ServerSignature On 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /roles/live/files/sudoers: -------------------------------------------------------------------------------- 1 | cquest ALL=(live) NOPASSWD: ALL 2 | jocelyn ALL=(live) NOPASSWD: ALL 3 | -------------------------------------------------------------------------------- /roles/live/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/live/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: pkg={{ item }} 3 | with_items: 4 | - apache2 5 | - python3-lxml 6 | - python3-iso8601 7 | - sqlite3 8 | 9 | - include_tasks: ../../../shared/project-account.yml 10 | vars: 11 | user: live 12 | 13 | - name: add sudoers to access live user 14 | copy: src=sudoers dest=/etc/sudoers.d/live mode=0440 owner=root group=root validate='visudo -cf %s' 15 | 16 | - name: checkout git repository 17 | git: repo="https://github.com/osm-fr/osm-livechanges.git" dest="/data/project/live/osm-livechanges" force=no update=no 18 | become: yes 19 | become_user: live 20 | 21 | - name: init sqlite database 22 | shell: creates="/data/work/live/changesets.db" chdir="/data/project/live/osm-livechanges/backend" echo ".exit" | sqlite3 -init schema /data/work/live/changesets.db 23 | become: yes 24 | become_user: live 25 | 26 | - name: add link to sqlite database 27 | file: src="/data/work/live/changesets.db" dest="/data/project/live/osm-livechanges/backend/changesets.db" state=link 28 | become: yes 29 | become_user: live 30 | 31 | - name: copy apache config 32 | copy: src=apache.site dest="/etc/apache2/sites-available/live.conf" 33 | notify: restart apache 34 | 35 | - name: enable apache site 36 | file: src="/etc/apache2/sites-available/live.conf" dest="/etc/apache2/sites-enabled/live.conf" state=link 37 | notify: restart apache 38 | 39 | - name: add apache mods 40 | file: src="/etc/apache2/mods-available/{{ item }}" dest="/etc/apache2/mods-enabled/{{ item }}" state=link 41 | notify: restart apache 42 | with_items: 43 | - cgid.conf 44 | - cgid.load 45 | 46 | - name: initialize minute crontab 47 | cron: name="update live" job="(cd /data/project/live/osm-livechanges/backend && ./cron-dl.sh) > /dev/null" 48 | become: yes 49 | become_user: live 50 | -------------------------------------------------------------------------------- /roles/munin-server/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | 3 | ServerAdmin jjaubert@openstreetmap.fr 4 | 5 | ServerName munin.openstreetmap.fr 6 | ServerAlias dev.munin.openstreetmap.fr 7 | 8 | DocumentRoot /var/cache/munin/www/ 9 | 10 | Options None 11 | Require all granted 12 | 13 | 14 | ExpiresActive On 15 | ExpiresDefault M310 16 | 17 | 18 | 19 | ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph 20 | 21 | Require all granted 22 | 23 | 24 | SetHandler fastcgi-script 25 | 26 | 27 | 28 | ScriptAlias /munin-cgi/munin-cgi-html /usr/lib/munin/cgi/munin-cgi-html 29 | 30 | Require all granted 31 | 32 | 33 | SetHandler fastcgi-script 34 | 35 | 36 | 37 | ErrorLog /var/log/apache2/munin-error.log 38 | 39 | # Possible values include: debug, info, notice, warn, error, crit, 40 | # alert, emerg. 41 | LogLevel warn 42 | 43 | CustomLog /var/log/apache2/munin-access.log combined 44 | 45 | 46 | -------------------------------------------------------------------------------- /roles/munin-server/files/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: / 3 | -------------------------------------------------------------------------------- /roles/munin-server/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/munin-server/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: pkg={{ item }} 3 | with_items: 4 | - apache2 5 | - munin 6 | 7 | - name: copy apache config 8 | copy: src=apache.site dest="/etc/apache2/sites-available/munin.conf" 9 | notify: restart apache 10 | 11 | - name: enable apache site 12 | file: src="/etc/apache2/sites-available/munin.conf" dest="/etc/apache2/sites-enabled/munin.conf" state=link 13 | notify: restart apache 14 | 15 | - name: add apache mods 16 | file: src="/etc/apache2/mods-available/{{ item }}" dest="/etc/apache2/mods-enabled/{{ item }}" state=link 17 | notify: restart apache 18 | with_items: 19 | - cgi.load 20 | - expires.load 21 | 22 | - name: copy robots.txt 23 | copy: 24 | src: robots.txt 25 | dest: /var/cache/munin/www/robots.txt 26 | 27 | - name: configure munin hosts 28 | template: src=hosts.conf.j2 dest=/etc/munin/munin-conf.d/hosts.conf owner=root group=root mode=644 29 | 30 | - name: configure graph_strategy=cgi 31 | lineinfile: 32 | dest: /etc/munin/munin.conf 33 | regexp: "^graph_strategy cgi" 34 | insertafter: "graph_strategy cron" 35 | line: "graph_strategy cgi" 36 | -------------------------------------------------------------------------------- /roles/munin-server/templates/hosts.conf.j2: -------------------------------------------------------------------------------- 1 | # Munin hosts. 2 | {% for host in groups['all']|sort %} 3 | {% set has_vm = [] %} 4 | {% for host2 in groups['all']|sort %} 5 | {% if ("vm_host" in hostvars[host2]) and (hostvars[host2]["vm_host"] == host) %} 6 | {% if has_vm.append(1) %} 7 | {% endif %} 8 | {% endif %} 9 | {% endfor %} 10 | {% if "vm_host" in hostvars[host] %} 11 | [{{ hostvars[host]["vm_host"] }};{{ host }}] 12 | {% elif has_vm %} 13 | [{{ host }};] 14 | node_order {{ host }} 15 | 16 | [{{ host }};{{ host }}] 17 | {% else %} 18 | [openstreetmap.fr;{{ host }}] 19 | {% endif %} 20 | address {{ host }} 21 | 22 | {% endfor %} 23 | -------------------------------------------------------------------------------- /roles/nextcloud/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerAdmin webmaster@localhost 3 | 4 | ServerName nextcloud.openstreetmap.fr 5 | 6 | DocumentRoot /data/project/nextcloud/nextcloud/ 7 | 8 | Options Indexes FollowSymLinks MultiViews 9 | AllowOverride All 10 | Require all granted 11 | 12 | 13 | SetEnv HOME /data/project/nextcloud/nextcloud/ 14 | SetEnv HTTP_HOME /data/project/nextcloud/nextcloud/ 15 | 16 | 17 | Dav off 18 | 19 | 20 | 21 | Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains; preload" 22 | 23 | 24 | AccessFileName .htaccess 25 | 26 | LogLevel warn 27 | ErrorLog /var/log/apache2/nextcloud-error.log 28 | CustomLog /var/log/apache2/nextcloud-access.log combined 29 | 30 | -------------------------------------------------------------------------------- /roles/nextcloud/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/ocitysmap/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(maposmatic) NOPASSWD: ALL 2 | jocelyn ALL=(postgres) NOPASSWD: ALL 3 | lcombe ALL=(maposmatic) NOPASSWD: ALL 4 | lcombe ALL=(postgres) NOPASSWD: ALL 5 | -------------------------------------------------------------------------------- /roles/ocitysmap/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: rebuild locales database 2 | command: "{{ item }}" 3 | with_items: 4 | - dpkg-reconfigure locales -f noninteractive 5 | - /usr/sbin/locale-gen 6 | -------------------------------------------------------------------------------- /roles/ocitysmap/templates/ocitysmap.conf.j2: -------------------------------------------------------------------------------- 1 | [datasource] 2 | host=localhost 3 | user={{db_owner_account}} 4 | password={{db_owner_password}} 5 | dbname={{db_name}} 6 | 7 | [rendering] 8 | available_stylesheets=stylesheet_osm1, French 9 | 10 | [stylesheet_osm1] 11 | name=Default 12 | description=The default OSM style 13 | path=/usr/share/openstreetmap-carto/style.xml 14 | shade_alpha = 0.3 15 | 16 | [French] 17 | name=osmfr 18 | description=French OSM style 19 | path={{application_dir}}/styles/osmfr-cartocss/mapnik.xml 20 | -------------------------------------------------------------------------------- /roles/osm2pgsql/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | osm2pgsql__user: osm2pgsql 3 | ... 4 | -------------------------------------------------------------------------------- /roles/osm2pgsql/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(postgres) NOPASSWD: ALL 2 | 3 | cquest ALL=(osm2pgsql) NOPASSWD: ALL 4 | jocelyn ALL=(osm2pgsql) NOPASSWD: ALL 5 | sly ALL=(osm2pgsql) NOPASSWD: ALL 6 | -------------------------------------------------------------------------------- /roles/osm2pgsql/meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependencies: 3 | - role: accounts 4 | vars: 5 | accounts__users: 6 | "{{ osm2pgsql__user }}": 7 | service: true 8 | ... 9 | -------------------------------------------------------------------------------- /roles/osmbin/files/README.deb: -------------------------------------------------------------------------------- 1 | osmium-2.15.2-or-later_1.0_all.deb is generated with the following commands. 2 | 3 | ``` 4 | cat <minosmiun 5 | Section: utils 6 | Priority: optional 7 | Standards-Version: 4.5.0 8 | 9 | Package: osmium-2.15.2-or-later 10 | Depends: osmium-tool (>= 1.12), pyosmium (>= 2.15.2) 11 | Description: dependency package ensuring libosmium 2.15.2 or later is installed 12 | Version 2.15.2 is required to support in diffs. 13 | EOF 14 | 15 | sudo apt install equivs 16 | equivs-build minosmium 17 | ``` 18 | -------------------------------------------------------------------------------- /roles/osmbin/files/osmium-2.15.2-or-later_1.0_all.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/osm-fr/ansible-scripts/e584edfe7e342ee58737e49735c9487033eb34da/roles/osmbin/files/osmium-2.15.2-or-later_1.0_all.deb -------------------------------------------------------------------------------- /roles/osmbin/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(osmbin) NOPASSWD: ALL 2 | -------------------------------------------------------------------------------- /roles/osmose-backend/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(osmose) NOPASSWD: ALL 2 | jocelyn ALL=(postgres) NOPASSWD: ALL 3 | -------------------------------------------------------------------------------- /roles/osmose-backend/meta/main.yml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | - role: postgresql 3 | when: not 'osmbin' in group_names and not 'osmosis' in group_names and not 'osm2pgsql' in group_names 4 | -------------------------------------------------------------------------------- /roles/osmose-frontend/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(osmose) NOPASSWD: ALL 2 | jocelyn ALL=(postgres) NOPASSWD: ALL 3 | -------------------------------------------------------------------------------- /roles/osmose-frontend/files/systemd-gunicorn.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=gunicorn daemon for osmose 3 | After=network.target 4 | 5 | [Service] 6 | PIDFile = /run/gunicorn-osmose/osmose.pid 7 | User=osmose 8 | Group=osmose 9 | RuntimeDirectory=gunicorn-osmose 10 | WorkingDirectory=/data/project/osmose/frontend/ 11 | Environment=PYTHONPATH=/data/project/osmose/frontend/osmose-frontend-venv/lib/python3.9/site-packages/ 12 | ExecStart=/data/project/osmose/frontend/osmose-frontend-venv/bin/gunicorn osmose:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 127.0.0.1:8000 --pid /run/gunicorn-osmose/osmose.pid 13 | ExecReload=/bin/kill -s HUP $MAINPID 14 | KillMode=mixed 15 | TimeoutStopSec=5 16 | PrivateTmp=true 17 | Restart=always 18 | RestartSec=30 19 | 20 | [Install] 21 | WantedBy=multi-user.target 22 | -------------------------------------------------------------------------------- /roles/osmose-frontend/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart postgresql 2 | service: name=postgresql state=restarted 3 | 4 | - name: restart apache 5 | service: name=apache2 state=restarted 6 | 7 | - name: restart gunicorn 8 | systemd: 9 | name: gunicorn-osmose 10 | state: restarted 11 | enabled: yes 12 | -------------------------------------------------------------------------------- /roles/osmose-frontend/templates/postgresql-config: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | shared_buffers = 4GB 3 | work_mem = 16MB 4 | maintenance_work_mem = 512MB 5 | 6 | effective_io_concurrency = 2 7 | 8 | checkpoint_timeout = 15min 9 | max_wal_size = 4GB 10 | checkpoint_completion_target = 0.8 11 | -------------------------------------------------------------------------------- /roles/osmosis/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(postgres) NOPASSWD: ALL 2 | 3 | fred ALL=(osmosis) NOPASSWD: ALL 4 | jocelyn ALL=(osmosis) NOPASSWD: ALL 5 | -------------------------------------------------------------------------------- /roles/overpass-api/README.md: -------------------------------------------------------------------------------- 1 | overpass-api 2 | ============ 3 | 4 | This role install overpass-api and one script which will setup the database on first boot. 5 | 6 | Requirements 7 | ------------ 8 | 9 | No special requirements; note that this role requires root access, so either run it in a playbook with a global become: yes, or invoke the role in your playbook. 10 | 11 | Role Variables 12 | -------------- 13 | 14 | ``` 15 | user: overpass 16 | overpass_version: skip 17 | overpass_pbf_region: planet 18 | overpass_pbf_root_url: https://planet.osm.org/pbf 19 | overpass_replication_url: https://planet.osm.org/replication/minute 20 | overpass_replication_interval: minute 21 | ``` 22 | 23 | `user` is the owner of the overpass database and files. 24 | 25 | The `overpass_version` refer to version used in http://dev.overpass-api.de/releases/. For example, `v0.7.54`. 26 | 27 | `overpass_replication_interval` can be `minute` or `day`. 28 | 29 | Dependencies 30 | ------------ 31 | 32 | This role depends on `shared/project-account.yml`. 33 | 34 | Example Playbook 35 | ---------------- 36 | 37 | ```yaml 38 | - name: overpass-api.yml 39 | hosts: overpass-api 40 | gather_facts: no 41 | roles: 42 | - role: overpass-api 43 | when: overpass_version != "skip" 44 | become: yes 45 | ``` 46 | -------------------------------------------------------------------------------- /roles/overpass-api/defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | overpass_user: overpass 3 | overpass_version: skip 4 | overpass_pbf_region: planet 5 | overpass_pbf_root_url: https://planet.osm.org/pbf 6 | overpass_replication_url: https://planet.osm.org/replication/minute 7 | overpass_replication_interval: minute 8 | overpass_cgi_scripts: 9 | - interpreter 10 | - kill_my_queries 11 | - convert 12 | - timestamp 13 | - map 14 | -------------------------------------------------------------------------------- /roles/overpass-api/files/fcgiwrap: -------------------------------------------------------------------------------- 1 | # Number of instances to launch 2 | DAEMON_OPTS="-c 4 -f" 3 | -------------------------------------------------------------------------------- /roles/overpass-api/files/rate_limit.conf: -------------------------------------------------------------------------------- 1 | limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 2 | -------------------------------------------------------------------------------- /roles/overpass-api/handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart munin-node 3 | service: 4 | name: munin-node 5 | state: restarted 6 | 7 | - name: reload nginx 8 | service: 9 | name: nginx 10 | state: reloaded 11 | 12 | - name: restart fcgiwrap 13 | service: 14 | name: fcgiwrap 15 | state: restarted 16 | -------------------------------------------------------------------------------- /roles/overpass-api/meta/mail.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | min_ansible_version: 2.3 4 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: check ansible version 2 | assert: 3 | that: 4 | - "ansible_version.full | version_compare('2.3', '>=')" 5 | msg: "ansible version must be >= 2.3, please update ansible." 6 | 7 | - include_tasks: ../../../shared/project-account.yml 8 | vars: 9 | user: "{{ overpass_user }}" 10 | user_system: "yes" 11 | 12 | 13 | - name: set overpass_database_dir 14 | set_fact: 15 | overpass_database_dir: "{{ ssd_dir|default(work_dir) }}/database" 16 | 17 | - name: set overpass_webroot_dir 18 | set_fact: 19 | overpass_webroot_dir: "{{ work_dir }}/www" 20 | 21 | - name: create overpass_database_dir and overpass_webroot_dir 22 | file: 23 | path: "{{ item }}" 24 | state: directory 25 | owner: "{{ overpass_user }}" 26 | group: "{{ overpass_user }}" 27 | with_items: 28 | - "{{ overpass_database_dir }}" 29 | - "{{ overpass_webroot_dir }}" 30 | 31 | - import_tasks: compile.yml 32 | - import_tasks: set_up_database.yml 33 | - import_tasks: services.yml 34 | - import_tasks: web.yml 35 | - import_tasks: munin.yml 36 | - import_tasks: restart.yml 37 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/munin.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: test if /etc/munin/plugins exists 3 | stat: 4 | path: /etc/munin/plugins 5 | register: stat_result 6 | 7 | - name: install munin plugins 8 | template: 9 | src: templates/munin/overpass_db_lag 10 | dest: /etc/munin/plugins 11 | mode: 0755 12 | notify: 13 | - restart munin-node 14 | when: 15 | - stat_result.stat.exists == True 16 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/restart.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: restart services when overpass version changed 3 | systemd: 4 | name: "{{ item }}" 5 | state: restarted 6 | enabled: yes 7 | daemon_reload: yes 8 | with_items: 9 | - overpass-dispatcher.service 10 | - overpass-copy-id.service 11 | - overpass-diff-downloader.service 12 | - overpass-diff-applier.service 13 | - overpass-areas-dispatcher.service 14 | - overpass-areas-builder.service 15 | notify: 16 | - restart fcgiwrap 17 | - reload nginx 18 | when: 19 | - overpass_tar.changed 20 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/services.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: disable overpass-updater.service 3 | systemd: 4 | name: overpass-updater.service 5 | enabled: no 6 | state: stopped 7 | ignore_errors: yes 8 | 9 | - name: remove overpass-updater.service 10 | file: 11 | path: /etc/systemd/system/overpass-updater.service 12 | state: absent 13 | 14 | - name: install systemd services 15 | template: 16 | src: "templates/{{ item }}" 17 | dest: /etc/systemd/system 18 | with_items: 19 | - overpass-dispatcher.service 20 | - overpass-copy-id.service 21 | - overpass-diff-downloader.service 22 | - overpass-diff-applier.service 23 | - overpass-areas-dispatcher.service 24 | - overpass-areas-builder.service 25 | 26 | - name: enable systemd services 27 | systemd: 28 | name: "{{ item }}" 29 | enabled: yes 30 | daemon_reload: yes 31 | with_items: 32 | - overpass-dispatcher.service 33 | - overpass-copy-id.service 34 | - overpass-diff-downloader.service 35 | - overpass-diff-applier.service 36 | - overpass-areas-dispatcher.service 37 | - overpass-areas-builder.service 38 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/set_up_database.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: 3 | pkg: "{{ item }}" 4 | with_items: 5 | - osmctools 6 | - python3-requests 7 | - python3-systemd 8 | 9 | - name: create {{ project_dir }}/bin/ 10 | file: 11 | path: "{{ project_dir }}/bin/" 12 | state: directory 13 | 14 | - name: install overpass-setup.py 15 | template: 16 | src: templates/overpass-setup.py 17 | dest: "/usr/local/bin/" 18 | owner: "{{ overpass_user }}" 19 | mode: 0744 20 | 21 | - name: install overpass-setup.service 22 | template: 23 | src: templates/overpass-setup.service 24 | dest: /etc/systemd/system 25 | register: service 26 | 27 | - name: enable overpass-setup.service 28 | systemd: 29 | name: overpass-setup.service 30 | state: started 31 | enabled: yes 32 | daemon_reload: yes 33 | no_block: yes 34 | when: service.changed 35 | 36 | - name: install overpass-copy-id.py 37 | template: 38 | src: templates/overpass-copy-id.py 39 | dest: "/usr/local/bin/" 40 | owner: "{{ overpass_user }}" 41 | mode: 0744 42 | -------------------------------------------------------------------------------- /roles/overpass-api/tasks/web.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: 3 | pkg: "{{ item }}" 4 | with_items: 5 | - nginx 6 | - fcgiwrap 7 | 8 | - name: set number of fcgiwrap instances 9 | copy: 10 | src: files/fcgiwrap 11 | dest: /etc/default/fcgiwrap 12 | notify: 13 | - restart fcgiwrap 14 | 15 | - name: configure api endpoint 16 | template: 17 | src: templates/default.conf 18 | dest: /etc/nginx/sites-available/default 19 | notify: 20 | - reload nginx 21 | 22 | - name: add limit_req_zone 23 | copy: 24 | src: files/rate_limit.conf 25 | dest: /etc/nginx/conf.d 26 | notify: 27 | - reload nginx 28 | 29 | - name: install html page 30 | template: 31 | src: "templates/{{ item }}" 32 | dest: "{{ overpass_webroot_dir }}" 33 | with_items: 34 | - index.html 35 | - api.html 36 | notify: 37 | - reload nginx 38 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/api.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | overpass.openstreetmap.fr 8 | 26 | 27 | 28 | 29 |
30 |

overpass.openstreetmap.fr/api/interpreter

31 |

overpass.openstreetmap.fr/api/kill_my_queries

32 |

overpass.openstreetmap.fr/api/convert

33 |

overpass.openstreetmap.fr/api/timestamp

34 |
35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/default.conf: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | listen [::]:80; 4 | root {{ overpass_webroot_dir }}; 5 | 6 | set_real_ip_from 0.0.0.0/0; 7 | real_ip_header X-Forwarded-For; 8 | 9 | limit_req zone=one burst=5; 10 | keepalive_timeout 65; 11 | 12 | location ~ ^/api/({{ overpass_cgi_scripts|join('|') }}) { 13 | fastcgi_read_timeout 900; 14 | fastcgi_pass unix:/run/fcgiwrap.socket; 15 | include fastcgi_params; 16 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 17 | default_type application/octet-stream; 18 | sendfile on; 19 | } 20 | 21 | location = / { 22 | index index.html; 23 | } 24 | 25 | location = /api { 26 | try_files /api.html =404; 27 | } 28 | 29 | location ~* /oapi/(.*) { 30 | return 301 /api/$1?$args; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | overpass.openstreetmap.fr 8 | 26 | 27 | 28 | 29 |

Bienvenue sur overpass.openstreetmap.fr

30 |
31 |

overpass.openstreetmap.fr/api

32 |

Overpass-api version {{ overpass_version }}

33 |
34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/munin/overpass_db_lag: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | VERSION={{ overpass_database_dir }}/osm_base_version 4 | 5 | if [[ "$1" == "config" ]]; then 6 | { 7 | echo 'graph_title Lag to OSM main database' 8 | echo 'graph_vlabel secondes' 9 | echo 'graph_category overpass-api' 10 | echo "overpass_db_lag.label database lag" 11 | echo "overpass_db_lag.warning 300" 12 | echo "overpass_db_lag.critical 3600" 13 | exit 0 14 | } 15 | fi 16 | 17 | if [ -s $VERSION ]; then 18 | { 19 | DB_DATE=$(date +%s --utc -d "$(cat $VERSION | sed s/\\\\//g)") 20 | CUR_DATE=$(date -u +%s) 21 | LAG=$(($CUR_DATE - $DB_DATE)) 22 | } 23 | fi 24 | 25 | echo "overpass_db_lag.value $LAG" 26 | exit 0 27 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-areas-builder.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass areas builder 3 | Requires=overpass-dispatcher.service overpass-areas-dispatcher.service 4 | After=overpass-dispatcher.service overpass-areas-dispatcher.service 5 | AssertPathExists={{ overpass_database_dir }}/replicate_id 6 | 7 | [Service] 8 | Type=simple 9 | User={{ overpass_user }} 10 | ExecStart=/usr/local/bin/rules_loop.sh {{ overpass_database_dir }} 11 | Nice=19 12 | Restart=always 13 | RestartSec=30s 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-areas-dispatcher.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass areas dispatcher 3 | Requires=overpass-dispatcher.service 4 | After=overpass-dispatcher.service 5 | AssertPathExists={{ overpass_database_dir }}/replicate_id 6 | 7 | [Service] 8 | Type=simple 9 | User={{ overpass_user }} 10 | ExecStart=/usr/local/bin/dispatcher --areas --db-dir={{ overpass_database_dir }} 11 | ExecStop=/usr/local/bin/dispatcher --areas --terminate 12 | Restart=always 13 | RestartSec=30s 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-copy-id.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import logging 4 | 5 | from systemd.journal import JournalHandler 6 | 7 | log = logging.getLogger('overpass-setup.py') 8 | log.addHandler(JournalHandler()) 9 | log.setLevel(logging.INFO) 10 | 11 | log.info('write first_replicate_id') 12 | with open('{{ overpass_database_dir }}/replicate_id') as fd: 13 | rid = fd.readline() 14 | 15 | with open('{{ overpass_database_dir }}/first_replicate_id', 'w') as fd: 16 | fd.write('ID=%s' % rid) 17 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-copy-id.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass dirty hack for copying replicate_id 3 | AssertPathExists={{ overpass_database_dir }}/replicate_id 4 | 5 | [Service] 6 | Type=simple 7 | User={{ overpass_user }} 8 | ExecStart=/usr/local/bin/overpass-copy-id.py 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-diff-applier.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass diff applier 3 | Requires=overpass-dispatcher.service overpass-diff-downloader.service 4 | After=overpass-dispatcher.service overpass-diff-downloader.service 5 | AssertPathExists={{ overpass_database_dir }}/first_replicate_id 6 | 7 | [Service] 8 | Type=simple 9 | User={{ overpass_user }} 10 | EnvironmentFile={{ overpass_database_dir }}/first_replicate_id 11 | ExecStart=/usr/local/bin/apply_osc_to_db.sh "/tmp/overpass_diffs/" ${ID} --meta=yes 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-diff-downloader.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass diff downloader 3 | Requires=overpass-dispatcher.service overpass-copy-id.service 4 | After=overpass-dispatcher.service overpass-copy-id.service 5 | AssertPathExists={{ overpass_database_dir }}/first_replicate_id 6 | 7 | [Service] 8 | Type=simple 9 | User={{ overpass_user }} 10 | EnvironmentFile={{ overpass_database_dir }}/first_replicate_id 11 | ExecStart=/usr/local/bin/fetch_osc.sh ${ID} {{ overpass_replication_url }} "/tmp/overpass_diffs/" 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-dispatcher.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass dispatcher 3 | AssertPathExists={{ overpass_database_dir }}/replicate_id 4 | 5 | [Service] 6 | Type=simple 7 | User={{ overpass_user }} 8 | ExecStart=/usr/local/bin/dispatcher --osm-base --db-dir={{ overpass_database_dir }} --meta 9 | ExecStop=/usr/local/bin/dispatcher --osm-base --terminate 10 | Restart=always 11 | RestartSec=30s 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-setup.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Setup overpass database on firstboot 3 | ConditionPathExists=!{{ overpass_database_dir }}/replicate_id 4 | 5 | [Service] 6 | Type=oneshot 7 | User={{ overpass_user }} 8 | ExecStart=/usr/local/bin/overpass-setup.py 9 | ExecStart=+/bin/systemctl restart overpass-dispatcher.service 10 | ExecStart=/usr/local/bin/dispatcher --rate-limit=32 11 | ExecStart=+/bin/systemctl restart overpass-diff-applier.service 12 | ExecStart=+/bin/systemctl restart overpass-areas-dispatcher.service 13 | ExecStart=+/bin/systemctl restart overpass-areas-builder.service 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /roles/overpass-api/templates/overpass-updater.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Overpass diff updater 3 | Requires=overpass-dispatcher.service 4 | After=overpass-dispatcher.service 5 | AssertPathExists={{ overpass_database_dir }}/replicate_id 6 | 7 | [Service] 8 | Type=simple 9 | User={{ overpass_user }} 10 | ExecStart=/usr/local/bin/fetch_osc_and_apply.sh {{ overpass_replication_url }} --meta=yes 11 | Restart=always 12 | RestartSec=30s 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /roles/polygons/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerAdmin webmaster@localhost 3 | ServerName polygons.openstreetmap.fr 4 | DocumentRoot /data/project/polygons/polygons-generation/website/ 5 | 6 | Header set Access-Control-Allow-Origin "*" 7 | 8 | TimeOut 1800 9 | 10 | 11 | Options Indexes FollowSymLinks MultiViews ExecCGI 12 | AddHandler cgi-script .py 13 | DirectoryIndex index.py index.html index.cgi index.pl index.php index.xhtml index.htm 14 | AllowOverride None 15 | 16 | 17 | Allow from all 18 | 19 | = 2.4> 20 | Require all granted 21 | 22 | 23 | 24 | ErrorLog ${APACHE_LOG_DIR}/polygons-error.log 25 | 26 | # Possible values include: debug, info, notice, warn, error, crit, 27 | # alert, emerg. 28 | LogLevel warn 29 | 30 | CustomLog ${APACHE_LOG_DIR}/polygons-access.log combined 31 | 32 | -------------------------------------------------------------------------------- /roles/polygons/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(polygons) NOPASSWD: ALL 2 | -------------------------------------------------------------------------------- /roles/polygons/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/postgresql/files/logrotate-postgres: -------------------------------------------------------------------------------- 1 | /var/log/postgresql/*.log { 2 | daily 3 | rotate 30 4 | copytruncate 5 | delaycompress 6 | # from https://wiki.archlinux.org/title/logrotate#Compressing_logs 7 | compress 8 | compresscmd /usr/bin/zstd 9 | compressext .zst 10 | compressoptions -T0 --long 11 | uncompresscmd /usr/bin/unzstd 12 | notifempty 13 | missingok 14 | su root root 15 | } 16 | -------------------------------------------------------------------------------- /roles/postgresql/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart postgresql 2 | service: name=postgresql state=restarted 3 | 4 | - name: reload postgresql 5 | service: name=postgresql state=reloaded 6 | 7 | - name: systemd daemon-reload 8 | ansible.builtin.systemd: 9 | daemon_reload: true 10 | 11 | - name: restart munin-node 12 | service: name=munin-node state=restarted 13 | -------------------------------------------------------------------------------- /roles/postgresql/templates/systemd-postgresql-override.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | [Service] 3 | Restart=always 4 | RestartSec=30s 5 | -------------------------------------------------------------------------------- /roles/proxmox-backup/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: systemd daemon-reload 2 | systemd: 3 | daemon_reload: yes 4 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-daily.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=proxmox-autosnap daily 3 | 4 | [Service] 5 | Type=oneshot 6 | WorkingDirectory=/home/proxmox-backup/proxmox-autosnap 7 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label daily --snap --date-iso-format 8 | {% if proxmox_backup_target is defined %} 9 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --zfs-send-to {{ proxmox_backup_target }} --zfs-send-to-hostname 10 | {% endif %} 11 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined%}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label daily --clean --keep 6 12 | User=proxmox-backup 13 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-daily.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Run proxmox-autosnap daily 3 | 4 | [Timer] 5 | OnCalendar=Tue..Sun *-*-2..31 00:05:00 6 | 7 | [Install] 8 | WantedBy=timers.target 9 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-monthly.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=proxmox-autosnap monthly 3 | 4 | [Service] 5 | Type=oneshot 6 | WorkingDirectory=/home/proxmox-backup/proxmox-autosnap 7 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label monthly --snap --date-iso-format 8 | {% if proxmox_backup_target is defined %} 9 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --zfs-send-to {{ proxmox_backup_target }} --zfs-send-to-hostname 10 | {% endif %} 11 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label monthly --clean --keep 3 12 | User=proxmox-backup 13 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-monthly.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Run proxmox-autosnap monthly 3 | 4 | [Timer] 5 | OnCalendar=*-*-1 00:05:00 6 | 7 | [Install] 8 | WantedBy=timers.target 9 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-weekly.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=proxmox-autosnap weekly 3 | 4 | [Service] 5 | Type=oneshot 6 | WorkingDirectory=/home/proxmox-backup/proxmox-autosnap 7 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined%}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label weekly --snap --date-iso-format 8 | {% if proxmox_backup_target is defined %} 9 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined %}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --zfs-send-to {{ proxmox_backup_target }} --zfs-send-to-hostname 10 | {% endif %} 11 | ExecStart=/home/proxmox-backup/proxmox-autosnap/proxmox-autosnap.py -v all {% if proxmox_backup_exclude is defined%}--exclude {{ proxmox_backup_exclude }} {% endif %}--sudo --label weekly --clean --keep 3 12 | User=proxmox-backup 13 | -------------------------------------------------------------------------------- /roles/proxmox-backup/templates/proxmox-autosnap-weekly.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Run proxmox-autosnap weekly 3 | 4 | [Timer] 5 | OnCalendar=Mon *-*-2..31 00:05:00 6 | 7 | [Install] 8 | WantedBy=timers.target 9 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/opendkim-keytable: -------------------------------------------------------------------------------- 1 | openstreetmap.fr openstreetmap.fr:dkim:/etc/opendkim/keys/default/default.private 2 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/opendkim-signer.conf: -------------------------------------------------------------------------------- 1 | Syslog yes 2 | LogResults yes 3 | LogWhy yes 4 | SyslogSuccess yes 5 | UMask 007 6 | KeyTable refile:/etc/opendkim/keytable 7 | SigningTable refile:/etc/opendkim/signingtable 8 | Mode s 9 | InternalHosts 0.0.0.0/0 10 | Socket local:/var/run/opendkim/signer.sock 11 | PidFile /var/run/opendkim/signer.pid 12 | TrustAnchorFile /usr/share/dns/root.key 13 | UserID opendkim 14 | Background no 15 | Nameservers 127.0.0.1 16 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/opendkim-signingtable: -------------------------------------------------------------------------------- 1 | *@openstreetmap.fr openstreetmap.fr 2 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/opendkim-verifier.conf: -------------------------------------------------------------------------------- 1 | Syslog yes 2 | LogResults yes 3 | LogWhy yes 4 | SyslogSuccess yes 5 | UMask 007 6 | Mode v 7 | AllowSHA1Only yes 8 | AlwaysAddARHeader yes 9 | Socket local:/var/run/opendkim/verifier.sock 10 | PidFile /var/run/opendkim/verifier.pid 11 | TrustAnchorFile /usr/share/dns/root.key 12 | UserID opendkim 13 | Background no 14 | Nameservers 127.0.0.1 15 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/pmg-master.cf.in.patch: -------------------------------------------------------------------------------- 1 | --- /var/lib/pmg/templates/master.cf.in 2019-07-07 19:03:17.957141351 +0000 2 | +++ templates/master.cf.in 2019-07-07 19:04:42.573314160 +0000 3 | @@ -83,6 +83,7 @@ 4 | -o smtpd_helo_restrictions= 5 | -o smtpd_client_restrictions= 6 | -o smtpd_sender_restrictions= 7 | + -o smtpd_milters=unix:/var/run/opendkim/signer.sock 8 | 9 | [% pmg.mail.ext_port %] inet n - - - 1 postscreen 10 | 11 | @@ -91,6 +92,27 @@ 12 | -o receive_override_options=no_address_mappings 13 | -o smtpd_discard_ehlo_keywords=silent-discard,dsn 14 | -o mynetworks=127.0.0.0/8,[% postfix.int_ip %] 15 | + -o smtpd_milters=unix:/var/run/opendkim/verifier.sock,unix:/var/run/opendmarc/opendmarc.sock 16 | + 17 | +submission inet n - - - 100 smtpd 18 | + -o content_filter=scan:127.0.0.1:10023 19 | + -o smtpd_enforce_tls=yes 20 | + -o smtpd_sasl_auth_enable=yes 21 | + -o smtpd_client_restrictions=permit_sasl_authenticated,reject 22 | + -o smtpd_recipient_restrictions=reject_unknown_recipient_domain 23 | + -o smtpd_sender_restrictions= 24 | + -o smtpd_helo_restrictions= 25 | + -o smtpd_milters=unix:/var/run/opendkim/signer.sock 26 | + 27 | +smtps inet n - - - 100 smtpd 28 | + -o content_filter=scan:127.0.0.1:10023 29 | + -o smtpd_tls_wrappermode=yes 30 | + -o smtpd_sasl_auth_enable=yes 31 | + -o smtpd_client_restrictions=permit_sasl_authenticated,reject 32 | + -o smtpd_recipient_restrictions=reject_unknown_recipient_domain 33 | + -o smtpd_sender_restrictions= 34 | + -o smtpd_helo_restrictions= 35 | + -o smtpd_milters=unix:/var/run/opendkim/signer.sock 36 | 37 | 127.0.0.1:10025 inet n - n - - smtpd 38 | -o content_filter= 39 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/postfix-sasl-smtpd.conf: -------------------------------------------------------------------------------- 1 | pwcheck_method: saslauthd 2 | saslauthd_path: /var/run/saslauthd/mux 3 | mech_list: PLAIN LOGIN 4 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/systemd-opendkim-signer.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=OpenDKIM DomainKeys Identified Mail (DKIM) Milter - signer 3 | Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html 4 | After=network.target nss-lookup.target 5 | 6 | [Service] 7 | Type=simple 8 | UMask=0007 9 | ExecStart=/usr/sbin/opendkim -x /etc/opendkim/signer.conf 10 | User=opendkim 11 | Group=opendkim 12 | MemoryLimit=50M 13 | PrivateTmp=yes 14 | PrivateDevices=yes 15 | ProtectSystem=full 16 | ProtectHome=yes 17 | NoNewPrivileges=yes 18 | Restart=on-failure 19 | ExecReload=/bin/kill -USR1 20 | 21 | [Install] 22 | WantedBy=multi-user.target 23 | 24 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/files/systemd-opendkim-verifier.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=OpenDKIM DomainKeys Identified Mail (DKIM) Milter - verifier 3 | Documentation=man:opendkim(8) man:opendkim.conf(5) man:opendkim-genkey(8) man:opendkim-genzone(8) man:opendkim-testadsp(8) man:opendkim-testkey http://www.opendkim.org/docs.html 4 | After=network.target nss-lookup.target 5 | 6 | [Service] 7 | Type=simple 8 | UMask=0007 9 | ExecStart=/usr/sbin/opendkim -x /etc/opendkim/verifier.conf 10 | User=opendkim 11 | Group=opendkim 12 | MemoryLimit=50M 13 | PrivateTmp=yes 14 | PrivateDevices=yes 15 | ProtectSystem=full 16 | ProtectHome=yes 17 | NoNewPrivileges=yes 18 | Restart=on-failure 19 | ExecReload=/bin/kill -USR1 20 | 21 | [Install] 22 | WantedBy=multi-user.target 23 | -------------------------------------------------------------------------------- /roles/proxmox-mail-gateway/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload opendkim-verifier 2 | systemd: name=opendkim-verifier state=reloaded 3 | 4 | - name: reload opendkim-signer 5 | systemd: name=opendkim-signer state=reloaded 6 | 7 | - name: reload opendmarc 8 | systemd: name=opendmarc state=reloaded 9 | 10 | - name: reload postfix 11 | systemd: name=postfix state=reloaded 12 | 13 | 14 | - name: restart opendkim-verifier 15 | systemd: name=opendkim-verifier state=restarted 16 | 17 | - name: restart opendkim-signer 18 | systemd: name=opendkim-signer state=restarted 19 | -------------------------------------------------------------------------------- /roles/proxycache/files/nginx-proxy.osmose.vm.openstreetmap.fr.site: -------------------------------------------------------------------------------- 1 | proxy_cache_path /var/cache/nginx-proxy-osmose levels=1:2 keys_zone=proxy-osmose:100m inactive=7d max_size=50g; 2 | 3 | server { 4 | listen 80; 5 | listen [::]:80; 6 | server_name proxy.osmose.openstreetmap.fr proxy.osmose.vm.openstreetmap.fr; 7 | 8 | access_log /var/log/nginx/proxy.log.gz combined buffer=64k flush=1s; 9 | 10 | location /mapillary/maps/vtp/ { 11 | proxy_cache_key "$uri"; # pour entrée unique dans le cache quel que soit HTTP/HTTPS, le host ou les params supp. 12 | proxy_pass https://tiles.mapillary.com/maps/vtp/; 13 | proxy_cache proxy-osmose; 14 | proxy_cache_valid 200 302 62d; 15 | proxy_cache_valid 404 1m; 16 | proxy_cache_lock on; 17 | proxy_temp_path /tmp/nginx; 18 | proxy_set_header X-Real-IP $remote_addr; 19 | proxy_set_header X-Forwarded-For $remote_addr; 20 | add_header X-Cache-Status $upstream_cache_status; 21 | 22 | # si upstream down, on envoie la copie qu'on a en cache 23 | proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504; 24 | 25 | # time out settings 26 | proxy_connect_timeout 6000; 27 | proxy_send_timeout 6000; 28 | proxy_read_timeout 6000; 29 | send_timeout 6000; 30 | 31 | proxy_buffer_size 64k; 32 | proxy_buffers 16 32k; 33 | proxy_busy_buffers_size 64k; 34 | proxy_temp_file_write_size 64k; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /roles/proxycache/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: reload nginx 2 | service: name=nginx state=reloaded 3 | -------------------------------------------------------------------------------- /roles/proxycache/templates/nginx-site-cyclosm.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | listen [::]:80; 4 | server_name {{ item.websites }}; 5 | 6 | {% if item.redirect_to_https is defined and item.redirect_to_https %} 7 | include /etc/nginx/global.d/letsencrypt-challenge.conf; 8 | 9 | location /.well-known/acme-challenge { 10 | 11 | } 12 | 13 | # On redirige tout en HTTPS 14 | location / { 15 | return 301 https://$host$request_uri; 16 | } 17 | } 18 | 19 | server { 20 | server_name {{ item.websites }}; 21 | 22 | {% endif %} 23 | include /etc/nginx/global.d/*.conf; 24 | 25 | #charset koi8-r; 26 | access_log "/var/log/nginx/{{ item.logname }}.access.log"; 27 | 28 | client_max_body_size 50M; 29 | 30 | proxy_connect_timeout 6000; 31 | proxy_send_timeout 6000; 32 | proxy_read_timeout 6000; 33 | send_timeout 6000; 34 | 35 | if ($request_uri ~ ^/.well-known/acme-challenge ) { 36 | # pas de redirect 37 | break; 38 | } 39 | 40 | # on autorise l'accès bypassant le cache que pour www.cyclosm.org, sinon on redirige 41 | valid_referers ~www.cyclosm.org ; 42 | if ($invalid_referer) { 43 | return 301 $scheme://a.tile-cyclosm.openstreetmap.fr$request_uri; 44 | } 45 | 46 | location / { 47 | {% if item.target_port is defined %} 48 | proxy_pass http://{{ item.target }}:{{ item.target_port }}; 49 | {% else %} 50 | proxy_pass http://{{ item.target }}; 51 | {% endif %} 52 | proxy_redirect off; 53 | proxy_buffering off; 54 | proxy_set_header Host $host; 55 | proxy_set_header X-Real-IP $remote_addr; 56 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 57 | proxy_set_header X-Forwarded-Proto $scheme; 58 | 59 | add_header Permissions-Policy interest-cohort=(); 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /roles/proxycache/templates/nginx-site-peertube.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | listen [::]:80; 4 | server_name {{ item.websites }}; 5 | 6 | include /etc/nginx/global.d/*.conf; 7 | 8 | #charset koi8-r; 9 | access_log "/var/log/nginx/{{ item.logname }}.access.log"; 10 | 11 | client_max_body_size 8G; 12 | 13 | proxy_connect_timeout 6000; 14 | proxy_send_timeout 6000; 15 | proxy_read_timeout 6000; 16 | send_timeout 6000; 17 | proxy_next_upstream off; 18 | 19 | location / { 20 | proxy_pass http://{{ item.target }}; 21 | proxy_redirect off; 22 | proxy_buffering off; 23 | proxy_set_header Host $host; 24 | proxy_set_header X-Real-IP $remote_addr; 25 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 26 | proxy_set_header X-Forwarded-Proto $scheme; 27 | 28 | add_header Permissions-Policy interest-cohort=(); 29 | } 30 | 31 | # Websocket tracker 32 | location /tracker/socket { 33 | # Peers send a message to the tracker every 15 minutes 34 | # Don't close the websocket before this time 35 | proxy_read_timeout 1200s; 36 | proxy_set_header Upgrade $http_upgrade; 37 | proxy_set_header Connection "upgrade"; 38 | proxy_http_version 1.1; 39 | 40 | proxy_pass http://{{ item.target }}; 41 | proxy_set_header Host $host; 42 | proxy_set_header X-Real-IP $remote_addr; 43 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 44 | proxy_set_header X-Forwarded-Proto $scheme; 45 | } 46 | {% if item.dedicated_certbot_cert is defined %} 47 | ssl_certificate /etc/letsencrypt/live/{{ item.websites.split(' ')[0] }}/fullchain.pem; # managed by Certbot 48 | ssl_certificate_key /etc/letsencrypt/live/{{ item.websites.split(' ')[0] }}/privkey.pem; # managed by Certbot 49 | {% endif %} 50 | } 51 | -------------------------------------------------------------------------------- /roles/proxycache/templates/nginx-site-port.j2: -------------------------------------------------------------------------------- 1 | server { 2 | listen 80; 3 | listen [::]:80; 4 | server_name {{ item.websites }}; 5 | 6 | include /etc/nginx/global.d/*.conf; 7 | 8 | #charset koi8-r; 9 | access_log "/var/log/nginx/{{ item.logname }}.access.log"; 10 | 11 | client_max_body_size 50M; 12 | 13 | proxy_connect_timeout 6000; 14 | proxy_send_timeout 6000; 15 | proxy_read_timeout 6000; 16 | send_timeout 6000; 17 | 18 | location / { 19 | proxy_pass http://{{ item.target }}:{{ item.target_port }}; 20 | proxy_redirect off; 21 | proxy_buffering off; 22 | proxy_set_header Host $host; 23 | proxy_set_header X-Real-IP $remote_addr; 24 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 25 | proxy_set_header X-Forwarded-Proto $scheme; 26 | 27 | add_header Permissions-Policy interest-cohort=(); 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /roles/rawedit/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | 3 | ServerAdmin jjaubert@openstreetmap.fr 4 | 5 | ServerName rawedit.openstreetmap.fr 6 | 7 | 8 | Options FollowSymLinks 9 | AllowOverride None 10 | 11 | 12 | DocumentRoot /data/project/rawedit/rawedit/ 13 | 14 | AddDefaultCharset UTF-8 15 | Options Indexes FollowSymLinks MultiViews 16 | AllowOverride None 17 | 18 | SetHandler mod_python 19 | PythonHandler rawedit 20 | PythonDebug On 21 | 22 | 23 | 24 | ErrorLog /var/log/apache2/rawedit-error.log 25 | LogLevel warn 26 | CustomLog /var/log/apache2/rawedit-access.log combined 27 | ServerSignature On 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /roles/rawedit/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/rawedit/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: set postgresql_version = 9.1 2 | set_fact: 3 | postgresql_version: 9.1 4 | postgis_version: 1.5 5 | postgis_suffix: 6 | when: ansible_distribution_release == "wheezy" 7 | 8 | - name: set postgresql_version = 9.4 9 | set_fact: 10 | postgresql_version: 9.4 11 | postgis_version: 2.1 12 | postgis_suffix: -2.1 13 | when: ansible_distribution_release == "jessie" 14 | 15 | - name: install packages 16 | apt: pkg={{ item }} 17 | with_items: 18 | - apache2 19 | - postgresql-{{ postgresql_version }} 20 | - postgresql-contrib-{{ postgresql_version }} 21 | - libapache2-mod-python 22 | 23 | - name: ensure postgresql server is running 24 | service: name=postgresql state=started 25 | 26 | - include_tasks: ../../../shared/project-account.yml 27 | vars: 28 | user: rawedit 29 | 30 | 31 | - name: init database 32 | postgresql_db: name=rawedit encoding='UTF-8' lc_collate='en_US.UTF-8' lc_ctype='en_US.UTF-8' template='template0' 33 | register: createdb_rawedit 34 | become: yes 35 | become_user: postgres 36 | 37 | - name: init database user 38 | postgresql_user: name=rawedit password=rawedit00 db=rawedit priv=ALL 39 | become: yes 40 | become_user: postgres 41 | 42 | - name: checkout git repository 43 | git: repo={{ item.repo }} dest={{ item.dir }} force=no update=no 44 | become: yes 45 | become_user: rawedit 46 | with_items: 47 | - {repo: "https://github.com/osm-fr/rawedit.git", dir: "/data/project/rawedit/rawedit"} 48 | 49 | - name: psql init 50 | command: psql -d rawedit -f /data/project/rawedit/rawedit/schema.sql 51 | become: yes 52 | become_user: rawedit 53 | 54 | - name: copy apache config 55 | copy: src=apache.site dest=/etc/apache2/sites-available/rawedit.conf 56 | notify: restart apache 57 | 58 | - name: add apache mods 59 | file: src="/etc/apache2/mods-available/{{ item }}" dest="/etc/apache2/mods-enabled/{{ item }}" state=link 60 | notify: restart apache 61 | with_items: 62 | - python.load 63 | 64 | - name: enable apache site 65 | file: src="/etc/apache2/sites-available/rawedit.conf" dest="/etc/apache2/sites-enabled/rawedit.conf" state=link 66 | notify: restart apache 67 | -------------------------------------------------------------------------------- /roles/renderd/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart renderd 2 | service: 3 | name: renderd 4 | state: restarted 5 | 6 | - name: reload apache2 7 | service: 8 | name: apache2 9 | state: reloaded 10 | -------------------------------------------------------------------------------- /roles/sympa/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerName listes.openstreetmap.fr 3 | ServerAlias dev.listes.openstreetmap.fr 4 | 5 | Redirect /index.html /wws/lists 6 | DocumentRoot /var/www/vh-listes 7 | 8 | # copied from /etc/sympa/apache -- GA 9 | Alias /static-sympa /data/project/sympa/static_content 10 | ScriptAlias /wws /usr/lib/cgi-bin/sympa/wwsympa-wrapper.fcgi 11 | 12 | 13 | Require all granted 14 | 15 | 16 | # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. 17 | LogLevel warn 18 | ErrorLog /var/log/apache2/listes-error.log 19 | CustomLog /var/log/apache2/listes-access.log combined 20 | 21 | Options FollowSymlinks 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /roles/sympa/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | 4 | - name: restart sympa 5 | service: name=sympa state=restarted 6 | -------------------------------------------------------------------------------- /roles/sympa/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: pkg={{ item }} 3 | with_items: 4 | - apache2 5 | - sympa 6 | - wwsympa 7 | 8 | - name: create /data/project/sympa 9 | file: 10 | path: /data/project/sympa 11 | state: directory 12 | owner: sympa 13 | group: sympa 14 | notify: restart sympa 15 | 16 | - name: configure sympa 17 | lineinfile: 18 | dest: /etc/sympa/sympa.conf 19 | regexp: "{{ item.regexp }}" 20 | line: "{{ item.line }}" 21 | with_items: 22 | - {regexp: "^home ", line: "home /data/project/sympa"} 23 | - {regexp: "^static_content_path ", line: "static_content_path /data/project/sympa/static_content"} 24 | - {regexp: "^domain ", line: "domain listes.openstreetmap.fr"} 25 | - {regexp: "^listmaster ", line: "listmaster listmaster@listes.openstreetmap.fr"} 26 | - {regexp: "^wwsympa_url ", line: "wwsympa_url http://listes.openstreetmap.fr/wws"} 27 | - {regexp: "^http_host ", line: "http_host http://listes.openstreetmap.fr"} 28 | - {regexp: "^listmaster ", line: "listmaster listmaster@listes.openstreetmap.fr,liste2@letuffe.org,jocelyn.jaubert@gmail.com"} 29 | notify: restart sympa 30 | 31 | - name: configure wwsympa 32 | lineinfile: 33 | dest: /etc/sympa/wwsympa.conf 34 | regexp: "{{ item.regexp }}" 35 | line: "{{ item.line }}" 36 | with_items: 37 | - {regexp: "^use_fast_cgi ", line: "use_fast_cgi 1"} 38 | - {regexp: "^arc_path ", line: "arc_path /data/project/sympa/wwsarchive"} 39 | notify: restart sympa 40 | 41 | - name: create /var/www/vh-listes 42 | file: 43 | path: /var/www/vh-listes 44 | state: directory 45 | 46 | - name: copy apache config 47 | copy: src=apache.site dest="/etc/apache2/sites-available/sympa.conf" 48 | notify: restart apache 49 | 50 | - name: enable apache site 51 | file: src="/etc/apache2/sites-available/sympa.conf" dest="/etc/apache2/sites-enabled/sympa.conf" state=link 52 | notify: restart apache 53 | -------------------------------------------------------------------------------- /roles/taginfo/files/10_download.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | if [ -d /data/work/taginfo/data ]; then 5 | echo "$(date --rfc-3339=s) DEBUG: dir ok" 6 | else 7 | echo "$(date --rfc-3339=s) WARN: dir /data/work/taginfo/data inexistant. tentative mkdir" 8 | mkdir -p /data/work/taginfo/data || { echo "$(date --rfc-3339=s) ERROR: mkdir" ; exit 1 ; } 9 | echo "$(date --rfc-3339=s) INFO: mkdir ok" 10 | fi 11 | cd /data/work/taginfo/data || { echo "$(date --rfc-3339=s) ERROR: cd" ; exit 1 ; } 12 | if [ -f france.osm.pbf ]; then 13 | echo "$(date --rfc-3339=s) INFO: ${0} pbf avant download" 14 | ls -l france.osm.pbf 15 | else 16 | echo "$(date --rfc-3339=s) INFO: ${0} pas de pbf avant download" 17 | fi 18 | wget -N http://download.openstreetmap.fr/extracts/europe/france.osm.pbf || echo "$(date --rfc-3339=s) ERROR: wget" 19 | echo "$(date --rfc-3339=s) INFO: ${0} pbf apres download" 20 | ls -l france.osm.pbf 21 | wget -q -N http://download.openstreetmap.fr/extracts/europe/france.state.txt || echo "$(date --rfc-3339=s) ERROR: wget" 22 | mv france.state.txt ../osmosis/state.txt || { echo "$(date --rfc-3339=s) ERROR: mv" ; exit 1 ; } 23 | echo "$(date --rfc-3339=s) INFO: ${0} retrait relation admin hors france" 24 | ./remove-not-in-france.sh || echo "$(date --rfc-3339=s) ERROR: remove-not-in-france.sh but trying to continue" 25 | echo "$(date --rfc-3339=s) INFO: ${0} recherche timestamp des donnees" 26 | osmconvert france.osm.pbf --out-statistics | grep "^timestamp max: " | sed "s/timestamp max: //" | tee france.osm.pbf.timestamp 27 | echo "$(date --rfc-3339=s) INFO: ${0} end." 28 | -------------------------------------------------------------------------------- /roles/taginfo/files/10_filtre.osh.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | #osmconvert data/france.osh.pbf -B=france.poly --complete-multipolygons --complete-boundaries --timestamp="2022-01-17T00:59:37Z" -o=tmp.osh.pbf ; mv tmp.osh.pbf data/france.osh.pbf 5 | osmium extract --with-history --overwrite -p france.poly data/france.osh.pbf -o tmp.osh.pbf ; mv tmp.osh.pbf data/france.osh.pbf 6 | echo "$(date --rfc-3339=s) INFO: ${0} end." 7 | -------------------------------------------------------------------------------- /roles/taginfo/files/10_filtre.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | osmconvert data/france.osm.pbf -B=france.poly --complete-multipolygons --complete-boundaries -o=tmp.pbf ; mv tmp.pbf data/france.osm.pbf 5 | echo "$(date --rfc-3339=s) INFO: ${0} end." 6 | -------------------------------------------------------------------------------- /roles/taginfo/files/10_update_pbf.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | echo "$(date --rfc-3339=s) INFO: ${0} pbf avant maj" 5 | SOURCE_OSM_FILE="/data/work/taginfo/data/france.osm.pbf" 6 | ls -l $SOURCE_OSM_FILE 7 | WORKDIR=/data/work/taginfo/ 8 | OSMOSIS=/data/project/taginfo/osmosis/bin/osmosis 9 | #OSMOSIS=/usr/bin/osmosis 10 | 11 | CURDATE="`date +%F-%R`" 12 | 13 | LOCKFILE="$WORKDIR/osmosis/lock-osmosis-maj" 14 | CHANGEFILE="$WORKDIR/osmosis/change-${CURDATE}.osc.gz" 15 | TARGET_OSM_FILE="$WORKDIR/osmosis/france-${CURDATE}.osm.pbf" 16 | POLYGON="$HOME/france.poly" 17 | 18 | if [ -e "$LOCKFILE" ]; then 19 | echo "Lock file $LOCKFILE still present - aborting update" 20 | exit 1 21 | fi 22 | 23 | touch $LOCKFILE 24 | 25 | cd $WORKDIR/osmosis 26 | 27 | echo "$(date --rfc-3339=s) INFO: *** Get changes from server" 28 | cp "$WORKDIR/osmosis/state.txt" "$WORKDIR/osmosis/state.txt.old" 29 | $OSMOSIS --read-replication-interval workingDirectory="$WORKDIR/osmosis" --simplify-change --write-xml-change "$CHANGEFILE" 30 | if [ $? -ne 0 ]; then 31 | cp "$WORKDIR/osmosis/state.txt.old" "$WORKDIR/osmosis/state.txt" 32 | rm $LOCKFILE 33 | exit 1 34 | fi 35 | 36 | ls -l "$CHANGEFILE" 37 | 38 | echo "$(date --rfc-3339=s) INFO: *** Update $SOURCE_OSM_FILE" 39 | #$OSMOSIS --read-xml-change "$CHANGEFILE" --read-pbf "$SOURCE_OSM_FILE" --apply-change --buffer --bounding-polygon file="$POLYGON" --buffer --write-pbf file="$TARGET_OSM_FILE" 40 | $OSMOSIS --read-xml-change "$CHANGEFILE" --read-pbf "$SOURCE_OSM_FILE" --apply-change --buffer --buffer --write-pbf file="$TARGET_OSM_FILE" 41 | if [ $? -ne 0 ]; then 42 | cp "$WORKDIR/osmosis/state.txt.old" "$WORKDIR/osmosis/state.txt" 43 | rm $LOCKFILE 44 | exit 1 45 | fi 46 | 47 | rm "$SOURCE_OSM_FILE" 48 | ln "$TARGET_OSM_FILE" "$SOURCE_OSM_FILE" 49 | 50 | rm "$TARGET_OSM_FILE" 51 | rm "$CHANGEFILE" 52 | 53 | rm $LOCKFILE 54 | echo "$(date --rfc-3339=s) INFO: ${0} pbf apres maj" 55 | ls -l $SOURCE_OSM_FILE 56 | echo "$(date --rfc-3339=s) INFO: ${0} end." 57 | -------------------------------------------------------------------------------- /roles/taginfo/files/20_update.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | export GEM_HOME=`pwd`/taginfo/web/gem 5 | 6 | cd taginfo/sources || { echo "$(date --rfc-3339=s) ERROR: cd taginfo/sources" ; exit 1 ;} 7 | 8 | BUILD=/data/work/taginfo/build 9 | if [ -d $BUILD/db ]; then 10 | echo "$(date --rfc-3339=s) DEBUG: $BUILD/db existe. rien a faire" >/dev/null 11 | else 12 | echo "$(date --rfc-3339=s) ERROR: $BUILD/db n'existe pas. a creer" 13 | mkdir -p $BUILD/db || { echo "$(date --rfc-3339=s) ERROR: mkdir -p $BUILD/db" ; exit 1 ;} 14 | fi 15 | mkdir -p $BUILD/log || { echo "$(date --rfc-3339=s) ERROR: mkdir -p $BUILD/log" ; exit 1 ;} 16 | if [ ! -e $BUILD/db/taginfo-db.db ]; then 17 | echo "$(date --rfc-3339=s) DEBUG: $BUILD/db/taginfo-db.db n'existe pas. rien a faire" #>/dev/null 18 | else 19 | echo "$(date --rfc-3339=s) INFO: $BUILD/db/taginfo-db.db existe. test sqlite3" 20 | sqlite3 $BUILD/db/taginfo-db.db "select 1;" || { echo "$(date --rfc-3339=s) ERROR: test sqlite3" ; exit 1 ; } 21 | fi 22 | #rm $BUILD/log/* 23 | 24 | [ -x ./update_all.sh ] || { echo "$(date --rfc-3339=s) ERROR: /update_all.sh non executable" ; exit 1 ;} 25 | echo "$(date --rfc-3339=s) DEBUG: before update_all.sh" #>/dev/null 26 | ./update_all.sh $BUILD || { echo "$(date --rfc-3339=s) ERROR: ./update_all.sh $BUILD" ; echo "5 dernièrs lignes du log $(ls -t $BUILD/log/* | head -1)" ; tail -n 5 $(ls -t $BUILD/log/* | head -1) ; exit 1 ;} 27 | echo "$(date --rfc-3339=s) DEBUG: after update_all.sh" #>/dev/null 28 | 29 | cat `ls -t $BUILD/log/* | head -1` | grep "Done update_all" && echo "$(date --rfc-3339=s) INFO: ${0} end." && exit 0 30 | echo "$(date --rfc-3339=s) ERROR: ${0} Done update_all non trouvé dans $(ls -t $BUILD/log/* | head -1)" 31 | echo "5 dernièrs lignes du log $(ls -t $BUILD/log/* | head -1)" 32 | tail -n 5 $(ls -t $BUILD/log/* | head -1) 33 | exit 1 34 | -------------------------------------------------------------------------------- /roles/taginfo/files/30_restart_webserver.sh: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | rm /data/work/taginfo/data/*.db 5 | cp `find /data/work/taginfo/build -name '*.db'` /data/work/taginfo/data 6 | cp /data/work/taginfo/build/download/* /data/work/taginfo/download 7 | 8 | pkill -f taginfo.rb 9 | sleep 2 10 | 11 | cd taginfo/web 12 | export GEM_HOME=./gem 13 | ./taginfo.rb 4567 2> /data/work/taginfo/server.err > /data/work/taginfo/server.log & 14 | echo "$(date --rfc-3339=s) INFO: ${0} end." 15 | -------------------------------------------------------------------------------- /roles/taginfo/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ProxyPass http://localhost:4567/ 3 | Allow from all 4 | 5 | 6 | 7 | 8 | ServerAdmin jjaubert@openstreetmap.fr 9 | 10 | ServerName taginfo.openstreetmap.fr 11 | 12 | ProxyPass / http://localhost:4567/ 13 | ProxyPassReverse / http://localhost:4567/ 14 | ProxyPreserveHost On 15 | ProxyTimeout 600 16 | 17 | LogLevel warn 18 | ErrorLog /var/log/apache2/taginfo-error.log 19 | CustomLog /var/log/apache2/taginfo-access.log combined 20 | 21 | 22 | -------------------------------------------------------------------------------- /roles/taginfo/files/crontab.osh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | 5 | # cette version met a jour le pbf local a partir des diff (2h) mais peux être relancé au besoin 6 | #./10_update_pbf.sh 7 | 8 | # cette version telecharge le pbf maj sur download.osm.fr (5min) mais nécessite d'être lancé après cette maj evidement 9 | #./10_download.sh 10 | 11 | # 2019/04/04 temporairement faire download+maj vu probleme maj sur download.openstreetmap.fr 12 | # 2019/06/08 changement des && en ; pour eviter qu'une erreur de maj empeche l'utilisation du nouveau pbf telecharge 13 | #./10_download.sh ; ./10_update_pbf.sh 14 | 15 | # 2019/06/13 osmosis (2h30 pour maj+filtre) -> osmosis (30min pour maj) + osmfilter (15min pour filtre) 16 | ./10_update_pbf.osh.sh ; ./10_filtre.osh.sh 17 | 18 | echo "DEBUG: le reste ne fonctionne pas ou pas encore en osh" 19 | exit 0 20 | # environ 35min 21 | ./remove-metadata.osh.sh 22 | 23 | # environ 15min 24 | ./20_update.sh ; ./30_restart_webserver.sh 25 | 26 | echo "$(date --rfc-3339=s) INFO: ${0} end." 27 | -------------------------------------------------------------------------------- /roles/taginfo/files/crontab.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | 5 | # cette version met a jour le pbf local a partir des diff (2h) mais peux être relancé au besoin 6 | #./10_update_pbf.sh 7 | 8 | # cette version telecharge le pbf maj sur download.osm.fr (5min) mais nécessite d'être lancé après cette maj evidement 9 | #./10_download.sh 10 | 11 | # 2019/04/04 temporairement faire download+maj vu probleme maj sur download.openstreetmap.fr 12 | # 2019/06/08 changement des && en ; pour eviter qu'une erreur de maj empeche l'utilisation du nouveau pbf telecharge 13 | # 2021/04/28 changement des ;; en && puisque le script ne sort plus en erreur en cas de non telechargement 14 | #./10_download.sh && ./10_update_pbf.sh 15 | 16 | # 2019/06/13 osmosis (2h30 pour maj+filtre) -> osmosis (30min pour maj) + osmfilter (15min pour filtre) 17 | ./10_update_pbf.sh && ./10_filtre.sh 18 | 19 | # environ 35min 20 | ./remove-metadata.sh 21 | 22 | # environ 15min 23 | ./20_update.sh && ./30_restart_webserver.sh 24 | 25 | echo "$(date --rfc-3339=s) INFO: ${0} end." 26 | -------------------------------------------------------------------------------- /roles/taginfo/files/fr-metropolitaine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/osm-fr/ansible-scripts/e584edfe7e342ee58737e49735c9487033eb34da/roles/taginfo/files/fr-metropolitaine.png -------------------------------------------------------------------------------- /roles/taginfo/files/france.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/osm-fr/ansible-scripts/e584edfe7e342ee58737e49735c9487033eb34da/roles/taginfo/files/france.png -------------------------------------------------------------------------------- /roles/taginfo/files/key-source-valide.txt: -------------------------------------------------------------------------------- 1 | ^generator:source$ 2 | ^water_source$ 3 | ^light_source$ 4 | ^plant:source$ 5 | ^resource$ 6 | ^source_ref$ 7 | ^opensource$ 8 | ^map_source$ 9 | ^map_source:attribution$ 10 | ^power_source$ 11 | ^fire_hydrant:water_source$ 12 | -------------------------------------------------------------------------------- /roles/taginfo/files/mise-a-jour.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | if [ -d taginfo-tools ]; then 5 | cd taginfo-tools/ || { echo "$(date --rfc-3339=s) ERROR: cd "; exit 1;} 6 | git fetch || { echo "$(date --rfc-3339=s) ERROR: git fetch"; exit 2;} 7 | git rebase origin/master || { echo "$(date --rfc-3339=s) ERROR: git rebase"; exit 3;} 8 | else 9 | git clone https://github.com/taginfo/taginfo-tools.git || { echo "$(date --rfc-3339=s) ERROR: git clone"; exit 4;} 10 | cd taginfo-tools/ || { echo "$(date --rfc-3339=s) ERROR: cd "; exit 1;} 11 | fi 12 | git submodule update --init || { echo "$(date --rfc-3339=s) ERROR: git submodule update"; exit 5;} 13 | mkdir -p build || { echo "$(date --rfc-3339=s) ERROR: mkdir"; exit 6;} 14 | cd build 15 | cmake .. || { echo "$(date --rfc-3339=s) ERROR: cmake"; exit 7;} 16 | make || { echo "$(date --rfc-3339=s) ERROR: make"; exit 8;} 17 | 18 | cd ../../taginfo/ 19 | timestamp=$(date --utc +%Y-%m-%d-%H-%M-%S) 20 | git checkout -b master-$timestamp || { echo "$(date --rfc-3339=s) ERROR: checkout -b"; exit 9;} 21 | git checkout master || { echo "$(date --rfc-3339=s) ERROR: checkout master"; exit 10;} 22 | git fetch || { echo "$(date --rfc-3339=s) ERROR: fetch"; exit 11;} 23 | git stash || { echo "$(date --rfc-3339=s) ERROR: stash"; exit 12;} 24 | git rebase origin/master || { echo "$(date --rfc-3339=s) ERROR: rebase"; exit 13;} 25 | 26 | cd ~/bin 27 | cp -p ../taginfo-tools/build/src/taginfo-* . || { echo "$(date --rfc-3339=s) ERROR: cp"; exit 14;} 28 | cd .. 29 | 30 | cp -p taginfo-config.json taginfo-config.json-$timestamp || { echo "$(date --rfc-3339=s) ERROR: cp2"; exit 15;} 31 | colordiff -u taginfo-config.json taginfo/taginfo-config-example.json | less -R 32 | vi taginfo-config.json 33 | 34 | ./20_update.sh || { echo "$(date --rfc-3339=s) ERROR: 20_update.sh"; exit 16;} 35 | ./30_restart_webserver.sh || { echo "$(date --rfc-3339=s) ERROR: 30_restart_webserver.sh"; exit 17;} 36 | echo "$(date --rfc-3339=s) INFO: ${0} end." 37 | -------------------------------------------------------------------------------- /roles/taginfo/files/remove-metadata.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | Input=data/france.osm.pbf 5 | if [ -f france.o5m ]; then 6 | echo "$(date --rfc-3339=s) WARNING: fichier o5m deja present" 7 | else 8 | echo "$(date --rfc-3339=s) INFO: conversion o5m" 9 | ./osmconvert $Input -o=france.o5m 10 | fi 11 | if [ -f /data/work/$USER/out-key.txt ]; then 12 | echo "$(date --rfc-3339=s) INFO: liste de clef avant traitement deja present" 13 | #true # pas de debug 14 | else 15 | echo "$(date --rfc-3339=s) INFO: liste de clef avant traitement" 16 | ./osmfilter france.o5m --out-count > /data/work/$USER/out-key.txt 17 | wc -l /data/work/$USER/out-key.txt 18 | fi 19 | 20 | # pernet a titre de debug de lister la valeur des sources avant purge 21 | #[ -f /data/work/$USER/out-key-source.txt ] || ./osmfilter france.o5m --out-count=source > /data/work/$USER/out-key-source.txt 22 | 23 | #echo "$(date --rfc-3339=s) INFO: change_source-maxspeed_into_maxspeed-type" 24 | #./change_source-maxspeed_into_maxspeed-type.sh france.o5m 25 | 26 | ./remove-source.sh france.o5m || echo error remove-source-sh 27 | 28 | echo "$(date --rfc-3339=s) INFO: liste de clef apres traitement" 29 | ./osmfilter france.o5m --out-count > /data/work/$USER/out-key-new.txt 30 | wc -l /data/work/$USER/out-key-new.txt 31 | 32 | echo "$(date --rfc-3339=s) INFO: diff" 33 | diff /data/work/$USER/out-key.txt /data/work/$USER/out-key-new.txt 34 | 35 | echo "$(date --rfc-3339=s) INFO: conversion pbf" 36 | ./osmconvert france.o5m -o=$Input ; rm -f france.o5m 37 | 38 | echo "$(date --rfc-3339=s) INFO: ${0} end." 39 | -------------------------------------------------------------------------------- /roles/taginfo/files/remove-not-in-france.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | echo "$(date --rfc-3339=s) INFO: conversion o5m" 5 | [ -f france.o5m ] || osmconvert data/france.osm.pbf -o=france.o5m 6 | echo "$(date --rfc-3339=s) INFO: osmfilter drop-relations" 7 | # il n'est pas tres clair comment fonctionne le or avec des valeurs multiple. pour le moment je met une valeur par ligne 8 | osmfilter france.o5m --drop-relations="@id=6900538 or type=network" -o=new.o5m && mv -f new.o5m france.o5m 9 | osmfilter france.o5m --drop-relations="@id=52411 or type=collection" -o=new.o5m && mv -f new.o5m france.o5m 10 | echo "$(date --rfc-3339=s) INFO: conversion pbf" 11 | osmconvert france.o5m -o=data/france.osm.pbf ; rm -f france.o5m 12 | echo "$(date --rfc-3339=s) INFO: ${0} end." 13 | -------------------------------------------------------------------------------- /roles/taginfo/files/remove-source.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "$(date --rfc-3339=s) INFO: ${0} start ..." 4 | 5 | echo "$(date --rfc-3339=s) DEBUG: arg ${*}" 6 | [ -z "${1}" ] && echo "$(date --rfc-3339=s) ERROR: ${0} " && exit 1 7 | [ ! -f "${1}" ] && echo "$(date --rfc-3339=s) ERROR: fichier ${1} illisible" && exit 2 8 | [ ! -f /data/work/$USER/out-key.txt ] && echo "$(date --rfc-3339=s) ERROR: fichier /data/work/$USER/out-key.txt illisible" && exit 3 9 | [ ! -f /data/project/$USER/key-source-valide.txt ] && echo "$(date --rfc-3339=s) ERROR: fichier /data/project/$USER/key-source-valide.txt illisible" && exit 4 10 | 11 | Nbr=$(cat /data/work/$USER/out-key.txt | awk '{ print $2 }' | grep -i source | egrep -vf /data/project/$USER/key-source-valide.txt | egrep -v '( |"|=)' | wc -l) 12 | echo "$(date --rfc-3339=s) DEBUG: il y a $Nbr ligne(s) source (hormis exeption) dans le /data/work/$USER/out-key.txt" 13 | 14 | [ $Nbr -gt 0 ] || { echo "$(date --rfc-3339=s) WARNING: nombre de clef source egale a 0, rien a faire" && exit 0 ; } 15 | 16 | # purge limité a 1000 clefs par execution pour éviter le debordement en arg lors de la 1ere execution 17 | ./osmfilter ${1} --drop-tags="$(for key in $(cat /data/work/$USER/out-key.txt | awk '{ print $2 }' | grep -i source | egrep -vf /data/work/$USER/key-source-valide.txt | egrep -v '( |"|=)' | head -n 1000); do echo -n "$key= "; done | sed "s/ $//")" -o=tmp.$(basename ${0} .sh).o5m ; mv -f tmp.$(basename ${0} .sh).o5m ${1} 18 | 19 | echo "$(date --rfc-3339=s) INFO: ${0} end." 20 | -------------------------------------------------------------------------------- /roles/taginfo/files/sudoers: -------------------------------------------------------------------------------- 1 | jocelyn ALL=(taginfo) NOPASSWD: ALL 2 | -------------------------------------------------------------------------------- /roles/taginfo/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | service: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/umap/files/anonymous_edit_url.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ################################################################################ 4 | # v1.1.0, 2023/04/11, Marc_marc: 5 | # - pushd to bin dir to avoid the need of -i for sudo 6 | ################################################################################ 7 | # v1.0.0, 2023/03/09, Marc_marc: 8 | # - initial public release 9 | ################################################################################ 10 | ## Copyrights Marc_marc 2023 ## 11 | ## License : GNU General Public License as published by ## 12 | ## the Free Software Foundation, either version 3 of the License, ## 13 | ## or (at your option) any later version. ## 14 | ## http://www.gnu.org/licenses/ ## 15 | ################################################################################ 16 | 17 | # exemple d'utilisation simplie dans l'infrastructure osm-fr 18 | # ssh osm144.openstreetmap.fr sudo -u umap /srv/umap/anonymous_edit_url.sh htps:/.... 19 | # ssh osm144.openstreetmap.fr sudo -u umap /srv/umap/anonymous_edit_url.sh 42 20 | 21 | echo "$(date --rfc-3339=s) INFO: ${0} start..." 22 | 23 | pushd $(dirname ${0}) > /dev/null || { echo "unable to cd $(dirname ${0}) ; exit 2 ; } 24 | 25 | if [ -z "${1}" ]; then 26 | echo "usage: ${0} numero_de_carte" 27 | exit 1 28 | fi 29 | source venv/bin/activate 30 | umap anonymous_edit_url $(echo $1 | cut -d"#" -f1 | cut -d"_" -f2) | grep http | sed "s/http:/https:/" | sed "s/\/en\//\/fr\//" 31 | 32 | popd > /dev/null 33 | 34 | echo "$(date --rfc-3339=s) INFO: ${0} end." 35 | -------------------------------------------------------------------------------- /roles/unattended-upgrades/files/auto-upgrades: -------------------------------------------------------------------------------- 1 | APT::Periodic::Update-Package-Lists "1"; 2 | APT::Periodic::Unattended-Upgrade "1"; 3 | APT::Periodic::AutocleanInterval "7"; 4 | -------------------------------------------------------------------------------- /roles/unattended-upgrades/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install unattended-upgrades 2 | apt: pkg=unattended-upgrades state=present update_cache=yes 3 | 4 | - name: create APT auto-upgrades configuration 5 | copy: > 6 | src=auto-upgrades dest=/etc/apt/apt.conf.d/20auto-upgrades 7 | owner=root group=root mode=0644 8 | -------------------------------------------------------------------------------- /roles/wireguard/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart wireguard 2 | systemd: 3 | name: wg-quick@wg0 4 | state: restarted 5 | -------------------------------------------------------------------------------- /roles/wireguard/tasks/files/wireguard_reresolve-dns.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Reresolve DNS of all WireGuard endpoints 3 | Wants=network-online.target 4 | After=network-online.target 5 | 6 | [Service] 7 | Type=oneshot 8 | ExecStart=/bin/sh -c 'for i in /etc/wireguard/*.conf; do /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh "$i"; done' 9 | -------------------------------------------------------------------------------- /roles/wireguard/tasks/files/wireguard_reresolve-dns.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Periodically reresolve DNS of all WireGuard endpoints 3 | 4 | [Timer] 5 | OnCalendar=*:0/5 6 | 7 | [Install] 8 | WantedBy=timers.target 9 | -------------------------------------------------------------------------------- /roles/wireguard/templates/wireguard-client-wg0.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | [Interface] 3 | PrivateKey = {{ lookup('file', 'credentials/wireguard/' + inventory_hostname + '.private.key') }} 4 | Address = {{ lookup('file', 'credentials/wireguard/' + inventory_hostname + '.address') }}/24 5 | 6 | [Peer] 7 | PublicKey = {{ lookup('file', 'credentials/wireguard/' + wireguard_server + '.public.key') }} 8 | Endpoint = {{ wireguard_server }}:1500 9 | {% for host in wireguard_hosts %} 10 | # {{ host }} 11 | {% if host | ansible.utils.ipv4 %} 12 | AllowedIPs = {{ host }}/32 13 | {% else %} 14 | {% for ip in lookup('community.general.dig', host, qtype='A', wantlist=true) | sort %} 15 | AllowedIPs = {{ ip }}/32 16 | {% endfor %} 17 | {% endif %} 18 | {% endfor %} 19 | -------------------------------------------------------------------------------- /roles/wireguard/templates/wireguard-server-wg0.conf: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | [Interface] 3 | PrivateKey = {{ lookup('file', 'credentials/wireguard/' + inventory_hostname + '.private.key') }} 4 | Address = {{ lookup('file', 'credentials/wireguard/' + inventory_hostname + '.address') }}/24 5 | ListenPort = 1500 6 | PreUp = iptables -t nat -A POSTROUTING -s 10.230.0.0/24 -o eth0 -j MASQUERADE 7 | PostDown = iptables -t nat -D POSTROUTING -s 10.230.0.0/24 -o eth0 -j MASQUERADE 8 | 9 | {% for client in wireguard_clients %} 10 | # {{ client }} 11 | [Peer] 12 | PublicKey = {{ lookup('file', 'credentials/wireguard/' + client + '.public.key') }} 13 | AllowedIPs = {{ lookup('file', 'credentials/wireguard/' + client + '.address') }}/32 14 | 15 | {% endfor %} 16 | -------------------------------------------------------------------------------- /roles/yeswiki/files/apache.site: -------------------------------------------------------------------------------- 1 | 2 | ServerAdmin webmaster@localhost 3 | 4 | ServerName educosm.openstreetmap.fr 5 | 6 | DocumentRoot /data/project/yeswiki/yeswiki/ 7 | 8 | Options Indexes FollowSymLinks MultiViews 9 | AllowOverride All 10 | Require all granted 11 | 12 | 13 | AccessFileName .htaccess 14 | 15 | LogLevel warn 16 | ErrorLog /var/log/apache2/yeswiki-error.log 17 | CustomLog /var/log/apache2/yeswiki-access.log combined 18 | 19 | 20 | -------------------------------------------------------------------------------- /roles/yeswiki/handlers/main.yml: -------------------------------------------------------------------------------- 1 | - name: restart apache 2 | systemd: name=apache2 state=restarted 3 | -------------------------------------------------------------------------------- /roles/yeswiki/tasks/main.yml: -------------------------------------------------------------------------------- 1 | - name: install packages 2 | apt: pkg={{ item }} 3 | with_items: 4 | - apache2 5 | - default-mysql-server 6 | - php7.0 7 | - php7.0-curl 8 | - php7.0-mbstring 9 | - php7.0-mysql 10 | - php7.0-xml 11 | - php7.0-zip 12 | - python-pymysql 13 | 14 | - include_tasks: ../../../shared/project-account.yml 15 | vars: 16 | user: yeswiki 17 | 18 | 19 | # install yeswiki manually in /data/project/yeswiki/yeswiki/ 20 | - name: check if yeswki was installed 21 | stat: 22 | path: /data/project/yeswiki/yeswiki/ 23 | register: p 24 | 25 | - fail: 26 | msg: "Please install yeswiki by decompressing a .zip from https://yeswiki.net/?TelechargementS" 27 | when: not (p.stat.isdir is defined and p.stat.isdir) 28 | 29 | - name: create mysql db 30 | mysql_db: 31 | name: yeswiki 32 | state: present 33 | login_unix_socket: /var/run/mysqld/mysqld.sock 34 | 35 | - name: create mysql user 36 | mysql_user: 37 | name: yeswiki 38 | password: "{{ lookup('password', 'credentials/yeswiki/' + inventory_hostname) }}" 39 | priv: "yeswiki.*:ALL" 40 | login_unix_socket: /var/run/mysqld/mysqld.sock 41 | 42 | - name: copy apache config 43 | copy: src=apache.site dest="/etc/apache2/sites-available/yeswiki.conf" 44 | notify: restart apache 45 | 46 | - name: enable apache site 47 | file: src="/etc/apache2/sites-available/yeswiki.conf" dest="/etc/apache2/sites-enabled/yeswiki.conf" state=link 48 | notify: restart apache 49 | -------------------------------------------------------------------------------- /shared/files/default.gitconfig: -------------------------------------------------------------------------------- 1 | [color] 2 | diff = auto 3 | status = auto 4 | branch = auto 5 | [alias] 6 | st = status 7 | ci = commit 8 | br = branch 9 | cp = cherry-pick 10 | logf = log --follow 11 | [log] 12 | decorate = short 13 | 14 | -------------------------------------------------------------------------------- /shared/files/default.vimrc: -------------------------------------------------------------------------------- 1 | colorscheme elflord 2 | syn on 3 | set ruler 4 | set noai 5 | set title 6 | 7 | set is " incremental search 8 | set hlsearch 9 | 10 | set foldlevel=500 11 | 12 | " Pour se souvenir de la dernière position dans le fichier 13 | autocmd BufReadPost * 14 | \ if line("'\"") > 0 && line("'\"") <= line("$") | 15 | \ exe "normal g`\"" | 16 | \ endif 17 | -------------------------------------------------------------------------------- /shared/osmosis.yml: -------------------------------------------------------------------------------- 1 | - name: download osmosis 2 | get_url: url=http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-{{ version }}.tgz dest=/data/project/{{ user }}/osmosis-{{ version }}.tgz sha256sum={{ osmosis_sha256sum }} 3 | become: yes 4 | become_user: osmosis 5 | 6 | - name: create osmosis directory 7 | file: path="/data/project/{{ user }}/osmosis-{{ version }}" state=directory 8 | become: yes 9 | become_user: "{{ user }}" 10 | 11 | - name: decompress osmosis 12 | command: creates="/data/project/{{ user }}/osmosis-{{ version }}/bin/osmosis" tar -xf "/data/project/{{ user }}/osmosis-{{ version }}.tgz" -C "/data/project/{{ user }}/osmosis-{{ version }}" 13 | become: yes 14 | become_user: "{{ user }}" 15 | -------------------------------------------------------------------------------- /shared/project-account.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Create root project_dir and work_dir 3 | ansible.builtin.file: 4 | path: "{{ item }}" 5 | state: directory 6 | mode: "0755" 7 | with_items: 8 | - /data/project 9 | - /data/work 10 | 11 | - name: Set project_dir and work_dir 12 | ansible.builtin.set_fact: 13 | project_dir: /data/project/{{ user }} 14 | work_dir: /data/work/{{ user }} 15 | 16 | - name: Init user ${user} 17 | ansible.builtin.user: 18 | name: "{{ user }}" 19 | home: "{{ project_dir }}" 20 | shell: /bin/bash 21 | generate_ssh_key: "{{ generate_ssh_key | default('no') }}" 22 | system: "{{ user_system | default('no') }}" 23 | 24 | - name: Init group ${user} 25 | ansible.builtin.group: 26 | name: "{{ user }}" 27 | 28 | - name: Check if /data exists 29 | ansible.builtin.stat: 30 | path: /data 31 | register: data_exists 32 | 33 | - name: Init /data path 34 | ansible.builtin.file: 35 | path: /data 36 | state: directory 37 | mode: "0755" 38 | when: not data_exists.stat.exists 39 | 40 | - name: Init /data/work/ path for ${user} 41 | ansible.builtin.file: 42 | path: "{{ work_dir }}" 43 | state: directory 44 | owner: "{{ user }}" 45 | group: "{{ user }}" 46 | mode: "0755" 47 | 48 | - name: Copy default config files 49 | ansible.builtin.copy: 50 | force: false 51 | src: shared/files/default{{ item }} 52 | dest: "{{ project_dir }}/{{ item }}" 53 | owner: "{{ user }}" 54 | group: "{{ user }}" 55 | mode: "0644" 56 | with_items: 57 | - .gitconfig 58 | - .vimrc 59 | -------------------------------------------------------------------------------- /site.yml: -------------------------------------------------------------------------------- 1 | - include: common.yml 2 | - include: osmose-backend.yml 3 | - include: taginfo.yml 4 | -------------------------------------------------------------------------------- /sympa.yml: -------------------------------------------------------------------------------- 1 | - name: sympa configuration 2 | hosts: sympa 3 | become: yes 4 | roles: 5 | - sympa 6 | -------------------------------------------------------------------------------- /taginfo.yml: -------------------------------------------------------------------------------- 1 | - name: taginfo configuration 2 | hosts: taginfo 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - taginfo 7 | -------------------------------------------------------------------------------- /unattended-upgrades.yml: -------------------------------------------------------------------------------- 1 | - name: unattended-upgrades configuration 2 | hosts: vm 3 | gather_facts: no 4 | become: yes 5 | roles: 6 | - unattended-upgrades 7 | -------------------------------------------------------------------------------- /wireguard.yml: -------------------------------------------------------------------------------- 1 | - name: wireguard configuration 2 | hosts: wireguard 3 | become: yes 4 | roles: 5 | - wireguard 6 | -------------------------------------------------------------------------------- /wordpress.yml: -------------------------------------------------------------------------------- 1 | - name: wordpress configuration 2 | hosts: wordpress 3 | become: yes 4 | roles: 5 | - role: ansible-role-storyteller 6 | -------------------------------------------------------------------------------- /yeswiki.yml: -------------------------------------------------------------------------------- 1 | - name: yeswiki configuration 2 | hosts: yeswiki 3 | become: yes 4 | roles: 5 | - yeswiki 6 | --------------------------------------------------------------------------------