From 2c08f29c02065474ef835fed9e52129724cfeb1f Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Fri, 8 Feb 2019 16:27:42 -0500 Subject: [PATCH 01/28] softcode working dir in service and always run as root comment out vars in defaults --- roles/minetest/defaults/main.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/roles/minetest/defaults/main.yml b/roles/minetest/defaults/main.yml index 4bacad82a..adc3645d7 100644 --- a/roles/minetest/defaults/main.yml +++ b/roles/minetest/defaults/main.yml @@ -1,12 +1,6 @@ # 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 From 0decf2d704b133f2376c3f80ccdb7cbb100c3137 Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Fri, 8 Feb 2019 16:28:18 -0500 Subject: [PATCH 02/28] ditto --- roles/minetest/templates/minetest-serve.service.j2 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/roles/minetest/templates/minetest-serve.service.j2 b/roles/minetest/templates/minetest-serve.service.j2 index f7eb56b39..7755242d1 100644 --- a/roles/minetest/templates/minetest-serve.service.j2 +++ b/roles/minetest/templates/minetest-serve.service.j2 @@ -4,9 +4,7 @@ After=network.target [Service] Type=simple -User={{ minetest_runas_user }} -Group={{ minetest_runas_group }} -WorkingDirectory=/library/games/minetest +WorkingDirectory={{ minetest_working_dir }} ExecStart={{ minetest_server_bin }} --port {{ minetest_port }} --config {{ minetest_config_file }} --logfile /var/log/minetest/minetest.log --world {{ minetest_world_dir }} Restart=on-abort From 3e8358b7b3424b544c4ca90cfa434e4a192f1f8b Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Fri, 8 Feb 2019 17:45:43 -0500 Subject: [PATCH 03/28] restructure --- roles/minetest/tasks/main.yml | 56 ++++++------- roles/minetest/tasks/minetest_install.yml | 83 +------------------ roles/minetest/tasks/rpi_minetest_install.yml | 40 --------- 3 files changed, 30 insertions(+), 149 deletions(-) diff --git a/roles/minetest/tasks/main.yml b/roles/minetest/tasks/main.yml index e961eef81..318198199 100644 --- a/roles/minetest/tasks/main.yml +++ b/roles/minetest/tasks/main.yml @@ -1,38 +1,21 @@ -# 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 dirs /etc/minetest and /library/games + file: + state: directory + path: "{{ item }}" + owner: root + group: root + mode: 0755 + with_items: + - /etc/minetest + - /library/games + - /var/log/minetest + when: minetest_install + # rpi only - include_tasks: rpi_minetest_install.yml when: minetest_install and not minetest_world.stat.exists and is_rpi @@ -60,6 +43,19 @@ url: https://github.com/Uberi/Minetest-WorldEdit/archive/master.zip when: minetest_install +- name: Create /etc/minetest/minetest.conf and minetest-serve.service + 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' } + when: minetest_install + # enable or disable - name: Enable & Restart 'minetest-serve' service systemd: diff --git a/roles/minetest/tasks/minetest_install.yml b/roles/minetest/tasks/minetest_install.yml index 89e727001..099a88452 100644 --- a/roles/minetest/tasks/minetest_install.yml +++ b/roles/minetest/tasks/minetest_install.yml @@ -1,82 +1,7 @@ # 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/ - -# 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' - -# 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 - file: - state: directory - path: /etc/minetest - owner: root - group: root - 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' } - -# - name: Start minetest +- name: Install Minetest package + package: + name: minetest + state: present diff --git a/roles/minetest/tasks/rpi_minetest_install.yml b/roles/minetest/tasks/rpi_minetest_install.yml index 77e31cedf..8fc0758d4 100644 --- a/roles/minetest/tasks/rpi_minetest_install.yml +++ b/roles/minetest/tasks/rpi_minetest_install.yml @@ -1,44 +1,16 @@ # 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 get_url: url: "{{ rpi_src_url }}" dest: "{{ downloads_dir }}/{{ rpi_src }}" timeout: "{{ download_timeout }}" -- name: Create dirs /etc/minetest and /library/games - file: - state: directory - path: "{{ item }}" - owner: root - group: root - 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 - - name: Extract {{ downloads_dir }}/{{ rpi_src }} into /library/games unarchive: src: "{{ downloads_dir }}/{{ rpi_src }}" @@ -53,15 +25,3 @@ dest: /library/games/minetest owner: "{{ minetest_runas_user }}" group: "{{ minetest_runas_group }}" - -- name: Create /etc/minetest/minetest.conf and minetest-serve.service - 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' } From a0c70cec888a2028ee7fd671a57544359950711a Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Fri, 8 Feb 2019 17:48:46 -0500 Subject: [PATCH 04/28] no runas --- roles/minetest/tasks/minetest_install_mods.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/roles/minetest/tasks/minetest_install_mods.yml b/roles/minetest/tasks/minetest_install_mods.yml index 83b925244..d12b4086c 100644 --- a/roles/minetest/tasks/minetest_install_mods.yml +++ b/roles/minetest/tasks/minetest_install_mods.yml @@ -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 From ccef7ba2a1a23c2658032e32974035519afb4e82 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sat, 9 Feb 2019 14:21:39 +0000 Subject: [PATCH 05/28] Apache reverse-proxy for nodered --- roles/nodered/defaults/main.yml | 3 +++ roles/nodered/tasks/main.yml | 25 +++++++++++++++++++++++++ roles/nodered/templates/nodered.conf | 2 ++ 3 files changed, 30 insertions(+) create mode 100644 roles/nodered/templates/nodered.conf diff --git a/roles/nodered/defaults/main.yml b/roles/nodered/defaults/main.yml index 7e6b61729..69bce1cfd 100644 --- a/roles/nodered/defaults/main.yml +++ b/roles/nodered/defaults/main.yml @@ -7,3 +7,6 @@ nodered_password_hash: $2b$08$oxgvoU9et3deSbXY8UNVTOWHSTQAyEASIal86RHVMqYQJhpPMN # To generate a new password hash, run 'node-red-admin hash-pw' and enter the # new password. Paste the resulting hash above. After Ansible runs, username # and password hash will be placed in: /home/nodered/.node-red/settings.js + +nodered_web_path: nodered +nodered_port: 1880 diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index b99917afc..d8a69a282 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -54,6 +54,31 @@ state: started when: nodered_enabled +- name: Copy nodered.conf to apache sites-available + template: + backup: yes + src: nodered.conf.j2 + dest: /etc/apache2/sites-available/nodered.conf + owner: root + group: root + mode: 0666 + when: nodered_install + +- name: Link nodered.conf to apache sites-enabled + file: + src: /etc/apache2/sites-available/nodered.conf + dest: /etc/apache2/sites-enabled/nodered.conf + owner: root + group: root + state: link + when: nodered_enabled + +- name: Remove nodered.conf from apache sites-enabled + file: + path: /etc/apache2/sites-enabled/nodered.conf + state: absent + when: not nodered_enabled + - name: Add 'nodered' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" diff --git a/roles/nodered/templates/nodered.conf b/roles/nodered/templates/nodered.conf new file mode 100644 index 000000000..415fd08c3 --- /dev/null +++ b/roles/nodered/templates/nodered.conf @@ -0,0 +1,2 @@ +ProxyPass /{{ nodered_web_path }} http://localhost:{{ nodered_port }} +ProxyPassReverse /{{ nodered_web_path }} http://localhost:{{ nodered_port }} From 270c789820a326c16d7e197659b3674f2f3952aa Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sat, 9 Feb 2019 14:27:18 +0000 Subject: [PATCH 06/28] Rename template file from nodered.conf to nodered.conf.j2 --- roles/nodered/templates/{nodered.conf => nodered.conf.j2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename roles/nodered/templates/{nodered.conf => nodered.conf.j2} (100%) diff --git a/roles/nodered/templates/nodered.conf b/roles/nodered/templates/nodered.conf.j2 similarity index 100% rename from roles/nodered/templates/nodered.conf rename to roles/nodered/templates/nodered.conf.j2 From 46c56610de8dfab05fe8009e7e1f2d3ef95f5ef7 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sat, 9 Feb 2019 14:33:05 +0000 Subject: [PATCH 07/28] restart apache after copying nodered.conf --- roles/nodered/tasks/main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index d8a69a282..329d1a327 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -79,6 +79,13 @@ state: absent when: not nodered_enabled +- name: Restart apache2 service + systemd: + name: apache2 + daemon_reload: yes + state: restarted + when: nodered_enabled + - name: Add 'nodered' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" From 7d4bd29111d0fa9cace36d29ecc079c8c1a4034a Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sat, 9 Feb 2019 15:53:40 -0500 Subject: [PATCH 08/28] switch back to minetest-server package except for rpi --- roles/minetest/defaults/main.yml | 2 + roles/minetest/tasks/main.yml | 25 +++--------- roles/minetest/tasks/minetest_install.yml | 31 +++++++++++++- roles/minetest/tasks/rpi_minetest_install.yml | 40 +++++++++++++++---- .../templates/minetest-serve.service.j2 | 4 +- 5 files changed, 72 insertions(+), 30 deletions(-) diff --git a/roles/minetest/defaults/main.yml b/roles/minetest/defaults/main.yml index adc3645d7..4ef7f52f3 100644 --- a/roles/minetest/defaults/main.yml +++ b/roles/minetest/defaults/main.yml @@ -4,3 +4,5 @@ # 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_default_runas_user: Debian-minetest +minetest_default_runas_group: games diff --git a/roles/minetest/tasks/main.yml b/roles/minetest/tasks/main.yml index 318198199..85a99df9d 100644 --- a/roles/minetest/tasks/main.yml +++ b/roles/minetest/tasks/main.yml @@ -3,7 +3,7 @@ path: "{{ minetest_world_dir }}/world.mt" register: minetest_world -- name: Create dirs /etc/minetest and /library/games +- name: Create /library/games file: state: directory path: "{{ item }}" @@ -11,9 +11,7 @@ group: root mode: 0755 with_items: - - /etc/minetest - /library/games - - /var/log/minetest when: minetest_install # rpi only @@ -43,32 +41,19 @@ url: https://github.com/Uberi/Minetest-WorldEdit/archive/master.zip when: minetest_install -- name: Create /etc/minetest/minetest.conf and minetest-serve.service - 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' } - 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 diff --git a/roles/minetest/tasks/minetest_install.yml b/roles/minetest/tasks/minetest_install.yml index 099a88452..f539d689f 100644 --- a/roles/minetest/tasks/minetest_install.yml +++ b/roles/minetest/tasks/minetest_install.yml @@ -3,5 +3,34 @@ - name: Install Minetest package package: - name: minetest + name: minetest-server state: present + +- 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 }}' } + +- name: Create /library/games/minetest/worlds/world + file: + state: directory + path: "{{ item }}" + owner: "{{ minetest_default_runas_user }}" + group: "{{ minetest_default_runas_group }}" + mode: 0755 + with_items: + - "{{ minetest_world_dir }}" + +- 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 }}"' } diff --git a/roles/minetest/tasks/rpi_minetest_install.yml b/roles/minetest/tasks/rpi_minetest_install.yml index 8fc0758d4..a87d58c40 100644 --- a/roles/minetest/tasks/rpi_minetest_install.yml +++ b/roles/minetest/tasks/rpi_minetest_install.yml @@ -5,23 +5,47 @@ name: libhiredis-dev state: present -- 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 + file: + state: directory + path: "{{ item }}" + owner: root + group: root + mode: 0755 + with_items: + - /etc/minetest + - /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-server.service + 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-server.service' } + when: minetest_install diff --git a/roles/minetest/templates/minetest-serve.service.j2 b/roles/minetest/templates/minetest-serve.service.j2 index 7755242d1..6b6030729 100644 --- a/roles/minetest/templates/minetest-serve.service.j2 +++ b/roles/minetest/templates/minetest-serve.service.j2 @@ -4,9 +4,11 @@ After=network.target [Service] Type=simple -WorkingDirectory={{ minetest_working_dir }} 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 From d57152d9b99b3acf72cb658b07ef320c09e7086d Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sun, 10 Feb 2019 04:47:24 +0000 Subject: [PATCH 09/28] Add sugar redirect-match --- roles/sugarizer/templates/sugarizer.conf.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/sugarizer/templates/sugarizer.conf.j2 b/roles/sugarizer/templates/sugarizer.conf.j2 index 675aa86b3..fcb7b3471 100644 --- a/roles/sugarizer/templates/sugarizer.conf.j2 +++ b/roles/sugarizer/templates/sugarizer.conf.j2 @@ -3,3 +3,4 @@ ProxyPass /sugarizer http://localhost:{{ sugarizer_port }}/sugarizer ProxyPassReverse /sugarizer http://localhost:{{ sugarizer_port }}/sugarizer +RedirectMatch ^/sugar$ /sugarizer From e76bbc582565080a1d6761f333f15b6b32fcca92 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sun, 10 Feb 2019 10:20:43 +0000 Subject: [PATCH 10/28] Fix nodered reverseproxy --- roles/nodered/tasks/main.yml | 5 +++++ roles/nodered/templates/nodered.conf.j2 | 7 +++++-- roles/nodered/templates/settings.js.j2 | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index 329d1a327..34a800685 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -79,6 +79,11 @@ state: absent when: not nodered_enabled +- name: Enable proxy_wstunnel apache2 module + apache2_module: + state: present + name: proxy_wstunnel + - name: Restart apache2 service systemd: name: apache2 diff --git a/roles/nodered/templates/nodered.conf.j2 b/roles/nodered/templates/nodered.conf.j2 index 415fd08c3..72d6b99f1 100644 --- a/roles/nodered/templates/nodered.conf.j2 +++ b/roles/nodered/templates/nodered.conf.j2 @@ -1,2 +1,5 @@ -ProxyPass /{{ nodered_web_path }} http://localhost:{{ nodered_port }} -ProxyPassReverse /{{ nodered_web_path }} http://localhost:{{ nodered_port }} +ProxyPreserveHost On +ProxyRequests Off +ProxyPass /{{ nodered_web_path }}/debug/ws ws://localhost:1880/{{ nodered_web_path }}/debug/ws +ProxyPass /{{ nodered_web_path }} http://localhost:{{ nodered_port }}/{{ nodered_web_path }} +ProxyPassReverse /{{ nodered_web_path }} http://localhost:{{ nodered_port }}/{{ nodered_web_path }} diff --git a/roles/nodered/templates/settings.js.j2 b/roles/nodered/templates/settings.js.j2 index eb709304e..50923671c 100644 --- a/roles/nodered/templates/settings.js.j2 +++ b/roles/nodered/templates/settings.js.j2 @@ -96,7 +96,7 @@ module.exports = { // The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot', // to apply the same root to both parts. - //httpRoot: '/red', + httpRoot: '/{{ nodered_web_path }}', // When httpAdminRoot is used to move the UI to a different root path, the // following property can be used to identify a directory of static content From 5b62fa1bffa2f5dcad7475e51d14b105f9e35f52 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sun, 10 Feb 2019 11:03:40 +0000 Subject: [PATCH 11/28] Restructure the starting of services in nodered playbook --- roles/nodered/tasks/main.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index 34a800685..d60e7316d 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -46,14 +46,6 @@ mode: 0666 when: nodered_install -- name: Enable & Start node-red service - systemd: - daemon_reload: yes - name: node-red - enabled: yes - state: started - when: nodered_enabled - - name: Copy nodered.conf to apache sites-available template: backup: yes @@ -91,6 +83,22 @@ state: restarted when: nodered_enabled +- name: Enable & Start node-red service + systemd: + daemon_reload: yes + name: node-red + enabled: yes + state: started + when: nodered_enabled + +- name: Disable & Stop node-red service + systemd: + daemon_reload: yes + name: node-red + enabled: no + state: stopped + when: (not nodered_enabled) + - name: Add 'nodered' variable values to {{ iiab_ini_file }} ini_file: path: "{{ iiab_ini_file }}" From 76fe902c46509bbf7580be078e647784c1122dff Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sun, 10 Feb 2019 11:32:28 +0000 Subject: [PATCH 12/28] Nodered: allow sockets over /comms in rev-proxy in apache config --- roles/nodered/templates/nodered.conf.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/nodered/templates/nodered.conf.j2 b/roles/nodered/templates/nodered.conf.j2 index 72d6b99f1..916e1eed2 100644 --- a/roles/nodered/templates/nodered.conf.j2 +++ b/roles/nodered/templates/nodered.conf.j2 @@ -1,5 +1,6 @@ ProxyPreserveHost On ProxyRequests Off -ProxyPass /{{ nodered_web_path }}/debug/ws ws://localhost:1880/{{ nodered_web_path }}/debug/ws +ProxyPass /{{ nodered_web_path }}/debug/ws ws://localhost:{{ nodered_port }}/{{ nodered_web_path }}/debug/ws +ProxyPass /{{ nodered_web_path }}/comms ws://localhost:{{ nodered_port }}/{{ nodered_web_path }}/comms ProxyPass /{{ nodered_web_path }} http://localhost:{{ nodered_port }}/{{ nodered_web_path }} ProxyPassReverse /{{ nodered_web_path }} http://localhost:{{ nodered_port }}/{{ nodered_web_path }} From eac226980fcddab9f9842eb634265dced5b7f557 Mon Sep 17 00:00:00 2001 From: Anish Mangal Date: Sun, 10 Feb 2019 11:36:00 +0000 Subject: [PATCH 13/28] Nodered update README.rst with rev proxy path --- roles/nodered/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nodered/README.rst b/roles/nodered/README.rst index adf61d51a..9a416b8df 100644 --- a/roles/nodered/README.rst +++ b/roles/nodered/README.rst @@ -14,7 +14,7 @@ Prior to installing IIAB, make sure your `/etc/iiab/local_vars.yml Date: Sun, 10 Feb 2019 07:58:58 -0500 Subject: [PATCH 14/28] Update sugarizer.conf.j2 --- roles/sugarizer/templates/sugarizer.conf.j2 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/roles/sugarizer/templates/sugarizer.conf.j2 b/roles/sugarizer/templates/sugarizer.conf.j2 index fcb7b3471..63297127c 100644 --- a/roles/sugarizer/templates/sugarizer.conf.j2 +++ b/roles/sugarizer/templates/sugarizer.conf.j2 @@ -1,6 +1,7 @@ # sugarizer_port is set to 8089 in /opt/iiab/iiab/vars/default_vars.yml # If you need to change this, edit /etc/iiab/local_vars.yml prior to installing +RedirectMatch ^/sugar$ /sugarizer + ProxyPass /sugarizer http://localhost:{{ sugarizer_port }}/sugarizer ProxyPassReverse /sugarizer http://localhost:{{ sugarizer_port }}/sugarizer -RedirectMatch ^/sugar$ /sugarizer From 28096c859d36cbb95c5e9d9b7cc753bf8c584e5e Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 09:29:00 -0500 Subject: [PATCH 15/28] Update README.rst --- roles/pbx/README.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/roles/pbx/README.rst b/roles/pbx/README.rst index 12be0fa74..1a996ee63 100644 --- a/roles/pbx/README.rst +++ b/roles/pbx/README.rst @@ -2,7 +2,12 @@ PBX README ========== -This 'pbx' playbook adds `Asterisk `_ and `FreePBX `_ to Internet-in-a-Box (IIAB) for VoIP and SIP functionality. +This 'pbx' playbook adds `Asterisk `_ and `FreePBX `_ to Internet-in-a-Box (IIAB) for VoIP and SIP functionality e.g. for rural telephony. + +This initial release (for IIAB 6.7 in February 2019) supports Ubuntu 18.04 and Debian 9 "Stretch" — in future Raspberry Pi (Raspbian) might also be possible! (`#1467 `_) + +Explanation +----------- Asterisk is a software implementation of a private branch exchange (PBX). In conjunction with suitable telephony hardware interfaces and network applications, Asterisk is used to establish and control telephone calls between telecommunication endpoints, such as customary telephone sets, destinations on the public switched telephone network (PSTN), and devices or services on Voice over Internet Protocol (VoIP) networks. Its name comes from the asterisk (*) symbol for a signal used in dual-tone multi-frequency (DTMF) dialing. @@ -20,7 +25,7 @@ Optionally, you may want to enable `chan_dongle `_ and `FreePBX `_ Ansible work. +This 'pbx' playbook was heavily inspired by Yannik Sembritzki's `Asterisk `_ and `FreePBX `_ Ansible work, Thank You! From 695e741e0a3db31eb0605cba5e3b552eb4ce85ce Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 09:41:22 -0500 Subject: [PATCH 16/28] Update README.rst --- roles/nodered/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nodered/README.rst b/roles/nodered/README.rst index 9a416b8df..bee703c6b 100644 --- a/roles/nodered/README.rst +++ b/roles/nodered/README.rst @@ -14,7 +14,7 @@ Prior to installing IIAB, make sure your `/etc/iiab/local_vars.yml Date: Sun, 10 Feb 2019 10:01:38 -0500 Subject: [PATCH 17/28] Update main.yml --- roles/nodered/defaults/main.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/roles/nodered/defaults/main.yml b/roles/nodered/defaults/main.yml index 69bce1cfd..58b82a181 100644 --- a/roles/nodered/defaults/main.yml +++ b/roles/nodered/defaults/main.yml @@ -1,5 +1,11 @@ -nodered_install: False -nodered_enabled: False +# nodered_install: False +# nodered_enabled: False +# nodered_port: 1880 + +# 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! + +nodered_web_path: nodered # http://box/nodered redirect to http://box:1880 nodered_user: Admin nodered_password: changeme @@ -7,6 +13,3 @@ nodered_password_hash: $2b$08$oxgvoU9et3deSbXY8UNVTOWHSTQAyEASIal86RHVMqYQJhpPMN # To generate a new password hash, run 'node-red-admin hash-pw' and enter the # new password. Paste the resulting hash above. After Ansible runs, username # and password hash will be placed in: /home/nodered/.node-red/settings.js - -nodered_web_path: nodered -nodered_port: 1880 From 4e84c6caa5784d3c98d85fa2637d85f68b9926ed Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 10:33:51 -0500 Subject: [PATCH 18/28] Apache + systemd cleanup for http://box/nodered --- roles/nodered/tasks/main.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index d60e7316d..47d27929e 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -46,7 +46,7 @@ mode: 0666 when: nodered_install -- name: Copy nodered.conf to apache sites-available +- name: Install Apache's sites-available/nodered.conf from template template: backup: yes src: nodered.conf.j2 @@ -56,7 +56,7 @@ mode: 0666 when: nodered_install -- name: Link nodered.conf to apache sites-enabled +- name: Create symlink nodered.conf from sites-enabled to sites-available, for short URL http://box/nodered (if nodered_enabled) file: src: /etc/apache2/sites-available/nodered.conf dest: /etc/apache2/sites-enabled/nodered.conf @@ -65,7 +65,7 @@ state: link when: nodered_enabled -- name: Remove nodered.conf from apache sites-enabled +- name: Remove symlink /etc/apache2/sites-enabled/nodered.conf (if not nodered_enabled) file: path: /etc/apache2/sites-enabled/nodered.conf state: absent @@ -75,15 +75,16 @@ apache2_module: state: present name: proxy_wstunnel + when: nodered_install -- name: Restart apache2 service +- name: Restart Apache service ({{ apache_service }}) to enable/disable http://box/nodered (not just http://box:{{ nodered_port }}) systemd: - name: apache2 daemon_reload: yes + name: "{{ apache_service }}" # httpd or apache2 state: restarted - when: nodered_enabled + when: nodered_install -- name: Enable & Start node-red service +- name: Enable & Start 'node-red' systemd service (if nodered_enabled) systemd: daemon_reload: yes name: node-red @@ -91,13 +92,13 @@ state: started when: nodered_enabled -- name: Disable & Stop node-red service +- name: Disable & Stop 'node-red' systemd service (if not nodered_enabled) systemd: daemon_reload: yes name: node-red enabled: no state: stopped - when: (not nodered_enabled) + when: not nodered_enabled - name: Add 'nodered' variable values to {{ iiab_ini_file }} ini_file: From 110ad13a5a85be629bcf936139d37a2d0f4b585d Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 10:34:01 -0500 Subject: [PATCH 19/28] Apache+ systemd cleanup for http://box/sugar etc --- roles/sugarizer/tasks/main.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/roles/sugarizer/tasks/main.yml b/roles/sugarizer/tasks/main.yml index fe95ae760..0c23b3aeb 100644 --- a/roles/sugarizer/tasks/main.yml +++ b/roles/sugarizer/tasks/main.yml @@ -229,14 +229,14 @@ # # Use this instead, if tabs are truly nec: # # block: "\tvar pathPrefix = '/sugarizer';\n\tapp.use(pathPrefix, require('path-prefix-proxy')(pathPrefix));" -- name: Create symlink sugarizer.conf from sites-enabled to sites-available, for short URL http://box/sugarizer (debuntu) +- name: Create symlink sugarizer.conf from sites-enabled to sites-available, for short URLs http://box/sugar & http://box/sugarizer (if sugarizer_enabled) file: src: /etc/apache2/sites-available/sugarizer.conf path: /etc/apache2/sites-enabled/sugarizer.conf state: link when: sugarizer_enabled and is_debuntu -- name: "Remove symlink /etc/apache2/sites-enabled/sugarizer.conf, if sugarizer_enabled: False (debuntu)" +- name: Remove symlink /etc/apache2/sites-enabled/sugarizer.conf (if not sugarizer_enabled) file: path: /etc/apache2/sites-enabled/sugarizer.conf state: absent @@ -245,7 +245,8 @@ # 6. RESTART/STOP SYSTEMD SERVICE -- name: Enable & Restart systemd service if sugarizer_enabled, with "systemctl daemon-reload" (in case mongodb.service changed?) +# with "systemctl daemon-reload" in case mongodb.service changed, etc +- name: Enable & Restart 'sugarizer' systemd service (if sugarizer_enabled) systemd: name: sugarizer daemon_reload: yes @@ -253,9 +254,10 @@ state: restarted when: sugarizer_enabled -- name: "Disable systemd service, if sugarizer_enabled: False" +- name: Disable & Stop 'sugarizer' systemd service (if not sugarizer_enabled) systemd: name: sugarizer + daemon_reload: yes enabled: no state: stopped when: not sugarizer_enabled From fae071d2823daf8348478c13a4571d7383679a5d Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 11:13:16 -0500 Subject: [PATCH 20/28] restart node-red service, for http://box/nodered w/o reboot --- roles/nodered/tasks/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index 47d27929e..a8526e19c 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -84,12 +84,12 @@ state: restarted when: nodered_install -- name: Enable & Start 'node-red' systemd service (if nodered_enabled) +- name: Enable & (Re)start 'node-red' systemd service (if nodered_enabled) systemd: daemon_reload: yes name: node-red enabled: yes - state: started + state: restarted when: nodered_enabled - name: Disable & Stop 'node-red' systemd service (if not nodered_enabled) From de291fd30621fcba84c0b0bef4549b6094371f8c Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 12:02:07 -0500 Subject: [PATCH 21/28] Update main.yml --- roles/nodered/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/nodered/tasks/main.yml b/roles/nodered/tasks/main.yml index a8526e19c..1a8fc888e 100644 --- a/roles/nodered/tasks/main.yml +++ b/roles/nodered/tasks/main.yml @@ -79,7 +79,7 @@ - name: Restart Apache service ({{ apache_service }}) to enable/disable http://box/nodered (not just http://box:{{ nodered_port }}) systemd: - daemon_reload: yes + #daemon_reload: yes name: "{{ apache_service }}" # httpd or apache2 state: restarted when: nodered_install From 9b0d863208dce9ac64bc757009688cbef909bf8a Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 12:33:30 -0500 Subject: [PATCH 22/28] add flat world and carbone-ng default --- roles/minetest/defaults/main.yml | 16 +++++-- roles/minetest/tasks/calc_vars.yml | 16 +++++-- roles/minetest/tasks/main.yml | 42 ++++++++++++++++--- roles/minetest/tasks/minetest_install.yml | 15 +++++-- roles/minetest/tasks/rpi_minetest_install.yml | 1 + roles/minetest/templates/minetest.conf.j2 | 6 ++- 6 files changed, 79 insertions(+), 17 deletions(-) diff --git a/roles/minetest/defaults/main.yml b/roles/minetest/defaults/main.yml index 4ef7f52f3..40dcac9ae 100644 --- a/roles/minetest/defaults/main.yml +++ b/roles/minetest/defaults/main.yml @@ -1,8 +1,16 @@ +# These are set in github.com/iiab/iiab/blob/master/vars/default_vars.yml +# They may be overridden in local_vars + # 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_default_runas_user: Debian-minetest -minetest_default_runas_group: games + +# minetest_default_game: only carbone-ng and minetest are supported +minetest_default_game: carbone-ng +minetest_flat_world: False + +# These should not be touched unless minetest packages change + +minetest_config_file: /etc/minetest/minetest.conf +minetest_world_dir: /library/games/minetest/worlds/world diff --git a/roles/minetest/tasks/calc_vars.yml b/roles/minetest/tasks/calc_vars.yml index 5f91fbf59..a6fa9340f 100644 --- a/roles/minetest/tasks/calc_vars.yml +++ b/roles/minetest/tasks/calc_vars.yml @@ -3,11 +3,21 @@ - name: Set some facts for RPi set_fact: minetest_server_bin: /library/games/minetest/bin/minetestserver - minetest_world_dir: /library/games/minetest/worlds/world - minetest_game_dir: /library/games/minetest/games/minetest_game + minetest_working_dir: /library/games/minetest # only works if server run as root minetest_runas_user: root minetest_runas_group: root when: is_rpi -# For other installs TBD +# For other installs +- name: Set some facts for other platforms + set_fact: + minetest_server_bin: /usr/lib/minetest/minetestserver + minetest_working_dir: /usr/share/games/minetest + minetest_runas_user: Debian-minetest + minetest_runas_group: games + when: not is_rpi + +- name: Set some facts for all + set_fact: + minetest_game_dir: "{{ minetest_working_dir }}/games/{{ minetest_default_game }}" diff --git a/roles/minetest/tasks/main.yml b/roles/minetest/tasks/main.yml index 85a99df9d..1e0841794 100644 --- a/roles/minetest/tasks/main.yml +++ b/roles/minetest/tasks/main.yml @@ -1,3 +1,6 @@ +# Calculate local variables +- include_tasks: calc_vars.yml + - name: Check for minetest world file ({{ minetest_world_dir }}/world.mt) stat: path: "{{ minetest_world_dir }}/world.mt" @@ -12,15 +15,36 @@ 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 + when: not minetest_world.stat.exists and is_rpi # not rpi - include_tasks: minetest_install.yml - when: minetest_install and not minetest_world.stat.exists and not is_rpi + when: not minetest_world.stat.exists and not is_rpi + +- git: + repo: https://github.com/Calinou/carbone-ng.git + dest: "{{ minetest_game_dir }}" + depth: 1 + when: minetest_default_game == "carbone-ng" + +- name: Give minetest user ownership of carbone-ng + file: + state: directory + path: "{{ minetest_game_dir }}" + recurse: yes + owner: "{{ minetest_runas_user }}" + group: "{{ minetest_runas_group }}" + mode: 0755 + when: minetest_default_game == "carbone-ng" + +# Install games +#- include: minetest_install_games.yml +# with_items: +# - name: carbone-ng +# url: https://github.com/Calinou/carbone-ng # Install mods - include: minetest_install_mods.yml @@ -39,7 +63,13 @@ url: https://github.com/minetest-mods/pipeworks/archive/master.zip - name: Minetest-WorldEdit url: https://github.com/Uberi/Minetest-WorldEdit/archive/master.zip - when: minetest_install + when: minetest_default_game == "minetest" + +- name: Remove mod from carbone-ng that prevents our Admin name + file: + state: absent + path: "{{ minetest_game_dir }}/mods/name_restrictions" + when: minetest_default_game == "carbone-ng" # enable or disable - name: Enable & Restart 'minetest-server' service @@ -48,7 +78,7 @@ name: minetest-server enabled: yes state: restarted - when: minetest_install and minetest_enabled + when: minetest_enabled - name: Disable 'minetest-server' service systemd: @@ -56,7 +86,7 @@ name: minetest-server enabled: no state: stopped - when: minetest_install and not minetest_enabled + when: not minetest_enabled - name: Add 'minetest' variable values to {{ iiab_ini_file }} ini_file: diff --git a/roles/minetest/tasks/minetest_install.yml b/roles/minetest/tasks/minetest_install.yml index f539d689f..354907526 100644 --- a/roles/minetest/tasks/minetest_install.yml +++ b/roles/minetest/tasks/minetest_install.yml @@ -1,5 +1,4 @@ # For non-rpi installs -# Still a work in progress - name: Install Minetest package package: @@ -16,13 +15,23 @@ - { regexp: '^name = ', line: 'name = Admin' } - { regexp: '^creative_mode = ', line: 'creative_mode = true' } - { regexp: '^port = ', line: 'port = {{ minetest_port }}' } + - { regexp: '^default_game = ', line: 'default_game = {{ minetest_default_game }}' } + +- name: Set mapgen engine to flat if enabled + lineinfile: + path: /etc/minetest/minetest.conf + regexp: "{{ item.regexp }}" + line: "{{ item.line }}" + with_items: + - { regexp: '^mg_name = ', line: 'mg_name = flat' } + when: minetest_flat_world - name: Create /library/games/minetest/worlds/world file: state: directory path: "{{ item }}" - owner: "{{ minetest_default_runas_user }}" - group: "{{ minetest_default_runas_group }}" + owner: "{{ minetest_runas_user }}" + group: "{{ minetest_runas_group }}" mode: 0755 with_items: - "{{ minetest_world_dir }}" diff --git a/roles/minetest/tasks/rpi_minetest_install.yml b/roles/minetest/tasks/rpi_minetest_install.yml index a87d58c40..ab299daeb 100644 --- a/roles/minetest/tasks/rpi_minetest_install.yml +++ b/roles/minetest/tasks/rpi_minetest_install.yml @@ -11,6 +11,7 @@ dest: "{{ downloads_dir }}/{{ minetest_rpi_src }}" timeout: "{{ download_timeout }}" +# we need to create these for rpi, but package creates them for other OSes - name: Create dirs /etc/minetest and /library/games file: state: directory diff --git a/roles/minetest/templates/minetest.conf.j2 b/roles/minetest/templates/minetest.conf.j2 index e99777f14..6878e0d8a 100644 --- a/roles/minetest/templates/minetest.conf.j2 +++ b/roles/minetest/templates/minetest.conf.j2 @@ -9,7 +9,7 @@ server_name = Internet in a Box Minetest Server server_announce = false # Default game (default when creating a new world) -default_game = minetest +default_game = {{ minetest_default_game }} # Maximum number of players connected simultaneously max_users = 15 @@ -30,3 +30,7 @@ default_privs = interact, shout, teleport, settime, privs # For mods spawn_friendly_mobs = true spawn_hostile_mobs = false + +{% if minetest_flat_world %} +mg_name = flat +{% endif %} From aa92e6b5df128e2fbb51492e8b0208ae96f6adad Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 12:54:29 -0500 Subject: [PATCH 23/28] change defaults --- vars/default_vars.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/vars/default_vars.yml b/vars/default_vars.yml index 675664c10..5059351eb 100644 --- a/vars/default_vars.yml +++ b/vars/default_vars.yml @@ -447,13 +447,10 @@ minetest_install: False minetest_enabled: False minetest_port: 30000 minetest_server_admin: Admin -# Should only rarely change these -minetest_server_bin: /usr/games/minetest --server -minetest_world_dir: /library/games/minetest/worlds/world -minetest_working_dir: /usr/share/games/minetest -minetest_game_dir: /usr/share/games/minetest/games/minetest_game -minetest_config_file: /etc/minetest/minetest.conf +# minetest_default_game: only carbone-ng and minetest are supported +minetest_default_game: carbone-ng +minetest_flat_world: False # CONSIDER THESE 2 NEW OPENSTREETMAP (OSM) APPROACHES INSTEAD, AS OF 2018: # - http://download.iiab.io/content/OSM/vector-tiles/ From 5abac0413f4aebfbcfb8a41be6318362c50357a4 Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 13:01:40 -0500 Subject: [PATCH 24/28] comment out global defaults --- roles/minetest/defaults/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/minetest/defaults/main.yml b/roles/minetest/defaults/main.yml index 40dcac9ae..455c9c9b3 100644 --- a/roles/minetest/defaults/main.yml +++ b/roles/minetest/defaults/main.yml @@ -7,8 +7,8 @@ # minetest_server_admin: Admin # minetest_default_game: only carbone-ng and minetest are supported -minetest_default_game: carbone-ng -minetest_flat_world: False +# minetest_default_game: carbone-ng +# minetest_flat_world: False # These should not be touched unless minetest packages change From 2e535d52336342548f812440451476f48b0eb857 Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 13:09:43 -0500 Subject: [PATCH 25/28] make idempotent --- roles/minetest/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/minetest/tasks/main.yml b/roles/minetest/tasks/main.yml index 1e0841794..0c9ad6f6f 100644 --- a/roles/minetest/tasks/main.yml +++ b/roles/minetest/tasks/main.yml @@ -28,7 +28,7 @@ repo: https://github.com/Calinou/carbone-ng.git dest: "{{ minetest_game_dir }}" depth: 1 - when: minetest_default_game == "carbone-ng" + when: not minetest_world.stat.exists and minetest_default_game == "carbone-ng" - name: Give minetest user ownership of carbone-ng file: From 6258d611e2c4651171cebce9f790d152e0522ad2 Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 13:35:35 -0500 Subject: [PATCH 26/28] update README.rst --- roles/minetest/README.rst | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/roles/minetest/README.rst b/roles/minetest/README.rst index 384390d46..8dfe5785e 100644 --- a/roles/minetest/README.rst +++ b/roles/minetest/README.rst @@ -17,8 +17,35 @@ The admin user is the usual: ``Admin`` No password is required. +Configurable Parameters +----------------------- + +- minetest_install: set minetest up to install; default is False +- minetest_enabled: set minetest up to be enabled; default is False +- minetest_port: port on which client should connect; default is 30000 +- minetest_server_admin: user with all permissions on minetest server; default is Admin + +- minetest_default_game: only carbone-ng and minetest are supported; default is carbone-ng +- minetest_flat_world: use a flat mapgen engine to lower computation on client; default is False + +File Locations +-------------- +- The config file is: ``/etc/minetest/minetest.conf`` +- The world files are at ``/library/games/minetest/worlds/world`` + File Locations on Raspberry Pi ------------------------------ +- The server binary is ``/library/games/minetest/bin/minetestserver`` +- The working directory is ``//library/games/minetest`` +- mods are in ``/library/games/minetest/games//mods +`` +File Locations on Other Platforms +--------------------------------- +- The server binary is ``/usr/lib/minetest/minetestserver`` +- The working directory is ``/usr/share/games/minetest`` +- mods are in ``/usr/share/games/minetest/games//mods -- The config file is: ``/etc/minetest/minetest.conf`` -- The rest of the files are a normal layout based in: ``/library/games/minetest`` +To Do +----- +- Add more mods - currently only the default mods are there in carbone-ng +- Add more games From c3ddf3964080fa7d132f95c184e71d015aa94a33 Mon Sep 17 00:00:00 2001 From: Tim Moody Date: Sun, 10 Feb 2019 13:37:41 -0500 Subject: [PATCH 27/28] formatting --- roles/minetest/README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/minetest/README.rst b/roles/minetest/README.rst index 8dfe5785e..65f680d2d 100644 --- a/roles/minetest/README.rst +++ b/roles/minetest/README.rst @@ -37,8 +37,8 @@ File Locations on Raspberry Pi ------------------------------ - The server binary is ``/library/games/minetest/bin/minetestserver`` - The working directory is ``//library/games/minetest`` -- mods are in ``/library/games/minetest/games//mods -`` +- mods are in ``/library/games/minetest/games//mods`` + File Locations on Other Platforms --------------------------------- - The server binary is ``/usr/lib/minetest/minetestserver`` From 488830caeba27ca9ea8e397c7d696273f1a9a9c5 Mon Sep 17 00:00:00 2001 From: A Holt Date: Sun, 10 Feb 2019 13:38:05 -0500 Subject: [PATCH 28/28] Update README.rst --- roles/pbx/README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/pbx/README.rst b/roles/pbx/README.rst index 1a996ee63..9c5ab8ded 100644 --- a/roles/pbx/README.rst +++ b/roles/pbx/README.rst @@ -25,7 +25,7 @@ Optionally, you may want to enable `chan_dongle