mirror of
https://github.com/iiab/iiab.git
synced 2025-03-09 15:40:17 +00:00
commit
91c0fab1e7
6 changed files with 59 additions and 146 deletions
|
@ -1,12 +1,8 @@
|
|||
# minetest_install: False
|
||||
# minetest_enabled: False
|
||||
# minetest_port: 30000
|
||||
|
||||
# minetest_server_admin: Admin
|
||||
# All above are set in: github.com/iiab/iiab/blob/master/vars/default_vars.yml
|
||||
# If nec, change them by editing /etc/iiab/local_vars.yml prior to installing!
|
||||
|
||||
minetest_runas_user: minetest
|
||||
minetest_runas_group: minetest
|
||||
|
||||
minetest_config_file: /etc/minetest/minetest.conf
|
||||
minetest_server_admin: Admin
|
||||
minetest_default_runas_user: Debian-minetest
|
||||
minetest_default_runas_group: games
|
||||
|
|
|
@ -1,38 +1,19 @@
|
|||
# Give message and end play for unsupported platforms
|
||||
# For now only support rpi
|
||||
|
||||
- name: No install except Raspberry Pi for now
|
||||
debug:
|
||||
msg: "No install except Raspberry Pi for now."
|
||||
when: not is_rpi
|
||||
|
||||
# CAUTION: this stanza causes iiab-install to exit on Ubuntu/Debian/etc -- without completing roles/network
|
||||
- name: Terminate play if not Raspberry Pi
|
||||
meta: end_play
|
||||
when: not is_rpi
|
||||
|
||||
- include_tasks: calc_vars.yml
|
||||
|
||||
- name: Ensure Linux group '{{ minetest_runas_group }}' exists
|
||||
group:
|
||||
name: "{{ minetest_runas_group }}"
|
||||
state: present
|
||||
when: minetest_runas_user != 'root'
|
||||
|
||||
- name: Ensure Linux user '{{ minetest_runas_user }}' exists
|
||||
user:
|
||||
name: "{{ minetest_runas_user }}"
|
||||
groups: "{{ minetest_runas_group }}"
|
||||
state: present
|
||||
createhome: no
|
||||
shell: /bin/false
|
||||
when: minetest_runas_user != 'root'
|
||||
|
||||
- name: Check for minetest world file ({{ minetest_world_dir }}/world.mt)
|
||||
stat:
|
||||
path: "{{ minetest_world_dir }}/world.mt"
|
||||
register: minetest_world
|
||||
|
||||
- name: Create /library/games
|
||||
file:
|
||||
state: directory
|
||||
path: "{{ item }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0755
|
||||
with_items:
|
||||
- /library/games
|
||||
when: minetest_install
|
||||
|
||||
# rpi only
|
||||
- include_tasks: rpi_minetest_install.yml
|
||||
when: minetest_install and not minetest_world.stat.exists and is_rpi
|
||||
|
@ -61,18 +42,18 @@
|
|||
when: minetest_install
|
||||
|
||||
# enable or disable
|
||||
- name: Enable & Restart 'minetest-serve' service
|
||||
- name: Enable & Restart 'minetest-server' service
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: minetest-serve
|
||||
name: minetest-server
|
||||
enabled: yes
|
||||
state: restarted
|
||||
when: minetest_install and minetest_enabled
|
||||
|
||||
- name: Disable 'minetest-serve' service
|
||||
- name: Disable 'minetest-server' service
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: minetest-serve
|
||||
name: minetest-server
|
||||
enabled: no
|
||||
state: stopped
|
||||
when: minetest_install and not minetest_enabled
|
||||
|
|
|
@ -1,82 +1,36 @@
|
|||
# For non-rpi installs
|
||||
# Still a work in progress
|
||||
|
||||
# COMPARE tasks/calc_vars.yml
|
||||
- name: Set some facts
|
||||
set_fact:
|
||||
minetest_server_bin: /usr/lib/minetest/minetestserver
|
||||
# minetest_world_dir: /var/games/minetest-server/.minetest/worlds/world/ should be in library
|
||||
minetest_mods_dir: /usr/share/games/minetest_game/mods/
|
||||
- name: Install Minetest package
|
||||
package:
|
||||
name: minetest-server
|
||||
state: present
|
||||
|
||||
# Taken care of near top of tasks/main.yml
|
||||
#
|
||||
#- name: Ensure Linux group '{{ minetest_runas_group }}' exists
|
||||
# group:
|
||||
# name: "{{ minetest_runas_group }}"
|
||||
# state: present
|
||||
# when: minetest_runas_user != 'root'
|
||||
#
|
||||
#- name: Ensure Linux user '{{ minetest_runas_user }}' exists
|
||||
# user:
|
||||
# name: "{{ minetest_runas_user }}"
|
||||
# groups: "{{ minetest_runas_group }}"
|
||||
# state: present
|
||||
# createhome: no
|
||||
# shell: /bin/false
|
||||
# when: minetest_runas_user != 'root'
|
||||
- name: Add some parameters to /etc/minetest/minetest.conf that was automatically created
|
||||
lineinfile:
|
||||
path: /etc/minetest/minetest.conf
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
with_items:
|
||||
- { regexp: '^server_name = ', line: 'server_name = Internet in a Box Minetest Server' }
|
||||
- { regexp: '^name = ', line: 'name = Admin' }
|
||||
- { regexp: '^creative_mode = ', line: 'creative_mode = true' }
|
||||
- { regexp: '^port = ', line: 'port = {{ minetest_port }}' }
|
||||
|
||||
# SEE "Check for minetest world file" in tasks/main.yml
|
||||
#
|
||||
#- name: Create dir minetest_world_dir ({{ minetest_world_dir }})
|
||||
# file:
|
||||
# state: directory
|
||||
# path: "{{ minetest_world_dir }}"
|
||||
# owner: "{{ minetest_runas_user }}"
|
||||
# group: "{{ minetest_runas_group }}"
|
||||
# mode: 0755
|
||||
|
||||
#- name: Warn if not Raspberry Pi
|
||||
# debug:
|
||||
# msg: "No install except Raspberry Pi for now."
|
||||
# when: not is_rpi
|
||||
|
||||
- name: Download Minetest if not package
|
||||
get_url:
|
||||
url: "{{ rpi_src_url }}"
|
||||
dest: "{{ downloads_dir }}/{{ rpi_src }}"
|
||||
timeout: "{{ download_timeout }}"
|
||||
#when: is_rpi
|
||||
|
||||
- name: Install Minetest if not package
|
||||
debug:
|
||||
msg: "placeholder."
|
||||
#when: is_rpi
|
||||
|
||||
- name: Create /etc/minetest
|
||||
- name: Create /library/games/minetest/worlds/world
|
||||
file:
|
||||
state: directory
|
||||
path: /etc/minetest
|
||||
owner: root
|
||||
group: root
|
||||
path: "{{ item }}"
|
||||
owner: "{{ minetest_default_runas_user }}"
|
||||
group: "{{ minetest_default_runas_group }}"
|
||||
mode: 0755
|
||||
|
||||
# - name: move files to world dir
|
||||
|
||||
- name: 'Change minetest_server_bin: /usr/bin/minetest-server if not RPi'
|
||||
set_fact:
|
||||
minetest_server_bin: /usr/bin/minetest-server
|
||||
#when: not is_rpi
|
||||
|
||||
- name: Create minetest-server service and minetest.conf file
|
||||
template:
|
||||
backup: no
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
with_items:
|
||||
- { src: 'minetest.conf.j2', dest: '/etc/minetest/minetest.conf' }
|
||||
- { src: 'minetest-serve.service.j2', dest: '/etc/systemd/system/minetest-serve.service' }
|
||||
- "{{ minetest_world_dir }}"
|
||||
|
||||
# - name: Start minetest
|
||||
- name: Change exec line in generated unit file
|
||||
lineinfile:
|
||||
path: /lib/systemd/system/minetest-server.service
|
||||
regexp: "{{ item.regexp }}"
|
||||
line: "{{ item.line }}"
|
||||
with_items:
|
||||
- { regexp: '^ExecStart=/usr/lib/minetest/minetestserver', line: 'ExecStart=/usr/lib/minetest/minetestserver --config /etc/minetest/minetest.conf --logfile /var/log/minetest/minetest.log --world "{{ minetest_world_dir }}"' }
|
||||
|
|
|
@ -14,8 +14,6 @@
|
|||
unarchive:
|
||||
src: "{{ downloads_dir }}/{{ item.name }}.zip"
|
||||
dest: "{{ minetest_game_dir }}/mods"
|
||||
owner: "{{ minetest_runas_user }}"
|
||||
group: "{{ minetest_runas_group }}"
|
||||
when: not minetest_mod.stat.exists
|
||||
|
||||
- name: Check if mod name has 'master' in it
|
||||
|
|
|
@ -1,23 +1,14 @@
|
|||
# For rpi installs
|
||||
|
||||
- name: Set some facts
|
||||
set_fact:
|
||||
rpi_src_url: http://www.nathansalapat.com/downloads/0.4.17.1.tar.gz
|
||||
rpi_src: minetest-0.4.17.1.tar.gz
|
||||
|
||||
- name: Install 'libhiredis-dev' package for Minetest
|
||||
package:
|
||||
name: libhiredis-dev
|
||||
state: present
|
||||
|
||||
#- name: Minetest already installed - terminate play
|
||||
# meta: end_play
|
||||
# when: minetest_world.stat.exists
|
||||
|
||||
- name: Download Minetest {{ rpi_src_url }} for RPi
|
||||
- name: Download Minetest {{ minetest_rpi_src_url }} for RPi
|
||||
get_url:
|
||||
url: "{{ rpi_src_url }}"
|
||||
dest: "{{ downloads_dir }}/{{ rpi_src }}"
|
||||
url: "{{ minetest_rpi_src_url }}"
|
||||
dest: "{{ downloads_dir }}/{{ minetest_rpi_src }}"
|
||||
timeout: "{{ download_timeout }}"
|
||||
|
||||
- name: Create dirs /etc/minetest and /library/games
|
||||
|
@ -29,32 +20,24 @@
|
|||
mode: 0755
|
||||
with_items:
|
||||
- /etc/minetest
|
||||
- /library/games
|
||||
|
||||
- name: Create dir /var/log/minetest
|
||||
file:
|
||||
state: directory
|
||||
path: /var/log/minetest
|
||||
owner: "{{ minetest_runas_user }}"
|
||||
group: "{{ minetest_runas_group }}"
|
||||
mode: 0755
|
||||
- /var/log/minetest
|
||||
|
||||
- name: Extract {{ downloads_dir }}/{{ rpi_src }} into /library/games
|
||||
unarchive:
|
||||
src: "{{ downloads_dir }}/{{ rpi_src }}"
|
||||
src: "{{ downloads_dir }}/{{ minetest_rpi_src }}"
|
||||
dest: /library/games
|
||||
owner: "{{ minetest_runas_user }}"
|
||||
group: "{{ minetest_runas_group }}"
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Create symbolic link /library/games/minetest
|
||||
file:
|
||||
state: link
|
||||
src: /library/games/0.4.17.1
|
||||
dest: /library/games/minetest
|
||||
owner: "{{ minetest_runas_user }}"
|
||||
group: "{{ minetest_runas_group }}"
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Create /etc/minetest/minetest.conf and minetest-serve.service
|
||||
- name: Create /etc/minetest/minetest.conf and minetest-server.service
|
||||
template:
|
||||
backup: no
|
||||
src: "{{ item.src }}"
|
||||
|
@ -64,4 +47,5 @@
|
|||
mode: 0644
|
||||
with_items:
|
||||
- { src: 'minetest.conf.j2', dest: '/etc/minetest/minetest.conf' }
|
||||
- { src: 'minetest-serve.service.j2', dest: '/etc/systemd/system/minetest-serve.service' }
|
||||
- { src: 'minetest-serve.service.j2', dest: '/etc/systemd/system/minetest-server.service' }
|
||||
when: minetest_install
|
||||
|
|
|
@ -4,11 +4,11 @@ After=network.target
|
|||
|
||||
[Service]
|
||||
Type=simple
|
||||
User={{ minetest_runas_user }}
|
||||
Group={{ minetest_runas_group }}
|
||||
WorkingDirectory=/library/games/minetest
|
||||
ExecStart={{ minetest_server_bin }} --port {{ minetest_port }} --config {{ minetest_config_file }} --logfile /var/log/minetest/minetest.log --world {{ minetest_world_dir }}
|
||||
Restart=on-abort
|
||||
RestartSec=5s
|
||||
TimeoutStartSec=900
|
||||
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue