--- - name: create minecraft group group: name: "{{ minecraft_group }}" gid: "{{ minecraft_group_gid | default(omit) }}" state: "{{ minecraft_group_state | default('present') }}" system: yes - name: create minecraft user user: name: "{{ minecraft_user }}" uid: "{{ minecraft_user_uid | default(omit) }}" group: "{{ minecraft_group }}" home: "{{ minecraft_var_path }}" create_home: no shell: "{{ minecraft_shell | default('/usr/sbin/nologin') }}" state: "{{ minecraft_user_state | default('present') }}" system: yes - name: install java package: name: "{{ minecraft_java_package_name }}" state: "{{ minecraft_java_package_state }}" - name: create minecraft installation directory file: path: "{{ item }}" state: directory owner: root group: root mode: "0755" with_items: - "{{ minecraft_opt_path }}" - "{{ minecraft_opt_path }}/bin" - "{{ minecraft_opt_path }}/etc" - "{{ minecraft_opt_path }}/backup" - name: create minecraft var directory file: path: "{{ minecraft_var_path }}" state: directory owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" mode: "0755" - name: download minecraft server get_url: url: "{{ minecraft_jar_url }}" dest: "{{ minecraft_opt_path }}/bin/server.jar" owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" mode: "0644" checksum: "{{ minecraft_jar_checksum }}" notify: restart minecraft - name: agree to the eula copy: content: "eula=true" dest: "{{ minecraft_var_path }}/eula.txt" owner: "{{ minecraft_user }}" group: "{{ minecraft_group }}" mode: "0644" - name: configure minecraft template: src: server.properties.j2 dest: "{{ minecraft_var_path }}/server.properties" owner: root group: root mode: 0644 notify: restart minecraft - name: configure systemd unit template: src: minecraft.service.j2 dest: /etc/systemd/system/minecraft.service owner: root group: root mode: 0644 #validate: systemd-analyze verify %s notify: minecraft daemon-reload - name: manage minecraft service service: name: minecraft.service state: "{{ minecraft_service_state }}" enabled: "{{ minecraft_service_enabled }}" - name: install discord notifier copy: src: minecraft-discord.py dest: "{{ minecraft_opt_path }}/bin/minecraft-discord" owner: root group: root mode: 0755 notify: restart rsyslog - name: configure discord notifier copy: dest: "{{ minecraft_opt_path }}/etc/discord.cfg" owner: syslog group: syslog mode: 0600 content: "{% for k, v in minecraft_discord_config.items() %}{{ k }}={{ v }}{{ \"\n\" }}{% endfor %}" notify: restart rsyslog - name: configure rsyslog program template: src: rsyslog/minecraft.conf.j2 dest: /etc/rsyslog.d/05-minecraft.conf owner: root group: root mode: 0644 notify: restart rsyslog - name: manage rsyslog configuration file: path: "{{ item }}" state: "{{ (minecraft_notifier_state == 'present') | ternary('file', 'absent') }}" loop: - /etc/rsyslog.d/05-minecraft.conf - "{{ minecraft_opt_path }}/etc/discord.cfg" - "{{ minecraft_opt_path }}/bin/minecraft-discord" notify: restart rsyslog