From 2c2f1708a2ab5ecacbe32d7b08fa313a1c7adcf0 Mon Sep 17 00:00:00 2001 From: Salt Date: Sun, 18 Oct 2020 23:23:00 -0500 Subject: [PATCH 01/31] Add includes for gitweb --- roles/apache-php/tasks/main.yml | 4 ++++ roles/gitweb/templates/apache2-vhost-ssl.conf | 1 + 2 files changed, 5 insertions(+) diff --git a/roles/apache-php/tasks/main.yml b/roles/apache-php/tasks/main.yml index 443d7ce..7c78fcf 100644 --- a/roles/apache-php/tasks/main.yml +++ b/roles/apache-php/tasks/main.yml @@ -39,6 +39,8 @@ loop: - { src: "php-apache2.ini", dest: "apache2/php.ini", mode: "0644" } - { src: "php-cgi.ini", dest: "cgi/php.ini", mode: "0644" } + - name: Create includes directory + file: path=/etc/apache2/includes state=directory - name: Disable default website file: # This is a symlink so who cares @@ -66,6 +68,8 @@ - mpm_prefork # Fun fact: this works - php* + - proxy + - proxy_http - rewrite - ssl notify: restart apache diff --git a/roles/gitweb/templates/apache2-vhost-ssl.conf b/roles/gitweb/templates/apache2-vhost-ssl.conf index 701bed0..b97b2d2 100644 --- a/roles/gitweb/templates/apache2-vhost-ssl.conf +++ b/roles/gitweb/templates/apache2-vhost-ssl.conf @@ -29,4 +29,5 @@ SSLStrictSNIVHostCheck off AllowOverride All Options MultiViews FollowSymlinks + IncludeOptional /etc/apache2/includes/{{ gitweb_url }}.conf From c3647b6d79c5d7a201bc484ae91fda64f4c38886 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 26 Oct 2020 18:29:25 -0500 Subject: [PATCH 02/31] Stop asking for vault password I'll just invoke --ask-vault-pass on the terminal I guess --- ansible.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible.cfg b/ansible.cfg index 6ca5029..0f80f2a 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -8,7 +8,7 @@ private_key_file = ~/.ssh/ansible host_key_checking = false # Secrets ask_become_pass = true -ask_vault_pass = true +#ask_vault_pass = true # Warnings command_warnings = true #deprecation_warnings = false From 19e8e7cfaec8d153ccf3001ae151f4534d0d1daa Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 26 Oct 2020 18:31:22 -0500 Subject: [PATCH 03/31] Add deploy script NAH FUCK THAT WE STICK THE ARG IN A SHELL SCRIPT AND FORGET ABOUT IT --- deploy.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 deploy.sh diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..8f2a6f9 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,3 @@ +#! /bin/sh +ansible-playbook --ask-vault-pass site.yml "$@" + From fd87cb00d0c31e46b75016103d35db7c1fe5fd11 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 26 Oct 2020 18:36:49 -0500 Subject: [PATCH 04/31] Template out ansible-pull.cfg BEFORE first run Turns out this caused serious problems if a host had never actually fully run ansible-pull before --- roles/ansible-pull/tasks/main.yml | 4 ++++ .../ansible-pull/templates/ansible-pull.cfg | 0 roles/ansible-pull/templates/ansible-pull.service | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) rename ansible-pull.cfg => roles/ansible-pull/templates/ansible-pull.cfg (100%) diff --git a/roles/ansible-pull/tasks/main.yml b/roles/ansible-pull/tasks/main.yml index 371002d..bba741c 100644 --- a/roles/ansible-pull/tasks/main.yml +++ b/roles/ansible-pull/tasks/main.yml @@ -12,6 +12,10 @@ become_user: ansible - name: Configure systemd unit block: + - name: Template out config + template: src=ansible-pull.cfg dest=~/ansible-pull.cfg + become: yes + become_user: ansible - name: Template out services template: src: "{{ item.src }}" diff --git a/ansible-pull.cfg b/roles/ansible-pull/templates/ansible-pull.cfg similarity index 100% rename from ansible-pull.cfg rename to roles/ansible-pull/templates/ansible-pull.cfg diff --git a/roles/ansible-pull/templates/ansible-pull.service b/roles/ansible-pull/templates/ansible-pull.service index 92e9928..ba7e734 100644 --- a/roles/ansible-pull/templates/ansible-pull.service +++ b/roles/ansible-pull/templates/ansible-pull.service @@ -7,7 +7,7 @@ StartLimitBurst=5 [Service] User=ansible Group=ansible -Environment=ANSIBLE_CONFIG=~/ansible-pull-repo/ansible-pull.cfg +Environment=ANSIBLE_CONFIG=~/ansible-pull.cfg ExecStart=/usr/local/bin/ansible-pull --accept-host-key -U "{{ ansible_pull_repo }}" -d "~/ansible-pull-repo" --vault-password-file "~/ansiblevaultpass" "{{ ansible_pull_playbook }}" Restart=on-failure RestartSec=90 From 3774defba5706ef30ad2596dd979f01ce8e4b687 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 31 Oct 2020 20:57:55 -0500 Subject: [PATCH 05/31] Fix ansible-pull not working. At all. --- roles/ansible-pull/templates/ansible-pull.cfg | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ansible-pull/templates/ansible-pull.cfg b/roles/ansible-pull/templates/ansible-pull.cfg index 74beb5d..9502ab2 100644 --- a/roles/ansible-pull/templates/ansible-pull.cfg +++ b/roles/ansible-pull/templates/ansible-pull.cfg @@ -1,8 +1,8 @@ [defaults] gathering = smart interpreter_python = python3 -inventory = inventory -roles_path = roles +inventory = ansible-pull-repo/inventory +roles_path = ansible-pull-repo/roles # Secrets ask_become_pass = false ask_vault_pass = false From ff19624f6ad633d82e37e28c8d16fd15f76dedbd Mon Sep 17 00:00:00 2001 From: Salt Date: Sun, 1 Nov 2020 04:47:13 -0600 Subject: [PATCH 06/31] Add python-is-python3 Just bit me --- roles/common/tasks/packages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/common/tasks/packages.yml b/roles/common/tasks/packages.yml index df137a6..f214791 100644 --- a/roles/common/tasks/packages.yml +++ b/roles/common/tasks/packages.yml @@ -21,6 +21,7 @@ - net-tools - openssh-server - pwgen + - python-is-python3 - python3-apt - screen - vim From a9353ad9ef1ca1828938269fafc462c01ac22e8d Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 2 Nov 2020 19:04:37 -0600 Subject: [PATCH 07/31] Add IBM fonts --- roles/desktop-common/tasks/packages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/desktop-common/tasks/packages.yml b/roles/desktop-common/tasks/packages.yml index 61c0ff7..92b2a43 100644 --- a/roles/desktop-common/tasks/packages.yml +++ b/roles/desktop-common/tasks/packages.yml @@ -99,6 +99,7 @@ - xz-utils # For Ansible deb support # Fonts - fonts-fork-awesome + - fonts-ibm-plex - fonts-inconsolata - fonts-material-design-icons-iconfont - fonts-noto From d8a58339565ddfeb99c31fbd286326736e6079a7 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 7 Nov 2020 00:32:21 -0600 Subject: [PATCH 08/31] Decom Adam You won't be missed. Piece of shit. --- playbooks/appservers.yml | 13 ------- roles/adam/defaults/main.yml | 4 -- roles/adam/tasks/main.yml | 60 ------------------------------ roles/adam/templates/adam@.service | 29 --------------- roles/adam/templates/auth.json | 3 -- 5 files changed, 109 deletions(-) delete mode 100644 roles/adam/defaults/main.yml delete mode 100644 roles/adam/tasks/main.yml delete mode 100644 roles/adam/templates/adam@.service delete mode 100644 roles/adam/templates/auth.json diff --git a/playbooks/appservers.yml b/playbooks/appservers.yml index a8787ad..821a147 100644 --- a/playbooks/appservers.yml +++ b/playbooks/appservers.yml @@ -27,16 +27,3 @@ pleroma_url: cowfee.moe pleroma_db_hostname: 172.31.47.215 tags: [ web, pleroma ] - - role: adam - vars: - adam_name: lain - adam_auth_token: !vault | - $ANSIBLE_VAULT;1.1;AES256 - 33346238356561313736653431666439363835663134303339366536663964333138666530343166 - 6132353938663563316265346630613231616362643937380a616132386464653438343739613937 - 32626230326430396563316363613139306535663832336531636239633364383432373739646436 - 3338376362313539360a383763313439633331313531323232653866633065333933633061326465 - 64343165613961346362353162316530623132633164643461616633633335666232633833313561 - 33306532343963383331623663616161626533633261383238646164663362396261633736636362 - 373764613833343634346333613639626535 - tags: [ discord, adam ] diff --git a/roles/adam/defaults/main.yml b/roles/adam/defaults/main.yml deleted file mode 100644 index 5786850..0000000 --- a/roles/adam/defaults/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/ansible-playbook -# vim:ft=ansible: -adam_name: adam -adam_repo: "https://git.9iron.club/salt/adam" diff --git a/roles/adam/tasks/main.yml b/roles/adam/tasks/main.yml deleted file mode 100644 index 9d692aa..0000000 --- a/roles/adam/tasks/main.yml +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/ansible-playbook -# vim:ft=ansible: -- name: Set up Adam - block: - - name: Install required packages - apt: - name: - - libopus0 - - nodejs - - npm - - name: Install packages without recommends - apt: - install_recommends: no - name: - - ffmpeg - - name: Create Adam user - user: - name: discord-adam - - name: Assure data directory - file: - path: "/var/adam" - state: directory - # Sticky, SetGID - mode: 3775 - owner: root - group: discord-adam - - name: Set up bot root - block: - - name: Create specific data directory - file: - path: "/var/adam/{{ adam_name }}" - state: directory - mode: 0755 - - name: Clone bot repo - git: - repo: "{{ adam_repo }}" - dest: "/var/adam/{{ adam_name }}" - - name: Initialize NPM modules - npm: - path: "/var/adam/{{ adam_name }}" - - name: Template out authentication token - template: - src: "auth.json" - dest: "/var/adam/{{ adam_name }}/auth.json" - mode: "0600" - become: yes - become_user: discord-adam - - name: Set up system configuration - block: - - name: Template out service - template: - src: "adam@.service" - dest: "/etc/systemd/system/adam@.service" - - name: Start and enable service - systemd: - daemon_reload: yes - name: "adam@{{ adam_name }}.service" - enabled: yes - state: started - become: yes diff --git a/roles/adam/templates/adam@.service b/roles/adam/templates/adam@.service deleted file mode 100644 index d48ad3d..0000000 --- a/roles/adam/templates/adam@.service +++ /dev/null @@ -1,29 +0,0 @@ -# -# Licensed under the terms of the MIT license -# vim:ft=dosini: -# - -[Unit] -Description=Adam Bot %i -After=network.target - -[Service] -User=discord-adam -Group=discord-adam -WorkingDirectory=/var/adam/%i -PrivateUsers=true -ProtectSystem=full -ProtectHome=true -# Implies MountFlags=slave -ProtectKernelTunables=true -# Implies NoNewPrivileges=yes -ProtectKernelModules=true -# Implies MountAPIVFS=yes -ProtectControlGroups=true - -ExecStart=/usr/bin/node index.js - -Restart=always - -[Install] -WantedBy=multi-user.target diff --git a/roles/adam/templates/auth.json b/roles/adam/templates/auth.json deleted file mode 100644 index bdc2868..0000000 --- a/roles/adam/templates/auth.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "token": "{{ adam_auth_token }}" -} From d2a038bf8a25f3f98790950843e519be456f7522 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 7 Nov 2020 00:39:55 -0600 Subject: [PATCH 09/31] Fix incorrect Apache redirect for gitea --- roles/gitea/templates/apache2-vhost-ssl.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/gitea/templates/apache2-vhost-ssl.conf b/roles/gitea/templates/apache2-vhost-ssl.conf index 8d6dd1f..1bd1578 100644 --- a/roles/gitea/templates/apache2-vhost-ssl.conf +++ b/roles/gitea/templates/apache2-vhost-ssl.conf @@ -9,7 +9,7 @@ SSLProxyEngine on # Website configuration ServerName {{ gitea.url }} - Redirect permanent / https://{{ gitea.url }} + Redirect permanent / https://{{ gitea.url }}/ SSLEngine on From 9e8b2fefb96619dc195e6c4956c58895401d2648 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 11 Nov 2020 05:14:12 -0600 Subject: [PATCH 10/31] Fix paper backup script rolling in hourlies --- roles/minecraft-paper/templates/backup.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/roles/minecraft-paper/templates/backup.sh b/roles/minecraft-paper/templates/backup.sh index a1bf9fa..3975835 100644 --- a/roles/minecraft-paper/templates/backup.sh +++ b/roles/minecraft-paper/templates/backup.sh @@ -24,5 +24,7 @@ if ! [ -d "$OUTDIR" ]; then fi # WE MAKE BACKUP NOW SERGEI -tar czf "$OUTDIR/{{ paper_name }}-$(date -Iseconds)-full.tar.gz" "{{ paper_home }}/{{ paper_name }}/" +tar czf "$OUTDIR/{{ paper_name }}-$(date -Iseconds)-full.tar.gz" \ + --exclude "{{ paper_home }}/{{ paper_name }}/backups" \ + "{{ paper_home }}/{{ paper_name }}/" From 5882ac20b500f92ad053d3b43631d964e8b6939e Mon Sep 17 00:00:00 2001 From: Salt Date: Thu, 12 Nov 2020 22:15:16 -0600 Subject: [PATCH 11/31] Add new Pleroma dep for 2.2.0 Wew --- roles/pleroma/tasks/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/pleroma/tasks/main.yml b/roles/pleroma/tasks/main.yml index adf28df..2e7c3d2 100644 --- a/roles/pleroma/tasks/main.yml +++ b/roles/pleroma/tasks/main.yml @@ -11,6 +11,7 @@ - curl - python3-psycopg2 - unzip + - libmagic-dev # Required per Pleroma 2.2 #- ncurses-bin # Comes installed by default on buntu - name: Create pleroma user user: From 21a342788ae681037cd89c54b83571f13b2ab8f5 Mon Sep 17 00:00:00 2001 From: Salt Date: Thu, 12 Nov 2020 22:18:48 -0600 Subject: [PATCH 12/31] Use rsync for pleroma movement instead of mv It's less finicky --- roles/pleroma/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/pleroma/tasks/main.yml b/roles/pleroma/tasks/main.yml index 2e7c3d2..3e14230 100644 --- a/roles/pleroma/tasks/main.yml +++ b/roles/pleroma/tasks/main.yml @@ -121,7 +121,7 @@ - installation - erts-10.3.5.2 # Don't give me shit for hardcoding this version string in - name: Move release out of folder - shell: mv -f /opt/pleroma/release/* /opt/pleroma/ + shell: rsync -a /opt/pleroma/release/* /opt/pleroma/ - name: Clean up file: path: /opt/pleroma/release From a66d336aa5b801b8dd3cbf1d60a7acbcc046ece6 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 14 Nov 2020 21:28:42 -0600 Subject: [PATCH 13/31] Remove Paper server, deploy modded And thus we return to our roots --- playbooks/gameservers.yml | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index 6d029e1..f92ec4d 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -15,11 +15,20 @@ gitweb_url: "thefuck.how" gitweb_webroot: "/var/www/thefuck.how" tags: [ web, webroot ] - - role: minecraft-paper + - role: minecraft-forge vars: - paper_name: "thefuckhow" - paper_mc_maxplayers: 16 - paper_mc_motd: "Brett's new serber" - paper_jre_xms: 1024m - paper_jre_xmx: 2048m - tags: [ gameserver, minecraft, paper ] + mcname: valhelsia + mczip: "https://media.forgecdn.net/files/3110/654/Valhelsia_SERVER-pre5-3.1.0.zip" + mcmotd: "Brett's new serber, modded edition" + mcforge: 1.16.3-34.1.42 + mcheapmax: 3072 + mcviewdist: 10 + tags: [ gameserver, minecraft, forge, valhelsia ] +# - role: minecraft-paper +# vars: +# paper_name: "thefuckhow" +# paper_mc_maxplayers: 16 +# paper_mc_motd: "Brett's new serber" +# paper_jre_xms: 1024m +# paper_jre_xmx: 2048m +# tags: [ gameserver, minecraft, paper ] From dd698b1420eeb522ad0b1acab038d09915147136 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 14 Nov 2020 22:00:33 -0600 Subject: [PATCH 14/31] Alright nevermind put it back --- playbooks/gameservers.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index f92ec4d..26ed91f 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -21,14 +21,15 @@ mczip: "https://media.forgecdn.net/files/3110/654/Valhelsia_SERVER-pre5-3.1.0.zip" mcmotd: "Brett's new serber, modded edition" mcforge: 1.16.3-34.1.42 - mcheapmax: 3072 + mcheapmax: 5120 + mcport: 25566 mcviewdist: 10 tags: [ gameserver, minecraft, forge, valhelsia ] -# - role: minecraft-paper -# vars: -# paper_name: "thefuckhow" -# paper_mc_maxplayers: 16 -# paper_mc_motd: "Brett's new serber" -# paper_jre_xms: 1024m -# paper_jre_xmx: 2048m -# tags: [ gameserver, minecraft, paper ] + - role: minecraft-paper + vars: + paper_name: "thefuckhow" + paper_mc_maxplayers: 16 + paper_mc_motd: "brett's new serber" + paper_jre_xms: 1024m + paper_jre_xmx: 2048m + tags: [ gameserver, minecraft, paper ] From 7ad655fd56c643f66348c24feb62c21f3331dd85 Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 18 Nov 2020 08:25:26 -0600 Subject: [PATCH 15/31] Rename mc-admin to minecraft --- roles/minecraft-forge/tasks/main.yml | 8 ++++---- roles/minecraft-forge/templates/minecraft@.service | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/minecraft-forge/tasks/main.yml b/roles/minecraft-forge/tasks/main.yml index ba5ebe0..0af30d5 100644 --- a/roles/minecraft-forge/tasks/main.yml +++ b/roles/minecraft-forge/tasks/main.yml @@ -13,11 +13,11 @@ - unzip - name: Assure minecraft admin group group: - name: mc-admin + name: minecraft - name: Assure server user user: name: minecraft - group: mc-admin + group: minecraft system: yes home: /var/minecraft - name: Assure var directory @@ -25,7 +25,7 @@ path: /var/minecraft state: directory owner: root - group: mc-admin + group: minecraft # Sticky, SetGID mode: "3770" - name: Assure systemd unit @@ -152,7 +152,7 @@ path: "/var/minecraft/{{ mcname }}/world" state: directory owner: minecraft - group: mc-admin + group: minecraft when: not stat_mcroot_world.stat.exists - name: Configure server block: diff --git a/roles/minecraft-forge/templates/minecraft@.service b/roles/minecraft-forge/templates/minecraft@.service index 7065330..7b4da21 100644 --- a/roles/minecraft-forge/templates/minecraft@.service +++ b/roles/minecraft-forge/templates/minecraft@.service @@ -10,7 +10,7 @@ After=network.target [Service] User=minecraft -Group=mc-admin +Group=minecraft WorkingDirectory=/var/minecraft/%i PrivateUsers=true ProtectSystem=full From 790b4f6a1a1a50c168ee45f6bf7115e34e03a3bf Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 18 Nov 2020 09:47:18 -0600 Subject: [PATCH 16/31] Begin rolling Minecraft into one big role, starting with Forge --- playbooks/gameservers.yml | 28 ++- roles/minecraft-forge/defaults/main.yml | 10 - roles/minecraft-forge/files/eula.txt | 2 - roles/minecraft-forge/meta/main.yml | 4 - roles/minecraft-forge/tasks/main.yml | 181 ------------------ roles/minecraft-forge/templates/install.sh | 33 ---- roles/minecraft-forge/templates/recover.sh | 57 ------ .../templates/server.properties | 38 ---- roles/minecraft/defaults/main.yml | 41 ++++ .../handlers/main.yml | 4 +- roles/minecraft/tasks/main.yml | 75 ++++++++ .../templates/backup.sh | 20 +- roles/minecraft/templates/eula.txt | 2 + roles/minecraft/templates/install-modpack.sh | 15 ++ .../templates/minecraft@.service | 4 +- 15 files changed, 164 insertions(+), 350 deletions(-) delete mode 100644 roles/minecraft-forge/defaults/main.yml delete mode 100644 roles/minecraft-forge/files/eula.txt delete mode 100644 roles/minecraft-forge/meta/main.yml delete mode 100644 roles/minecraft-forge/tasks/main.yml delete mode 100644 roles/minecraft-forge/templates/install.sh delete mode 100644 roles/minecraft-forge/templates/recover.sh delete mode 100644 roles/minecraft-forge/templates/server.properties create mode 100644 roles/minecraft/defaults/main.yml rename roles/{minecraft-forge => minecraft}/handlers/main.yml (51%) create mode 100644 roles/minecraft/tasks/main.yml rename roles/{minecraft-forge => minecraft}/templates/backup.sh (50%) create mode 100644 roles/minecraft/templates/eula.txt create mode 100644 roles/minecraft/templates/install-modpack.sh rename roles/{minecraft-forge => minecraft}/templates/minecraft@.service (88%) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index 26ed91f..24ec9f6 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -15,15 +15,27 @@ gitweb_url: "thefuck.how" gitweb_webroot: "/var/www/thefuck.how" tags: [ web, webroot ] - - role: minecraft-forge + - role: minecraft vars: - mcname: valhelsia - mczip: "https://media.forgecdn.net/files/3110/654/Valhelsia_SERVER-pre5-3.1.0.zip" - mcmotd: "Brett's new serber, modded edition" - mcforge: 1.16.3-34.1.42 - mcheapmax: 5120 - mcport: 25566 - mcviewdist: 10 + minecraft_name: valhelsia + minecraft_version: 1.16.3 + minecraft_jre_xmx: 5G + minecraft_server_properties: + - opt: difficulty + value: hard + - opt: motd + value: "Brett's new serber, modded edition" + - opt: server-port + value: 25566 + - opt: view-distance + value: 10 + minecraft_forge_install: yes + minecraft_forge_version: 34.1.42 + minecraft_forge_packurl: "https://media.forgecdn.net/files/3110/654/Valhelsia_SERVER-pre5-3.1.0.zip" + minecraft_forge_mods: + - "https://media.forgecdn.net/files/3091/862/ftb-gui-library-1603.1.1.25.jar" + - "https://media.forgecdn.net/files/3105/153/ftb-chunks-1603.2.0.43.jar" + become: yes tags: [ gameserver, minecraft, forge, valhelsia ] - role: minecraft-paper vars: diff --git a/roles/minecraft-forge/defaults/main.yml b/roles/minecraft-forge/defaults/main.yml deleted file mode 100644 index 04cc59e..0000000 --- a/roles/minecraft-forge/defaults/main.yml +++ /dev/null @@ -1,10 +0,0 @@ -# vim:ft=ansible: -mcname: "default" -mcport: "25565" -mcmotd: "An Ansible-deployed Minecraft server" -mcleveltype: "default" -mcgensettings: "" -mcgamemode: 0 -mcheapmax: 4096 -mcheapmin: 1024 -mcviewdist: 12 diff --git a/roles/minecraft-forge/files/eula.txt b/roles/minecraft-forge/files/eula.txt deleted file mode 100644 index 9fa0066..0000000 --- a/roles/minecraft-forge/files/eula.txt +++ /dev/null @@ -1,2 +0,0 @@ -# Yes, we accept the EULA -eula=true diff --git a/roles/minecraft-forge/meta/main.yml b/roles/minecraft-forge/meta/main.yml deleted file mode 100644 index 0959eab..0000000 --- a/roles/minecraft-forge/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -allow_duplicates: yes -dependencies: - - role: awscreds diff --git a/roles/minecraft-forge/tasks/main.yml b/roles/minecraft-forge/tasks/main.yml deleted file mode 100644 index 0af30d5..0000000 --- a/roles/minecraft-forge/tasks/main.yml +++ /dev/null @@ -1,181 +0,0 @@ -#!/usr/bin/ansible-playbook -# vim:ft=ansible: ---- -- name: Set up Minecraft user - block: - - name: Install required packages - apt: - name: "{{ packages }}" - vars: - packages: - - openjdk-8-jre - - screen - - unzip - - name: Assure minecraft admin group - group: - name: minecraft - - name: Assure server user - user: - name: minecraft - group: minecraft - system: yes - home: /var/minecraft - - name: Assure var directory - file: - path: /var/minecraft - state: directory - owner: root - group: minecraft - # Sticky, SetGID - mode: "3770" - - name: Assure systemd unit - template: - src: "minecraft@.service" - dest: "/etc/systemd/system/minecraft@.service" - - name: Reload available daemons - systemd: - daemon_reload: yes - become: yes -- name: Set up Minecraft server - block: - - name: Create server directory - file: - path: "/var/minecraft/{{ mcname }}" - state: directory - - name: Download zip - get_url: - dest: "/var/minecraft/{{ mcname }}/modpack.zip" - url: "{{ mczip }}" - register: get_mcpack - - name: Template out scripts - template: - src: "{{ item.src }}" - dest: "/var/minecraft/{{ mcname }}/{{ item.dest }}" - mode: "{{ item.mode }}" - loop: - - { src: "install.sh", dest: "install.sh", mode: "0755" } - - { src: "recover.sh", dest: "recover.sh", mode: "0755" } - - name: Install modpack - block: - - name: Disable service - systemd: - name: "minecraft@{{ mcname }}" - state: stopped - become: yes - become_user: root - - name: Remove remnants of old pack - file: - path: "{{ item }}" - state: absent - loop: - - "/var/minecraft/{{ mcname }}/config" - - "/var/minecraft/{{ mcname }}/coremods" - - "/var/minecraft/{{ mcname }}/local" - - "/var/minecraft/{{ mcname }}/mods" - - "/var/minecraft/{{ mcname }}/scripts" - - "/var/minecraft/{{ mcname }}/server.jar" - - name: Unpack zip - unarchive: - src: "/var/minecraft/{{ mcname }}/modpack.zip" - remote_src: yes - dest: "/var/minecraft/{{ mcname }}" - notify: "restart minecraft {{ mcname }}" - - name: Run install script - command: - chdir: "/var/minecraft/{{ mcname }}" - argv: - - bash - - "./install.sh" - notify: "restart minecraft {{ mcname }}" - when: get_mcpack is changed - - name: Check for Forge - stat: - path: "/var/minecraft/{{ mcname }}/server.jar" - register: stat_mcroot_forgejar - - name: Install Forge - block: - - name: Download Forge - get_url: - dest: "/var/minecraft/{{ mcname }}/installer.jar" - # Accurate as of 2020-02-23 - url: "https://files.minecraftforge.net/maven/net/minecraftforge/forge/{{ mcforge }}/forge-{{ mcforge }}-installer.jar" - register: get_forge - - name: Install Forge - # Note: This also installs a Minecraft server, thankfully - command: - chdir: "/var/minecraft/{{ mcname }}" - argv: - - /usr/bin/java - - "-jar" - - "/var/minecraft/{{ mcname }}/installer.jar" - - "--installServer" - args: - creates: "/var/minecraft/{{ mcname }}/forge-{{ mcforge }}-universal.jar" - - name: Find classic jar name - stat: - path: "/var/minecraft/{{ mcname }}/forge-{{ mcforge }}-universal.jar" - register: stat_mcroot_newjar - - name: Link old-style server jar - file: - path: "/var/minecraft/{{ mcname }}/server.jar" - src: "/var/minecraft/{{ mcname }}/forge-{{ mcforge }}-universal.jar" - state: link - when: stat_mcroot_newjar.stat.exists - - name: Link new-style server jar - file: - path: "/var/minecraft/{{ mcname }}/server.jar" - src: "/var/minecraft/{{ mcname }}/forge-{{ mcforge }}.jar" - state: link - when: not stat_mcroot_newjar.stat.exists - when: not stat_mcroot_forgejar.stat.exists - - name: Check for world - stat: - path: "/var/minecraft/{{ mcname }}/world" - register: stat_mcroot_world - - name: Recover world, if available - block: - - name: Stop server - systemd: - name: "minecraft@{{ mcname }}" - state: stopped - - name: Run recover script - command: - chdir: "/var/minecraft/{{ mcname }}" - argv: - - bash - - "./recover.sh" - notify: "restart minecraft {{ mcname }}" - become: yes - become_user: root - - name: Change permissions of world - file: - path: "/var/minecraft/{{ mcname }}/world" - state: directory - owner: minecraft - group: minecraft - when: not stat_mcroot_world.stat.exists - - name: Configure server - block: - - name: Template out server.properties - template: - src: server.properties - dest: "/var/minecraft/{{ mcname }}/server.properties" - - name: Accept EULA - copy: - src: "eula.txt" - dest: "/var/minecraft/{{ mcname }}/eula.txt" - become: yes - become_user: minecraft -- name: Set up system - block: - - name: Enable service - systemd: - name: "minecraft@{{ mcname }}" - enabled: yes - state: started - - name: Template out backup module - template: - src: "backup.sh" - dest: "/opt/backups/modules/minecraft-{{ mcname }}.sh" - mode: "0600" - become: yes diff --git a/roles/minecraft-forge/templates/install.sh b/roles/minecraft-forge/templates/install.sh deleted file mode 100644 index 5d33b55..0000000 --- a/roles/minecraft-forge/templates/install.sh +++ /dev/null @@ -1,33 +0,0 @@ -#! /bin/sh -# -# install.sh -# Because writing this logic in Ansible is kinda dumb -# Copyright (C) 2020 Vintage Salt -# -# Distributed under terms of the MIT license. -# - -set -e - -# Get to our magic dir -export MINECRAFT_DIR="/var/minecraft/{{ mcname }}" -cd "$MINECRAFT_DIR" || exit 50 - -# If the mods and config directories exist, we don't need to do anything -# We make the inference here because the previous step of the playbook removed them -if [ -d "mods" ]; then - exit 0 -fi - -# MultiMC packs are organized as such: -# ./Pack Name/.minecraft/{mods,configs,etc.} -# ./Pack Name/minecraft/{mods,configs,etc.} -# I'm going to elect not to support the latter just for the sake of my sanity -packdir="$(find -type d -iname ".minecraft" | head -n 1)" -if ! [ -d "$packdir" ]; then - exit 51 -fi -# Just move the shit out 4head -mv -f "$packdir"/* . -exit 0 - diff --git a/roles/minecraft-forge/templates/recover.sh b/roles/minecraft-forge/templates/recover.sh deleted file mode 100644 index 5728191..0000000 --- a/roles/minecraft-forge/templates/recover.sh +++ /dev/null @@ -1,57 +0,0 @@ -#! /bin/sh -# -# recover.sh -# Recover a Minecraft world save from our S3 bucket -# Copyright (C) 2020 Vintage Salt -# -# Distributed under terms of the MIT license. -# - -set -e - -# Get to our magic dir -export MINECRAFT_DIR="/var/minecraft/{{ mcname }}" -cd "$MINECRAFT_DIR" || exit 50 - -# Make sure we have a backup -if ! aws s3 ls "s3://{{ aws.backup_bucket }}/{{ mcname }}/" > /dev/null 2>&1; then - echo "No backups available" - exit 0 -fi -# If the world directory exists, we need to ensure that we don't clobber it -if [ -d "world" ]; then - echo "Backing up current world" - tar czf "recover-world-$(date -Iseconds).tar.gz" world --remove-files --force-local -fi -# If it STILL exists, then we have a problem -if [ -d "world" ]; then - echo "World was found to exist after tarring; bailing" - exit 51 -fi - -# Get our latest good backup -backup="$(aws s3 ls "s3://{{ aws.backup_bucket }}/{{ mcname }}/" | tail -n 1 | awk '{print $4}')" -echo "Restoring backup: $backup" -aws s3 cp "s3://{{ aws.backup_bucket }}/{{ mcname }}/$backup" world.tgz -# Decompress it -tar xzf world.tgz -# Find the world -worlddir="$(find ./var -type d -name "world" | head -n 1)" -# Move it in place -mv "$worlddir" . -# Verify our work -if [ -f "world/level.dat" ]; then - echo "Recovered from backup: $backup" -else - echo "Failed to recover from backup: $backup" -fi -# Remove the var dir, if it exists, because that's what it ends up being named -if [ -d "var" ]; then - # Never use relative paths with rm in a script - # That's heresy - rm -rf "/var/minecraft/{{ mcname }}/var" -fi -# Remove our old world.tgz -if [ -f "world.tgz" ]; then - rm "/var/minecraft/{{ mcname }}/world.tgz" -fi diff --git a/roles/minecraft-forge/templates/server.properties b/roles/minecraft-forge/templates/server.properties deleted file mode 100644 index d825054..0000000 --- a/roles/minecraft-forge/templates/server.properties +++ /dev/null @@ -1,38 +0,0 @@ -# Minecraft server properties -allow-flight=true -allow-nether=true -difficulty=3 -enable-command-block=true -enable-query=false -enable-rcon=false -force-gamemode=false -gamemode={{ mcgamemode }} -generate-structures=true -generator-settings={{ mcgensettings }} -hardcore=false -level-name=world -level-seed= -level-type={{ mcleveltype }} -max-build-height=256 -max-players=8 -max-tick-time=60000 -max-world-size=29999984 -motd={{ mcmotd }} -network-compression-threshold=256 -online-mode=true -op-permission-level=4 -player-idle-timeout=0 -prevent-proxy-connections=false -pvp=true -resource-pack= -resource-pack-sha1= -server-ip= -server-port={{ mcport }} -snooper-enabled=false -spawn-animals=true -spawn-monsters=true -spawn-npcs=true -spawn-protection=0 -use-native-transport=true -view-distance={{ mcviewdist }} -white-list=false diff --git a/roles/minecraft/defaults/main.yml b/roles/minecraft/defaults/main.yml new file mode 100644 index 0000000..77c7f5b --- /dev/null +++ b/roles/minecraft/defaults/main.yml @@ -0,0 +1,41 @@ +# vim:ft=ansible: +minecraft_name: default +minecraft_version: 1.16.3 +# minecraft_forge_version: You tell me + +# Packages +# Put any extra dependencies (for mods, etc.) in _extra +minecraft_packages: + - openjdk-8-jre + - screen +minecraft_packages_extra: [] + +# Addon configuration +# You'll probably want to enable one of these +minecraft_paper_install: no +minecraft_paper_downloadurl: "https://papermc.io/api/v1/paper/{{ minecraft_version }}/latest/download" +minecraft_forge_install: no +minecraft_forge_downloadurl: "https://files.minecraftforge.net/maven/net/minecraftforge/forge/{{ minecraft_version }}-{{ minecraft_forge_version }}/forge-{{ minecraft_version }}-{{ minecraft_forge_version }}-installer.jar" +# Define this if you already have a modpack zipped up and ready to go +#minecraft_forge_packurl: https://path.to.your/modpack.zip +# Define THIS if you want to download a bunch of mods by JAR URL: +minecraft_forge_mods: [] +minecraft_vanilla_install: no +minecraft_vanilla_downloadurl: "https://launcher.mojang.com/v1/objects/35139deedbd5182953cf1caa23835da59ca3d7cd/server.jar" + +# Service configuration +minecraft_home: /opt/minecraft +minecraft_stop_message: "Server is going down for maintenance" + +# Java configuration +minecraft_jre_xms: 2048m +minecraft_jre_xmx: 4096m + +# Minecraft configuration +# Contains key-value pairs that will be lineinfile'd into server.properties +# Example: +# minecraft_server_properties: +# - { opt: allow-flight, value: "false" } +# - opt: gamemode +# value: 0 +minecraft_server_properties: {} diff --git a/roles/minecraft-forge/handlers/main.yml b/roles/minecraft/handlers/main.yml similarity index 51% rename from roles/minecraft-forge/handlers/main.yml rename to roles/minecraft/handlers/main.yml index b3fa49a..a9003dc 100644 --- a/roles/minecraft-forge/handlers/main.yml +++ b/roles/minecraft/handlers/main.yml @@ -1,8 +1,8 @@ #!/usr/bin/ansible-playbook # vim:ft=ansible: --- -- name: "restart minecraft {{ mcname }}" +- name: "restart minecraft {{ minecraft_name }}" systemd: - name: "minecraft@{{ mcname }}" + name: "minecraft@{{ minecraft_name }}" state: restarted become: yes diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml new file mode 100644 index 0000000..ade7d7f --- /dev/null +++ b/roles/minecraft/tasks/main.yml @@ -0,0 +1,75 @@ +#!/usr/bin/ansible-playbook +# vim:ft=ansible: +--- +- name: set up system + block: + - name: install required packages + apt: name="{{ minecraft_packages + minecraft_packages_extra }}" + - name: assure server user + user: name=minecraft system=yes home={{ minecraft_home }} + - name: assure operational directory + file: path={{ minecraft_home }} state=directory owner=minecraft group=minecraft mode="3775" + - name: assure backup script + template: src=backup.sh dest=/opt/backups/modules/minecraft-{{ minecraft_name }}.sh + - name: assure systemd unit + template: src=minecraft@.service dest=/etc/systemd/system/minecraft@.service + notify: "restart minecraft {{ minecraft_name }}" +- name: set up minecraft + block: + - name: assure server directory + file: path={{ minecraft_home }}/{{ minecraft_name }} state=directory + - name: accept eula + template: src=eula.txt dest={{ minecraft_home }}/{{ minecraft_name }}/eula.txt + - name: configure server properties + lineinfile: + dest: "{{ minecraft_home }}/{{ minecraft_name }}/server.properties" + line: "{{ item.opt }}={{ item.value }}" + regex: "^{{ item.opt }}=.*" + create: yes + loop: "{{ minecraft_server_properties }}" + notify: "restart minecraft {{ minecraft_name }}" + become: yes + become_user: minecraft +- name: set up forge + block: + - name: template out modpack installer + template: src=install-modpack.sh dest={{ minecraft_home }}/{{ minecraft_name }}/install-modpack.sh mode="0755" + - name: download forge + get_url: dest={{ minecraft_home }}/{{ minecraft_name }}/installer.jar url={{ minecraft_forge_downloadurl }} + register: download_forge + - name: install forge + command: + chdir: "{{ minecraft_home }}/{{ minecraft_name }}" + argv: [ "/usr/bin/java", "-jar", "./installer.jar", "--installServer" ] + notify: restart minecraft {{ minecraft_name }} + when: download_forge is changed + - name: link to forge jar + file: path={{ minecraft_home }}/{{ minecraft_name }}/server.jar src=forge-{{ minecraft_version }}-{{ minecraft_forge_version }}.jar state=link + - name: install modpack + block: + - name: download modpack + get_url: dest={{ minecraft_home }}/{{ minecraft_name }}/modpack.zip url={{ minecraft_forge_packurl }} + register: download_modpack + - name: install modpack + block: + - name: assure modpack unzip directory + file: path={{ minecraft_home }}/{{ minecraft_name }}/modpack state=directory + - name: unpack zip + unarchive: src={{ minecraft_home }}/{{ minecraft_name }}/modpack.zip dest={{ minecraft_home }}/{{ minecraft_name }}/modpack remote_src=yes + - name: run installer + command: + chdir: "{{ minecraft_home }}/{{ minecraft_name }}" + argv: [ "bash", "./install-modpack.sh" ] + notify: "restart minecraft {{ minecraft_name }}" + when: download_modpack is changed + when: minecraft_forge_packurl is defined + - name: install mods + get_url: dest="{{ minecraft_home }}/{{ minecraft_name }}/mods" url={{ item }} + loop: "{{ minecraft_forge_mods }}" + notify: restart minecraft {{ minecraft_name }} + when: minecraft_forge_mods is iterable and minecraft_forge_mods != None + become: yes + become_user: minecraft + when: minecraft_forge_install and minecraft_forge_version is defined +- name: enable service + systemd: name=minecraft@{{ minecraft_name }}.service enabled=yes state=started diff --git a/roles/minecraft-forge/templates/backup.sh b/roles/minecraft/templates/backup.sh similarity index 50% rename from roles/minecraft-forge/templates/backup.sh rename to roles/minecraft/templates/backup.sh index 55530ef..1fd1932 100644 --- a/roles/minecraft-forge/templates/backup.sh +++ b/roles/minecraft/templates/backup.sh @@ -1,6 +1,6 @@ #! /bin/bash # -# minecraft.sh +# minecraft-{{ minecraft_name }}.sh # Backup script for Minecraft. Meant to be sourced by our main backup script # Copyright (C) 2020 Vintage Salt # @@ -9,8 +9,7 @@ set -e -export OUTDIR="$BACKUPSDIR/{{ mcname }}" -retention=7 # 7-day retention period +export OUTDIR="$BACKUPSDIR/{{ minecraft_name }}" # Sanity checks if [ -z "$BACKUPSDIR" ]; then @@ -24,15 +23,10 @@ if ! [ -d "$OUTDIR" ]; then fi fi -# Purge oldest backup if we need to -currentbackupcount="$(ls -1 "$OUTDIR" | wc -l)" -if (( currentbackupcount >= retention )); then - lastbackup="$(find "$OUTDIR" -name \*.tar.gz 2>/dev/null | sort | head -n 1)" - if [ -f "$lastbackup" ]; then - log "Removing old backup: $lastbackup" - rm "$lastbackup" - fi -fi # WE MAKE BACKUP NOW SERGEI -tar czf "$OUTDIR/{{ mcname }}-$(date -Iseconds)-world.tar.gz" "/var/minecraft/{{ mcname }}/world" +tar czf "$OUTDIR/{{ minecraft_name }}-$(date -Iseconds)-full.tar.gz" \ + --exclude "{{ minecraft_home }}/{{ minecraft_name }}/backups" \ + --exclude "{{ minecraft_home }}/{{ minecraft_name }}/crash-reports" \ + --exclude "{{ minecraft_home }}/{{ minecraft_name }}/logs" \ + "/{{ minecraft_home }}/{{ minecraft_name }}/" diff --git a/roles/minecraft/templates/eula.txt b/roles/minecraft/templates/eula.txt new file mode 100644 index 0000000..b0cf95f --- /dev/null +++ b/roles/minecraft/templates/eula.txt @@ -0,0 +1,2 @@ +# Tacos best food yadda yadda +eula=true diff --git a/roles/minecraft/templates/install-modpack.sh b/roles/minecraft/templates/install-modpack.sh new file mode 100644 index 0000000..8c56734 --- /dev/null +++ b/roles/minecraft/templates/install-modpack.sh @@ -0,0 +1,15 @@ +#! /bin/sh + +# Find out where our modpack lives +# +# This assumes that we have no directories adjacent to the actual pack dir +# that contain a directory called "mods" +# +# If that's not the case, the onus is on you to fix your shit and/or repack +# the server zip +# +directory="$(find modpack/ -type d -iname "mods" -execdir pwd \; | head -n 1)" +echo "Syncing from $directory/" + +# Now we rsync everything from that directory here, which should set us up +rsync -av "$directory"/ ./ diff --git a/roles/minecraft-forge/templates/minecraft@.service b/roles/minecraft/templates/minecraft@.service similarity index 88% rename from roles/minecraft-forge/templates/minecraft@.service rename to roles/minecraft/templates/minecraft@.service index 7b4da21..c13de59 100644 --- a/roles/minecraft-forge/templates/minecraft@.service +++ b/roles/minecraft/templates/minecraft@.service @@ -11,7 +11,7 @@ After=network.target [Service] User=minecraft Group=minecraft -WorkingDirectory=/var/minecraft/%i +WorkingDirectory={{ minecraft_home }}/%i PrivateUsers=true ProtectSystem=full ProtectHome=true @@ -22,7 +22,7 @@ ProtectKernelModules=true # Implies MountAPIVFS=yes ProtectControlGroups=true -ExecStart=/bin/sh -c '/usr/bin/screen -DmS %i /usr/bin/java -Xms{{ mcheapmin }}M -Xmx{{ mcheapmax }}M -jar server.jar nogui' +ExecStart=/bin/sh -c '/usr/bin/screen -DmS %i /usr/bin/java -Xms{{ minecraft_jre_xms }} -Xmx{{ minecraft_jre_xmx }} -jar server.jar nogui' ExecReload=/usr/bin/screen -p 0 -S %i -X eval 'stuff "reload"\\015' From b2bba953f9e1bd4cb5cd850f19681f655347819d Mon Sep 17 00:00:00 2001 From: Salt Date: Thu, 19 Nov 2020 00:36:37 -0600 Subject: [PATCH 17/31] Change MOTD of Forge server --- playbooks/gameservers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index 24ec9f6..8c07e63 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -24,7 +24,7 @@ - opt: difficulty value: hard - opt: motd - value: "Brett's new serber, modded edition" + value: "Let's get this out onto a tray. Nice, mmkay" - opt: server-port value: 25566 - opt: view-distance From 2f1560c08c8aed1fbcbf4f2c170b658efaffae6c Mon Sep 17 00:00:00 2001 From: Salt Date: Fri, 20 Nov 2020 00:20:17 -0600 Subject: [PATCH 18/31] Disable paper server --- playbooks/gameservers.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index 8c07e63..2b09f9a 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -37,11 +37,11 @@ - "https://media.forgecdn.net/files/3105/153/ftb-chunks-1603.2.0.43.jar" become: yes tags: [ gameserver, minecraft, forge, valhelsia ] - - role: minecraft-paper - vars: - paper_name: "thefuckhow" - paper_mc_maxplayers: 16 - paper_mc_motd: "brett's new serber" - paper_jre_xms: 1024m - paper_jre_xmx: 2048m - tags: [ gameserver, minecraft, paper ] +# - role: minecraft-paper +# vars: +# paper_name: "thefuckhow" +# paper_mc_maxplayers: 16 +# paper_mc_motd: "brett's new serber" +# paper_jre_xms: 1024m +# paper_jre_xmx: 2048m +# tags: [ gameserver, minecraft, paper ] From ec448ce739115ace5545095605c901f879e41a85 Mon Sep 17 00:00:00 2001 From: Salt Date: Fri, 20 Nov 2020 04:05:59 -0600 Subject: [PATCH 19/31] Add small but useful stanza for paper servers to minecraft role --- roles/minecraft/tasks/main.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml index ade7d7f..b2a4d05 100644 --- a/roles/minecraft/tasks/main.yml +++ b/roles/minecraft/tasks/main.yml @@ -30,6 +30,15 @@ notify: "restart minecraft {{ minecraft_name }}" become: yes become_user: minecraft +- name: set up paper + block: + - name: download paper + get_url: url={{ minecraft_paper_downloadurl }} dest={{ minecraft_home }}/{{ minecraft_name }}/server.jar + notify: "restart minecraft {{ minecraft_name }}" + # TODO: Manage configs for plugins, auto-install plugins + become: yes + become_user: minecraft + when: minecraft_fabric_install - name: set up forge block: - name: template out modpack installer From 939ce5738eddfa4e62233f1e53c822b60d1d5613 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 21 Nov 2020 01:17:28 -0600 Subject: [PATCH 20/31] s/fabric/paper/g --- roles/minecraft/tasks/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml index b2a4d05..82ab92c 100644 --- a/roles/minecraft/tasks/main.yml +++ b/roles/minecraft/tasks/main.yml @@ -38,7 +38,7 @@ # TODO: Manage configs for plugins, auto-install plugins become: yes become_user: minecraft - when: minecraft_fabric_install + when: minecraft_paper_install - name: set up forge block: - name: template out modpack installer From 06adfd1694298642b604a48b51f0c3b341ea6dde Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 21 Nov 2020 01:36:59 -0600 Subject: [PATCH 21/31] Turn server_properties into a list, not a dictionary --- roles/minecraft/defaults/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/minecraft/defaults/main.yml b/roles/minecraft/defaults/main.yml index 77c7f5b..8ef5b63 100644 --- a/roles/minecraft/defaults/main.yml +++ b/roles/minecraft/defaults/main.yml @@ -38,4 +38,4 @@ minecraft_jre_xmx: 4096m # - { opt: allow-flight, value: "false" } # - opt: gamemode # value: 0 -minecraft_server_properties: {} +minecraft_server_properties: [] From a162c43cceab59c2a7061dbee3c81b476eeafc37 Mon Sep 17 00:00:00 2001 From: Salt Date: Sat, 21 Nov 2020 06:54:38 -0600 Subject: [PATCH 22/31] Add function to remove mods from a server Fun thing we gain from this for free: the ability to scriptedly remove client-side mods from 1.7.10 and earlier packs --- roles/minecraft/defaults/main.yml | 3 +++ roles/minecraft/tasks/main.yml | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/roles/minecraft/defaults/main.yml b/roles/minecraft/defaults/main.yml index 8ef5b63..fdd4468 100644 --- a/roles/minecraft/defaults/main.yml +++ b/roles/minecraft/defaults/main.yml @@ -20,6 +20,9 @@ minecraft_forge_downloadurl: "https://files.minecraftforge.net/maven/net/minecra #minecraft_forge_packurl: https://path.to.your/modpack.zip # Define THIS if you want to download a bunch of mods by JAR URL: minecraft_forge_mods: [] +# Define THIS if you want to remove any mods that come with a pack by default +# Just a list of filenames in /mods. Matches directories, too +minecraft_forge_mods_remove: [] minecraft_vanilla_install: no minecraft_vanilla_downloadurl: "https://launcher.mojang.com/v1/objects/35139deedbd5182953cf1caa23835da59ca3d7cd/server.jar" diff --git a/roles/minecraft/tasks/main.yml b/roles/minecraft/tasks/main.yml index 82ab92c..5edfe60 100644 --- a/roles/minecraft/tasks/main.yml +++ b/roles/minecraft/tasks/main.yml @@ -75,8 +75,13 @@ - name: install mods get_url: dest="{{ minecraft_home }}/{{ minecraft_name }}/mods" url={{ item }} loop: "{{ minecraft_forge_mods }}" - notify: restart minecraft {{ minecraft_name }} + notify: "restart minecraft {{ minecraft_name }}" when: minecraft_forge_mods is iterable and minecraft_forge_mods != None + - name: remove mods + file: path={{ minecraft_home }}/{{ minecraft_name }}/mods/{{ item }} state=absent + loop: "{{ minecraft_forge_mods_remove }}" + notify: "restart minecraft {{ minecraft_name }}" + when: minecraft_forge_mods_remove is iterable and minecraft_forge_mods_remove != None become: yes become_user: minecraft when: minecraft_forge_install and minecraft_forge_version is defined From e281624b1ab109cfb4eec3a6af3c6372ac7f21e4 Mon Sep 17 00:00:00 2001 From: Salt Date: Sun, 22 Nov 2020 22:05:15 -0600 Subject: [PATCH 23/31] Update IF --- playbooks/gameservers.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/playbooks/gameservers.yml b/playbooks/gameservers.yml index 2b09f9a..ecc4b26 100644 --- a/playbooks/gameservers.yml +++ b/playbooks/gameservers.yml @@ -35,6 +35,9 @@ minecraft_forge_mods: - "https://media.forgecdn.net/files/3091/862/ftb-gui-library-1603.1.1.25.jar" - "https://media.forgecdn.net/files/3105/153/ftb-chunks-1603.2.0.43.jar" + - "https://media.forgecdn.net/files/3113/275/industrial-foregoing-1.16.4-3.2.2-daea863.jar" + minecraft_forge_mods_remove: + - industrial-foregoing-1.16.3-3.1.1-a834e76.jar become: yes tags: [ gameserver, minecraft, forge, valhelsia ] # - role: minecraft-paper From 0ff45f2b642582eca503fa630800ebd6a21964b7 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 30 Nov 2020 02:26:28 -0600 Subject: [PATCH 24/31] Decom Grafana CHRIST I hate this stack --- playbooks/webservers.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playbooks/webservers.yml b/playbooks/webservers.yml index 1f02d1c..77c2386 100644 --- a/playbooks/webservers.yml +++ b/playbooks/webservers.yml @@ -7,8 +7,8 @@ tags: [ backups ] - role: gitea tags: [ web, gitea ] - - role: grafana - tags: [ web, grafana ] +# - role: grafana +# tags: [ web, grafana ] - role: nextcloud tags: [ web, nextcloud ] - role: redirect From 992776ea8e53c1672790e95b7eabcd60d802ccf5 Mon Sep 17 00:00:00 2001 From: Salt Date: Fri, 18 Dec 2020 01:39:09 -0600 Subject: [PATCH 25/31] Remove my machines from inventory --- inventory/hosts.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inventory/hosts.yml b/inventory/hosts.yml index 431e399..2dbe023 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -42,10 +42,10 @@ all: 3339633961393864330a616437613534643231366634643362383438316233376334636264303361 65313231393433396538663463383731303661633663343066333264303330313133 hosts: - dsk-cstm-0: - ansible_host: 172.23.100.1 - lap-s76-lemp9-0: - ansible_host: 172.23.100.3 +# dsk-cstm-0: +# ansible_host: 172.23.100.1 +# lap-s76-lemp9-0: +# ansible_host: 172.23.100.3 thefuck: vars: ansible_user: root From 834841a0fa7ba58d16a0921930c526a27dee7223 Mon Sep 17 00:00:00 2001 From: Salt Date: Fri, 18 Dec 2020 01:42:14 -0600 Subject: [PATCH 26/31] Remove hard dep on python-is-python3 --- roles/common/tasks/packages.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/roles/common/tasks/packages.yml b/roles/common/tasks/packages.yml index f214791..df137a6 100644 --- a/roles/common/tasks/packages.yml +++ b/roles/common/tasks/packages.yml @@ -21,7 +21,6 @@ - net-tools - openssh-server - pwgen - - python-is-python3 - python3-apt - screen - vim From a42f60c45f2941a02ae6f5c5d182a145b1a80692 Mon Sep 17 00:00:00 2001 From: Salt Date: Fri, 18 Dec 2020 01:53:48 -0600 Subject: [PATCH 27/31] Remove desu.ltd from web1 Your services are no longer required. --- playbooks/webservers.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/playbooks/webservers.yml b/playbooks/webservers.yml index 77c2386..cf7a43a 100644 --- a/playbooks/webservers.yml +++ b/playbooks/webservers.yml @@ -37,11 +37,3 @@ gitweb_url: "www.otwstudios.org" gitweb_webroot: "/var/www/otwstudios.org" tags: [ web, webroot, otw ] -- hosts: web1.9iron.club - roles: - - role: gitweb - vars: - gitweb_repo: "https://git.9iron.club/salt/desultd" - gitweb_url: "desu.ltd" - gitweb_webroot: "/var/www/desultd" - tags: [ web, webroot, desu ] From 598ec2d5a842eb7b6c0e2349a5b1d10375b09ed0 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 21 Dec 2020 01:37:13 -0600 Subject: [PATCH 28/31] Disable game1.thefuck.how --- inventory/hosts.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inventory/hosts.yml b/inventory/hosts.yml index 2dbe023..55746e8 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -46,11 +46,11 @@ all: # ansible_host: 172.23.100.1 # lap-s76-lemp9-0: # ansible_host: 172.23.100.3 - thefuck: - vars: - ansible_user: root - hosts: - game1.thefuck.how: +# thefuck: +# vars: +# ansible_user: root +# hosts: +# game1.thefuck.how: 9iron: children: dbservers: From f930606e75249c9f8f76892e4778c3e8d1a651e8 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 18 Jan 2021 06:41:58 -0600 Subject: [PATCH 29/31] Update inventory Just one last item to cross off the list --- inventory/hosts.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/inventory/hosts.yml b/inventory/hosts.yml index 55746e8..aaaf949 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -56,10 +56,10 @@ all: dbservers: vars: hosts: - psql1.9iron.club: + #psql1.9iron.club: webservers: hosts: - web1.9iron.club: + #web1.9iron.club: fedi1.9iron.club: gameservers: vars: From 48b8586b17c5267226d0b0fa40d8de465f6c0fe5 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 18 Jan 2021 20:26:37 -0600 Subject: [PATCH 30/31] Disable influxdb and telegraf --- site.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/site.yml b/site.yml index 904a05f..88b84cc 100755 --- a/site.yml +++ b/site.yml @@ -17,10 +17,6 @@ roles: - role: base-snmpd tags: [ common, snmpd ] - - role: influxdb - tags: [ common, influxdb ] - - role: telegraf - tags: [ common, telegraf ] - import_playbook: playbooks/dns.yml - import_playbook: playbooks/dbservers.yml - import_playbook: playbooks/webservers.yml From 04c5bcc77c01a405cd3c385ee3bd35ca5dc7c2f4 Mon Sep 17 00:00:00 2001 From: Salt Date: Mon, 18 Jan 2021 20:29:00 -0600 Subject: [PATCH 31/31] Update ansible pull repo url --- inventory/hosts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inventory/hosts.yml b/inventory/hosts.yml index aaaf949..2d306c8 100644 --- a/inventory/hosts.yml +++ b/inventory/hosts.yml @@ -2,7 +2,7 @@ # vim:ft=ansible: all: vars: - ansible_pull_repo: "https://git.9iron.club/salt/ansible" + ansible_pull_repo: "https://git.desu.ltd/salt/ansible" ansible_user: ubuntu gitea_api_token: !vault | $ANSIBLE_VAULT;1.1;AES256