minecraft/server/tasks/main.yaml
author Luke Hoersten <luke@hoersten.org>
Fri, 27 Mar 2026 14:56:43 -0500
changeset 253 4ca131e557dc
parent 239 c3e3169399a8
permissions -rw-r--r--
Fixed paper build URL and nginx logging off.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
     1
---
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
     2
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
     3
- name: add minecraft user
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
     4
  become: yes
174
431c6d5e5dd4 Lots of updates.
Luke Hoersten <luke@hoersten.org>
parents: 164
diff changeset
     5
  user: name="{{minecraft_user}}" home="{{minecraft_parent_dir}}/minecraft" shell="/bin/false" system="yes"
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
     6
178
0f99f298361d Updated versions.
Luke Hoersten <luke@hoersten.org>
parents: 177
diff changeset
     7
- name: install java
177
11f52d70bca4 Updated minecraft
Luke Hoersten <luke@hoersten.org>
parents: 174
diff changeset
     8
  become: yes
239
c3e3169399a8 Updated java version and disabled geyser due to too old jde.
Luke Hoersten <luke@hoersten.org>
parents: 178
diff changeset
     9
  apt: name="openjdk-21-jre-headless"
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    10
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    11
- name: create minecraft dir
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    12
  become: yes
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    13
  file:
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    14
    path: "{{minecraft_dir}}"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    15
    owner: "{{minecraft_user}}"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    16
    group: "{{minecraft_user}}"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    17
    mode: "0755"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    18
    state: "directory"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    19
253
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    20
- name: get minecraft download info
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    21
  uri:
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    22
    url: "https://api.papermc.io/v2/projects/paper/versions/{{minecraft_paper_version}}/builds/{{minecraft_paper_build}}"
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    23
    return_content: yes
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    24
  register: minecraft_build_info
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    25
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    26
- name: download minecraft
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    27
  become: yes
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    28
  get_url:
253
4ca131e557dc Fixed paper build URL and nginx logging off.
Luke Hoersten <luke@hoersten.org>
parents: 239
diff changeset
    29
    url: "https://fill-data.papermc.io/v1/objects/{{minecraft_build_info.json.downloads.application.sha256}}/paper-{{minecraft_paper_version}}-{{minecraft_paper_build}}.jar"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    30
    dest: "{{minecraft_dir}}/server.jar"
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    31
    mode: "0755"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    32
  notify: restart minecraft
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    33
155
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    34
- name: configure minecraft eula
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    35
  become: yes
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    36
  copy:
163
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    37
    src: "eula.txt"
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    38
    dest: "{{minecraft_dir}}/eula.txt"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    39
    owner: "{{minecraft_user}}"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    40
    group: "{{minecraft_user}}"
155
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    41
  notify: restart minecraft
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    42
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    43
- name: configure minecraft ops
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    44
  become: yes
163
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    45
  copy:
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    46
    src: "{{minecraft_ops_file}}"
155
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    47
    dest: "{{minecraft_dir}}/ops.json"
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    48
    owner: "{{minecraft_user}}"
4d45841961e7 Added ops template to main.
Luke Hoersten <luke@hoersten.org>
parents: 153
diff changeset
    49
    group: "{{minecraft_user}}"
163
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    50
  when: minecraft_ops_file is defined
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    51
  notify: restart minecraft
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    52
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    53
- name: configure minecraft whitelist
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    54
  become: yes
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    55
  copy:
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    56
    src: "{{minecraft_whitelist_file}}"
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    57
    dest: "{{minecraft_dir}}/whitelist.json"
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    58
    owner: "{{minecraft_user}}"
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    59
    group: "{{minecraft_user}}"
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    60
  when: minecraft_whitelist_file is defined and minecraft_whitelist == "true"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    61
  notify: restart minecraft
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
    62
162
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    63
- name: create minecraft plugins dir
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    64
  become: yes
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    65
  file:
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    66
    path: "{{minecraft_dir}}/plugins"
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    67
    owner: "{{minecraft_user}}"
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    68
    group: "{{minecraft_user}}"
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    69
    mode: "0755"
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    70
    state: "directory"
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    71
125
5a298f7b44f5 Added dynmap to minecraft.
Luke Hoersten <luke@hoersten.org>
parents: 112
diff changeset
    72
