| |
@@ -11,6 +11,50 @@
|
| |
mine_sysconfig: "/etc/sysconfig/minetest/{{ world.id }}.conf"
|
| |
mine_config: "/etc/minetest/{{ world.id }}.conf"
|
| |
|
| |
+ - name: install mapserver if activated
|
| |
+ block:
|
| |
+ - name: Ensure mapserver directory exists
|
| |
+ file:
|
| |
+ path: /opt/mapserver
|
| |
+ state: directory
|
| |
+
|
| |
+ - name: install mapserver
|
| |
+ unarchive:
|
| |
+ src: "https://github.com/minetest-mapserver/mapserver/releases/download/v4.7.0/mapserver_4.7.0_linux_amd64.tar.gz"
|
| |
+ dest: "/opt/mapserver/"
|
| |
+ owner: minetest
|
| |
+ group: minetest
|
| |
+ remote_src: yes
|
| |
+
|
| |
+ - name: install mapserver service
|
| |
+ copy:
|
| |
+ src: mapserver@.service
|
| |
+ dest: "/etc/systemd/system/mapserver@.service"
|
| |
+
|
| |
+ - name: get mapserver key
|
| |
+ shell: cat /opt/mapserver_key
|
| |
+ register: data
|
| |
+ ignore_errors: True
|
| |
+ changed_when: False
|
| |
+
|
| |
+ - name: generate mapserver secretkey
|
| |
+ set_fact:
|
| |
+ mapserver_secretkey: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
|
| |
+ when: data is failed
|
| |
+
|
| |
+ - name: read mapserver secretkey
|
| |
+ set_fact:
|
| |
+ mapserver_secretkey: "{{ data.stdout }}"
|
| |
+ when: data is not failed
|
| |
+
|
| |
+ - name: save generated key
|
| |
+ copy:
|
| |
+ dest: "/opt/mapserver_key"
|
| |
+ content: "{{ mapserver_secretkey }}"
|
| |
+ mode: 0600
|
| |
+
|
| |
+ when: mapserver is defined
|
| |
+
|
| |
- name: Games folder exists
|
| |
file:
|
| |
path: "{{ mine_home }}/.minetest/games"
|
| |
@@ -58,4 +102,39 @@
|
| |
name: minetest@{{ world.id }}.service
|
| |
enabled: true
|
| |
state: started
|
| |
-
|
| |
+
|
| |
+ - name: configure mapserver if activated
|
| |
+ block:
|
| |
+ - name: configure mapserver port for {{ world.id }}
|
| |
+ template:
|
| |
+ src: mapserver.json.j2
|
| |
+ dest: "{{ mine_home }}/{{ world.id }}/mapserver.json"
|
| |
+ owner: minetest
|
| |
+ group: minetest
|
| |
+ backup: yes
|
| |
+
|
| |
+ - name: wait for world to exist
|
| |
+ ansible.builtin.wait_for:
|
| |
+ path: "{{ mine_home }}/{{ world.id }}/map.sqlite"
|
| |
+ state: present
|
| |
+
|
| |
+ - name: start Minetest-mapserver for {{ world.id }}
|
| |
+ service:
|
| |
+ name: mapserver@{{ world.id }}.service
|
| |
+ enabled: true
|
| |
+ state: started
|
| |
+
|
| |
+ - name: setup nginx vhost
|
| |
+ template:
|
| |
+ src=mapserver_vhost_.conf.j2
|
| |
+ dest={{ nginx_location_available }}/mapserver_vhost_{{ world.id }}.conf
|
| |
+
|
| |
+ - name: create symlink nginx vhost
|
| |
+ file:
|
| |
+ src={{ nginx_location_available }}/mapserver_vhost_{{ world.id }}.conf
|
| |
+ dest={{ nginx_location_enabled }}/mapserver_vhost_{{ world.id }}.conf
|
| |
+ state=link
|
| |
+ notify: restart nginx
|
| |
+
|
| |
+ when: mapserver is defined
|
| |
+
|
| |
This is a reiteration of the previous PR #6, here are the changes since then: