test other version
Some checks failed
Ansible Minecraft CI/CD Pipeline / Ansible Lint Check (push) Successful in 58s
Ansible Minecraft CI/CD Pipeline / Project Structure Validation (push) Failing after 3s
Ansible Minecraft CI/CD Pipeline / Security Scan (push) Successful in 4s
Ansible Minecraft CI/CD Pipeline / Deploy to Staging (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Deploy to Production (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Backup System Check (push) Has been skipped
Some checks failed
Ansible Minecraft CI/CD Pipeline / Ansible Lint Check (push) Successful in 58s
Ansible Minecraft CI/CD Pipeline / Project Structure Validation (push) Failing after 3s
Ansible Minecraft CI/CD Pipeline / Security Scan (push) Successful in 4s
Ansible Minecraft CI/CD Pipeline / Deploy to Staging (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Deploy to Production (push) Has been skipped
Ansible Minecraft CI/CD Pipeline / Backup System Check (push) Has been skipped
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: Create minecraft group
|
||||
ansible.builtin.group:
|
||||
name: "{{ minecraft_group }}"
|
||||
state: present
|
||||
|
||||
- name: Create minecraft user
|
||||
ansible.builtin.user:
|
||||
name: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
home: "{{ minecraft_base_dir }}"
|
||||
shell: /bin/bash
|
||||
system: true
|
||||
create_home: false
|
||||
state: present
|
@@ -1,6 +0,0 @@
|
||||
---
|
||||
- name: Create minecraft group
|
||||
group:
|
||||
name: "{{ minecraft_group }}"
|
||||
state: present
|
||||
tags: ['minecraft-user']
|
@@ -1,15 +1,16 @@
|
||||
---
|
||||
- name: Create minecraft directories
|
||||
file:
|
||||
- name: Create minecraft base directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
loop:
|
||||
- "{{ minecraft_home }}"
|
||||
- "{{ minecraft_base_dir }}"
|
||||
- "{{ minecraft_sources_dir }}"
|
||||
- "{{ minecraft_server_dir }}"
|
||||
- "{{ minecraft_tools_dir }}"
|
||||
- "{{ minecraft_backups_dir }}"
|
||||
tags: ['minecraft-directories']
|
||||
- "{{ minecraft_plugins_dir }}"
|
||||
- "{{ minecraft_base_dir }}/logs"
|
||||
- "{{ minecraft_base_dir }}/backups"
|
@@ -1,9 +1,9 @@
|
||||
---
|
||||
- name: Download BuildTools.jar
|
||||
get_url:
|
||||
url: "{{ spigot_build_tools_url }}"
|
||||
- name: Download BuildTools
|
||||
ansible.builtin.get_url:
|
||||
url: "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar"
|
||||
dest: "{{ minecraft_sources_dir }}/BuildTools.jar"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['spigot-download']
|
||||
timeout: 300
|
@@ -1,17 +1,32 @@
|
||||
---
|
||||
- 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: Install packages needed for MCRCON compilation
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- git
|
||||
- build-essential
|
||||
state: present
|
||||
|
||||
- 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']
|
||||
- name: Clone MCRCON repository
|
||||
ansible.builtin.git:
|
||||
repo: "https://github.com/Tiiffi/mcrcon.git"
|
||||
dest: "{{ minecraft_tools_dir }}/mcrcon"
|
||||
version: "v{{ mcrcon_version }}"
|
||||
force: true
|
||||
become_user: "{{ minecraft_user }}"
|
||||
|
||||
- name: Compile MCRCON
|
||||
ansible.builtin.shell: |
|
||||
cd {{ minecraft_tools_dir }}/mcrcon
|
||||
make
|
||||
become_user: "{{ minecraft_user }}"
|
||||
args:
|
||||
creates: "{{ minecraft_tools_dir }}/mcrcon/mcrcon"
|
||||
|
||||
- name: Install MCRCON binary
|
||||
ansible.builtin.copy:
|
||||
src: "{{ minecraft_tools_dir }}/mcrcon/mcrcon"
|
||||
dest: "/usr/local/bin/mcrcon"
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
remote_src: true
|
@@ -1,19 +1,19 @@
|
||||
---
|
||||
- name: Compile Spigot server
|
||||
shell: |
|
||||
- name: Compile Spigot with BuildTools
|
||||
ansible.builtin.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']
|
||||
register: spigot_compilation
|
||||
timeout: 1800
|
||||
|
||||
- name: Copy compiled Spigot to server directory
|
||||
copy:
|
||||
ansible.builtin.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']
|
||||
remote_src: true
|
@@ -0,0 +1,17 @@
|
||||
---
|
||||
- name: Create server.properties
|
||||
ansible.builtin.template:
|
||||
src: server.properties.j2
|
||||
dest: "{{ minecraft_server_dir }}/server.properties"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
notify: "restart minecraft service"
|
||||
|
||||
- name: Accept EULA
|
||||
ansible.builtin.copy:
|
||||
content: "eula={{ minecraft_eula | ternary('true', 'false') }}"
|
||||
dest: "{{ minecraft_server_dir }}/eula.txt"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
@@ -1,37 +0,0 @@
|
||||
---
|
||||
- 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']
|
@@ -1,10 +0,0 @@
|
||||
---
|
||||
- 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,17 @@
|
||||
---
|
||||
- name: Create Minecraft systemd service
|
||||
ansible.builtin.template:
|
||||
src: minecraft.service.j2
|
||||
dest: /etc/systemd/system/minecraft.service
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
notify:
|
||||
- "systemd daemon reload"
|
||||
- "restart minecraft service"
|
||||
|
||||
- name: Enable Minecraft service
|
||||
ansible.builtin.systemd:
|
||||
name: minecraft
|
||||
enabled: true
|
||||
daemon_reload: true
|
@@ -1,7 +1,9 @@
|
||||
---
|
||||
- name: Setup log rotation for Minecraft
|
||||
template:
|
||||
- name: Configure log rotation for Minecraft
|
||||
ansible.builtin.template:
|
||||
src: logrotate-minecraft.j2
|
||||
dest: /etc/logrotate.d/minecraft
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
tags: ['minecraft-logs']
|
||||
notify: "restart log rotation"
|
@@ -1,9 +1,10 @@
|
||||
---
|
||||
- name: Configure ops.json
|
||||
template:
|
||||
- name: Create ops.json file
|
||||
ansible.builtin.template:
|
||||
src: ops.json.j2
|
||||
dest: "{{ minecraft_server_dir }}/ops.json"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0644'
|
||||
tags: ['minecraft-ops']
|
||||
when: minecraft_ops is defined and minecraft_ops | length > 0
|
||||
notify: "restart minecraft service"
|
@@ -0,0 +1,23 @@
|
||||
---
|
||||
- name: Ensure plugins directory exists with correct permissions
|
||||
ansible.builtin.file:
|
||||
path: "{{ minecraft_plugins_dir }}"
|
||||
state: directory
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Create plugins management script
|
||||
ansible.builtin.copy:
|
||||
content: |
|
||||
#!/bin/bash
|
||||
# Plugin management script
|
||||
PLUGINS_DIR="{{ minecraft_plugins_dir }}"
|
||||
|
||||
echo "Minecraft plugins directory: $PLUGINS_DIR"
|
||||
echo "Current plugins:"
|
||||
ls -la "$PLUGINS_DIR"
|
||||
dest: "{{ minecraft_tools_dir }}/manage-plugins.sh"
|
||||
owner: "{{ minecraft_user }}"
|
||||
group: "{{ minecraft_group }}"
|
||||
mode: '0755'
|
@@ -1,20 +0,0 @@
|
||||
---
|
||||
- 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']
|
@@ -1,40 +1,30 @@
|
||||
---
|
||||
- name: Include user and group creation tasks
|
||||
include_tasks: 01-create-user-group.yml
|
||||
tags: ['minecraft', 'user']
|
||||
- name: Include minecraft user creation tasks
|
||||
ansible.builtin.include_tasks: 01-create-minecraft-user.yml
|
||||
|
||||
- name: Include directory creation tasks
|
||||
include_tasks: 02-create-directories.yml
|
||||
tags: ['minecraft', 'directories']
|
||||
ansible.builtin.include_tasks: 02-create-directories.yml
|
||||
|
||||
- name: Include Spigot download tasks
|
||||
include_tasks: 03-download-spigot.yml
|
||||
tags: ['minecraft', 'download']
|
||||
ansible.builtin.include_tasks: 03-download-spigot.yml
|
||||
|
||||
- name: Include mcrcon installation tasks
|
||||
include_tasks: 04-install-mcrcon.yml
|
||||
tags: ['minecraft', 'mcrcon']
|
||||
- name: Include MCRCON installation tasks
|
||||
ansible.builtin.include_tasks: 04-install-mcrcon.yml
|
||||
|
||||
- name: Include Spigot compilation tasks
|
||||
include_tasks: 05-compile-spigot.yml
|
||||
tags: ['minecraft', 'compile']
|
||||
ansible.builtin.include_tasks: 05-compile-spigot.yml
|
||||
|
||||
- name: Include server configuration tasks
|
||||
include_tasks: 06-configure-server.yml
|
||||
tags: ['minecraft', 'configure']
|
||||
- name: Include Minecraft configuration tasks
|
||||
ansible.builtin.include_tasks: 06-configure-minecraft.yml
|
||||
|
||||
- name: Include service creation tasks
|
||||
include_tasks: 07-create-service.yml
|
||||
tags: ['minecraft', 'service']
|
||||
- name: Include systemd service setup tasks
|
||||
ansible.builtin.include_tasks: 07-setup-systemd-service.yml
|
||||
|
||||
- name: Include log rotation setup tasks
|
||||
include_tasks: 08-setup-log-rotation.yml
|
||||
tags: ['minecraft', 'logs']
|
||||
ansible.builtin.include_tasks: 08-setup-log-rotation.yml
|
||||
|
||||
- name: Include ops configuration tasks
|
||||
include_tasks: 09-configure-ops.yml
|
||||
tags: ['minecraft', 'ops']
|
||||
- name: Include ops management setup tasks
|
||||
ansible.builtin.include_tasks: 09-setup-ops-management.yml
|
||||
|
||||
- name: Include plugins setup tasks
|
||||
include_tasks: 10-setup-plugins.yml
|
||||
tags: ['minecraft', 'plugins']
|
||||
- name: Include plugins directory setup tasks
|
||||
ansible.builtin.include_tasks: 10-setup-plugins-directory.yml
|
Reference in New Issue
Block a user