update
This commit is contained in:
14
roles/03-installation-minecraft/defaults/main.yml
Normal file
14
roles/03-installation-minecraft/defaults/main.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
minecraft_version: "1.21.6"
|
||||
minecraft_user: minecraft
|
||||
minecraft_group: minecraft
|
||||
minecraft_home: /opt/minecraft
|
||||
minecraft_memory_min: "1G"
|
||||
minecraft_memory_max: "4G"
|
||||
minecraft_port: 25565
|
||||
minecraft_rcon_port: 25575
|
||||
minecraft_rcon_password: "changeme"
|
||||
|
||||
spigot_build_tools_url: "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar"
|
||||
mcrcon_version: "0.7.2"
|
||||
mcrcon_url: "https://github.com/Tiiffi/mcrcon/releases/download/v{{ mcrcon_version }}/mcrcon-{{ mcrcon_version }}-linux-x86-64.tar.gz"
|
21
roles/03-installation-minecraft/handlers/main.yml
Normal file
21
roles/03-installation-minecraft/handlers/main.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
- name: reload systemd
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
|
||||
- name: enable minecraft service
|
||||
systemd:
|
||||
name: minecraft
|
||||
enabled: yes
|
||||
|
||||
- name: restart minecraft
|
||||
systemd:
|
||||
name: minecraft
|
||||
state: restarted
|
||||
enabled: yes
|
||||
|
||||
- name: start minecraft
|
||||
systemd:
|
||||
name: minecraft
|
||||
state: started
|
||||
enabled: yes
|
@@ -0,0 +1,5 @@
|
||||
name: Create minecraft group
|
||||
group:
|
||||
name: "{{ minecraft_group }}"
|
||||
state: present
|
||||
tags: ['minecraft-user']
|
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: Create minecraft directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ minecraft_home }}"
|
||||
- "{{ minecraft_sources_dir }}"
|
||||
- "{{ minecraft_server_dir }}"
|
||||
- "{{ minecraft_tools_dir }}"
|
||||
- "{{ minecraft_backups_dir }}"
|
||||
tags: ['minecraft-directories']
|
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Download BuildTools.jar
|
||||
get_url:
|
||||
url: "{{ spigot_build_tools_url }}"
|
||||
dest: "{{ minecraft_sources_dir }}/BuildTools.jar"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['spigot-download']
|
17
roles/03-installation-minecraft/tasks/04-install-mcrcon.yml
Normal file
17
roles/03-installation-minecraft/tasks/04-install-mcrcon.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: Download mcrcon
|
||||
get_url:
|
||||
url: "{{ mcrcon_url }}"
|
||||
dest: "{{ minecraft_tools_dir }}/mcrcon.tar.gz"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
tags: ['mcrcon-install']
|
||||
|
||||
- name: Extract mcrcon
|
||||
unarchive:
|
||||
src: "{{ minecraft_tools_dir }}/mcrcon.tar.gz"
|
||||
dest: "{{ minecraft_tools_dir }}"
|
||||
remote_src: yes
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
tags: ['mcrcon-install']
|
19
roles/03-installation-minecraft/tasks/05-compile-spigotyml
Normal file
19
roles/03-installation-minecraft/tasks/05-compile-spigotyml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
- name: Compile Spigot server
|
||||
shell: |
|
||||
cd {{ minecraft_sources_dir }}
|
||||
java -jar BuildTools.jar --rev {{ minecraft_version }}
|
||||
become_user: "{{ minecraft_user }}"
|
||||
args:
|
||||
creates: "{{ minecraft_sources_dir }}/spigot-{{ minecraft_version }}.jar"
|
||||
tags: ['spigot-compile']
|
||||
|
||||
- name: Copy compiled Spigot to server directory
|
||||
copy:
|
||||
src: "{{ minecraft_sources_dir }}/spigot-{{ minecraft_version }}.jar"
|
||||
dest: "{{ minecraft_server_dir }}/spigot.jar"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
remote_src: yes
|
||||
tags: ['spigot-compile']
|
@@ -0,0 +1,37 @@
|
||||
---
|
||||
- name: Generate server.properties
|
||||
template:
|
||||
src: server.properties.j2
|
||||
dest: "{{ minecraft_server_dir }}/server.properties"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-config']
|
||||
|
||||
- name: Generate spigot.yml
|
||||
template:
|
||||
src: spigot.yml.j2
|
||||
dest: "{{ minecraft_server_dir }}/spigot.yml"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-config']
|
||||
|
||||
- name: Generate bukkit.yml
|
||||
template:
|
||||
src: bukkit.yml.j2
|
||||
dest: "{{ minecraft_server_dir }}/bukkit.yml"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-config']
|
||||
|
||||
- name: Accept EULA
|
||||
lineinfile:
|
||||
path: "{{ minecraft_server_dir }}/eula.txt"
|
||||
line: "eula=true"
|
||||
create: yes
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-config']
|
10
roles/03-installation-minecraft/tasks/07-create-service.yml
Normal file
10
roles/03-installation-minecraft/tasks/07-create-service.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Create systemd service file
|
||||
template:
|
||||
src: minecraft.service.j2
|
||||
dest: /etc/systemd/system/minecraft.service
|
||||
mode: '0644'
|
||||
notify:
|
||||
- reload systemd
|
||||
- enable minecraft service
|
||||
tags: ['minecraft-service']
|
@@ -0,0 +1,7 @@
|
||||
---
|
||||
- name: Setup log rotation for Minecraft
|
||||
template:
|
||||
src: logrotate-minecraft.j2
|
||||
dest: /etc/logrotate.d/minecraft
|
||||
mode: '0644'
|
||||
tags: ['minecraft-logs']
|
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Configure ops.json
|
||||
template:
|
||||
src: ops.json.j2
|
||||
dest: "{{ minecraft_server_dir }}/ops.json"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-ops']
|
20
roles/03-installation-minecraft/tasks/10-setup-plugins.yml
Normal file
20
roles/03-installation-minecraft/tasks/10-setup-plugins.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
- name: Create plugins directory
|
||||
file:
|
||||
path: "{{ minecraft_server_dir }}/plugins"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
tags: ['minecraft-plugins']
|
||||
|
||||
- name: Download plugins if specified
|
||||
get_url:
|
||||
url: "{{ item.url }}"
|
||||
dest: "{{ minecraft_server_dir }}/plugins/{{ item.name }}"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
loop: "{{ minecraft_plugins | default([]) }}"
|
||||
when: minecraft_plugins is defined
|
||||
tags: ['minecraft-plugins']
|
40
roles/03-installation-minecraft/tasks/main.yml
Normal file
40
roles/03-installation-minecraft/tasks/main.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
- name: Include user and group creation tasks
|
||||
include_tasks: 01-create-user-group.yml
|
||||
tags: ['minecraft', 'user']
|
||||
|
||||
- name: Include directory creation tasks
|
||||
include_tasks: 02-create-directories.yml
|
||||
tags: ['minecraft', 'directories']
|
||||
|
||||
- name: Include Spigot download tasks
|
||||
include_tasks: 03-download-spigot.yml
|
||||
tags: ['minecraft', 'download']
|
||||
|
||||
- name: Include mcrcon installation tasks
|
||||
include_tasks: 04-install-mcrcon.yml
|
||||
tags: ['minecraft', 'mcrcon']
|
||||
|
||||
- name: Include Spigot compilation tasks
|
||||
include_tasks: 05-compile-spigot.yml
|
||||
tags: ['minecraft', 'compile']
|
||||
|
||||
- name: Include server configuration tasks
|
||||
include_tasks: 06-configure-server.yml
|
||||
tags: ['minecraft', 'configure']
|
||||
|
||||
- name: Include service creation tasks
|
||||
include_tasks: 07-create-service.yml
|
||||
tags: ['minecraft', 'service']
|
||||
|
||||
- name: Include log rotation setup tasks
|
||||
include_tasks: 08-setup-log-rotation.yml
|
||||
tags: ['minecraft', 'logs']
|
||||
|
||||
- name: Include ops configuration tasks
|
||||
include_tasks: 09-configure-ops.yml
|
||||
tags: ['minecraft', 'ops']
|
||||
|
||||
- name: Include plugins setup tasks
|
||||
include_tasks: 10-setup-plugins.yml
|
||||
tags: ['minecraft', 'plugins']
|
@@ -0,0 +1,12 @@
|
||||
{{ minecraft_server_dir }}/logs/*.log {
|
||||
daily
|
||||
missingok
|
||||
rotate 52
|
||||
compress
|
||||
delaycompress
|
||||
notifempty
|
||||
create 644 {{ minecraft_user }} {{ minecraft_group }}
|
||||
postrotate
|
||||
systemctl reload minecraft
|
||||
endscript
|
||||
}
|
@@ -0,0 +1,17 @@
|
||||
[Unit]
|
||||
Description=Minecraft Spigot Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
User={{ minecraft_user }}
|
||||
Group={{ minecraft_group }}
|
||||
WorkingDirectory={{ minecraft_server_dir }}
|
||||
ExecStart=/usr/bin/java -Xms{{ minecraft_memory_min }} -Xmx{{ minecraft_memory_max }} -jar {{ minecraft_server_dir }}/spigot.jar nogui
|
||||
ExecStop={{ minecraft_tools_dir }}/mcrcon -H 127.0.0.1 -P {{ minecraft_rcon_port }} -p {{ minecraft_rcon_password }} stop
|
||||
RemainAfterExit=yes
|
||||
RestartSec=15
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
10
roles/03-installation-minecraft/templates/ops.json.j2
Normal file
10
roles/03-installation-minecraft/templates/ops.json.j2
Normal file
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{% for op in minecraft_ops | default([]) %}
|
||||
{
|
||||
"uuid": "{{ op.uuid }}",
|
||||
"name": "{{ op.name }}",
|
||||
"level": {{ op.level | default(4) }},
|
||||
"bypassesPlayerLimit": {{ op.bypass_limit | default(false) | lower }}
|
||||
}{% if not loop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
]
|
@@ -0,0 +1,24 @@
|
||||
#Minecraft server properties
|
||||
server-name=Spigot Server
|
||||
server-port={{ minecraft_port }}
|
||||
max-players=20
|
||||
gamemode=survival
|
||||
difficulty=normal
|
||||
hardcore=false
|
||||
white-list=false
|
||||
enforce-whitelist=false
|
||||
pvp=true
|
||||
spawn-protection=16
|
||||
op-permission-level=4
|
||||
allow-flight=false
|
||||
enable-rcon=true
|
||||
rcon.port={{ minecraft_rcon_port }}
|
||||
rcon.password={{ minecraft_rcon_password }}
|
||||
motd=Minecraft Spigot Server managed by Ansible
|
||||
online-mode=true
|
||||
spawn-monsters=true
|
||||
generate-structures=true
|
||||
view-distance=10
|
||||
level-seed=
|
||||
level-name=world
|
||||
level-type=default
|
0
roles/03-installation-minecraft/vars/main.yml
Normal file
0
roles/03-installation-minecraft/vars/main.yml
Normal file
Reference in New Issue
Block a user