Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate msperf #31

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
3 changes: 3 additions & 0 deletions qgis4/ansible/playbook.yml
Original file line number Diff line number Diff line change
@@ -18,3 +18,6 @@
tags: clean
- role: dashboard
tags: dashboard
- role: msperfs
tags: msperfs

8 changes: 8 additions & 0 deletions qgis4/ansible/roles/msperfs/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ms_perfs:
ms_perfs:
repo_url: https://github.com/camptocamp/ms_perfs.git
# which version (branch name, tag, SHA-1 ref ...) to clone
version: qgis-sysadmin-integration
docker_osm:
repo_url: https://github.com/pmauduit/docker-osm.git
version: create-extension-postgis
2 changes: 2 additions & 0 deletions qgis4/ansible/roles/msperfs/meta/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dependencies:
- role: nginx
106 changes: 106 additions & 0 deletions qgis4/ansible/roles/msperfs/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
- name: ensures python-psycopg2 is available
apt:
name: python-psycopg2
update_cache: yes

- name: clone the ms_perfs repository
git:
repo: "{{ ms_perfs.ms_perfs.repo_url }}"
dest: "/home/{{ user }}/ms_perfs"
version: "{{ ms_perfs.ms_perfs.version }}"
register: ms_perfs_git

- name: give the ms_perfs repository to {{ user }}
file:
path: "/home/{{ user }}/ms_perfs"
recurse: yes
owner: "{{ user }}"
group: "{{ user }}"
when: ms_perfs_git.changed

- name: clone the docker-osm repository
git:
repo: "{{ ms_perfs.docker_osm.repo_url }}"
dest: "/home/{{ user }}/ms_perfs/docker-osm"
version: "{{ ms_perfs.docker_osm.version }}"
register: ms_perfs_docker_osm_git

- name: give the docker-osm repository to {{ user }}
file:
path: "/home/{{ user }}/ms_perfs/docker-osm"
recurse: yes
owner: "{{ user }}"
group: "{{ user }}"
when: ms_perfs_docker_osm_git.changed

- name: check if OSM data from switzerland have been downloaded
stat:
path: "/home/{{ user }}/ms_perfs/docker-osm/settings/country.pbf"
register: switzerland_data

- name: download OSM data from switzerland
command: /usr/bin/python pbf_downloader.py switzerland
args:
chdir: "/home/{{ user }}/ms_perfs/docker-osm"
when: switzerland_data.stat.exists == false

- name: give the data to {{ user }}
file:
path: "/home/{{ user }}/ms_perfs/docker-osm"
recurse: yes
owner: "{{ user }}"
group: "{{ user }}"
when: switzerland_data.stat.exists == false

- name: Check if OSM datas have been already loaded
stat:
path: "/home/{{ user }}/.ms_perfs_data_loaded"
register: data_loaded

- name: Launch the docker composition from docker-osm
docker_service:
project_src: "/home/{{ user }}/ms_perfs/docker-osm"
build: yes
pull: yes
when: not data_loaded.stat.exists

- name: Wait for 10 minutes to get data sourced to postgresql
pause:
minutes: 10
when: not data_loaded.stat.exists

- name: Stopping the docker composition from docker-osm
docker_service:
project_src: "/home/{{ user }}/ms_perfs/docker-osm"
stopped: true
when: not data_loaded.stat.exists

- name: Create the flag so that OSM data won't be overwritten again
copy:
content: ""
dest: "/home/{{ user }}/.ms_perfs_data_loaded"
when: not data_loaded.stat.exists

- name: Configure Nginx to serve the ms_perfs results
template:
src: msperfs_nginx.j2
dest: /etc/nginx/sites-available/msperfs
mode: 0644
notify: restart nginx

- name: create symlink
file:
src: /etc/nginx/sites-available/msperfs
dest: /etc/nginx/sites-enabled/msperfs
state: link
notify: restart nginx

- name: Update crontab to periodically run ms_perfs
cron:
name: msperfs
user: "{{ user }}"
minute: "0"
hour: "2"
weekday: "6"
job: >
cd /home/{{ user }}/ms_perfs/ && make pull && make run > /tmp/msperfs.log 2>&1
16 changes: 16 additions & 0 deletions qgis4/ansible/roles/msperfs/templates/msperfs_nginx.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
server {
listen 8084;
listen [::]:8084;

root /home/{{ user }}/ms_perfs/archives;

index index.html index.htm index.nginx-debian.html;

server_name _;

location / {
try_files $uri $uri/ =404;
autoindex on;
}

}