- name: install plugins
162
a7a64ed07204 Added Geyser minecraft plugin. Cleaned up minecraft role.
Luke Hoersten <luke@hoersten.org>
parents: 156
diff changeset
    73
  include_tasks: "{{item}}.yaml"
164
ae19501f5251 Updated minecraft to be multi-world and minimized world size.
Luke Hoersten <luke@hoersten.org>
parents: 163
diff changeset
    74
  loop: "{{minecreat_plugins_enabled}}"
125
5a298f7b44f5 Added dynmap to minecraft.
Luke Hoersten <luke@hoersten.org>
parents: 112
diff changeset
    75
107
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    76
- name: create server.properties
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    77
  become: yes
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    78
  file:
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    79
    path: "{{minecraft_dir}}/server.properties"
107
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    80
    state: "touch"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    81
    access_time: "preserve"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    82
    modification_time: "preserve"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    83
    owner: "{{minecraft_user}}"
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    84
    group: "{{minecraft_user}}"
107
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    85
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    86
- name: configure server.properties
33
ad75fc2d2853 Added papermc role.
Luke Hoersten <luke@hoersten.org>
parents: 27
diff changeset
    87
  become: yes
ad75fc2d2853 Added papermc role.
Luke Hoersten <luke@hoersten.org>
parents: 27
diff changeset
    88
  lineinfile:
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    89
    path: "{{minecraft_dir}}/server.properties"
107
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    90
    regexp: "^{{item.key}}="
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    91
    line: "{{item.key}}={{item.value}}"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    92
  notify: restart minecraft
107
9057b9f9ced8 MC separate world files dont work. Had to move main dir.
Luke Hoersten <luke@hoersten.org>
parents: 59
diff changeset
    93
  loop:
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    94
    - {key: "motd", value: "{{minecraft_motd}}"}
164
ae19501f5251 Updated minecraft to be multi-world and minimized world size.
Luke Hoersten <luke@hoersten.org>
parents: 163
diff changeset
    95
    - {key: "level-name", value: "{{minecraft_world_name}}"}
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
    96
    - {key: "level-seed", value: "{{minecraft_seed}}"}
153
dbc589234a49 Added difficulty config.
Luke Hoersten <luke@hoersten.org>
parents: 152
diff changeset
    97
    - {key: "difficulty", value: "{{minecraft_difficulty}}"}
163
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    98
    - {key: "white-list", value: "{{minecraft_whitelist}}"}
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
    99
    - {key: "enforce-whitelist", value: "{{minecraft_whitelist}}"}
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
   100
    - {key: "view-distance", value: "{{minecraft_view_distance}}"}
40b78af86337 Tons of updates.
Luke Hoersten <luke@hoersten.org>
parents: 162
diff changeset
   101
    - {key: "snooper-enabled", value: "false"}
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   102
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   103
- name: install systemd service
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   104
  become: yes
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   105
  template:
164
ae19501f5251 Updated minecraft to be multi-world and minimized world size.
Luke Hoersten <luke@hoersten.org>
parents: 163
diff changeset
   106
    src: "[email protected]"
ae19501f5251 Updated minecraft to be multi-world and minimized world size.
Luke Hoersten <luke@hoersten.org>
parents: 163
diff changeset
   107
    dest: "/lib/systemd/system/[email protected]"
111
1c1a911b26aa Made minecraft role support vanilla and paper forks.
Luke Hoersten <luke@hoersten.org>
parents: 107
diff changeset
   108
  notify: restart minecraft
19
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   109
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   110
- name: ensure service is started
31de177274a1 Added minecraft server role.
Luke Hoersten <luke@hoersten.org>
parents:
diff changeset
   111
  become: yes
164
ae19501f5251 Updated minecraft to be multi-world and minimized world size.
Luke Hoersten <luke@hoersten.org>
parents: 163
diff changeset
   112
  systemd: name="minecraft@{{minecraft_world_name}}.service" enabled="yes" state="started"