New Minecraft Role
This commit is contained in:
		
							
								
								
									
										12
									
								
								ansible.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								ansible.cfg
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
[defaults]
 | 
			
		||||
inventory = inventory
 | 
			
		||||
library   = library
 | 
			
		||||
vault_password_file = ./.ansible_vault_pass
 | 
			
		||||
 | 
			
		||||
[privilege_escalation]
 | 
			
		||||
become = true
 | 
			
		||||
become_method = su
 | 
			
		||||
become_user = root
 | 
			
		||||
 | 
			
		||||
[ssh_connection]
 | 
			
		||||
scp_if_ssh=True
 | 
			
		||||
							
								
								
									
										7
									
								
								inventory/group_vars/all/users.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								inventory/group_vars/all/users.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
---
 | 
			
		||||
userdb:
 | 
			
		||||
  user:
 | 
			
		||||
    user_group: user
 | 
			
		||||
    user_pass: "salt"
 | 
			
		||||
    key: "ssh-rsa"
 | 
			
		||||
    virt_manage: True
 | 
			
		||||
							
								
								
									
										9
									
								
								inventory/vm.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								inventory/vm.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
---
 | 
			
		||||
all:
 | 
			
		||||
  hosts:
 | 
			
		||||
    server
 | 
			
		||||
      ansible_host: 192.168.1.100
 | 
			
		||||
      ansible_port: 22
 | 
			
		||||
      ssh_port: 22        
 | 
			
		||||
  vars:
 | 
			
		||||
    hosts_gateway: 192.168.1.1
 | 
			
		||||
							
								
								
									
										20
									
								
								roles/minecraft/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								roles/minecraft/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
# minecraft role
 | 
			
		||||
 | 
			
		||||
Роль для разворачивания сервера майнкрафта.
 | 
			
		||||
 | 
			
		||||
Перед прокаткой роли необходимо поставить некоторые модули к ansible:
 | 
			
		||||
```
 | 
			
		||||
ansible-galaxy collection install community.general
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
На хосте должен быть настроен sshd (PermitRootLogin yes) и установлен Python3.
 | 
			
		||||
 | 
			
		||||
Первый запуск роли происходит с помощью команды:
 | 
			
		||||
```
 | 
			
		||||
ansible-playbook -l server roles/minecraft/minecraft.yml -u root --ask-pass
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
После настройки системы роль может запускаться следующим образом:
 | 
			
		||||
```
 | 
			
		||||
ansible-playbook -l server roles/minecraft/minecraft.yml  -K
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										136
									
								
								roles/minecraft/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								roles/minecraft/defaults/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,136 @@
 | 
			
		||||
---
 | 
			
		||||
### COMMON ###
 | 
			
		||||
 | 
			
		||||
alpine_version: latest-stable
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### PACKAGES ###
 | 
			
		||||
 | 
			
		||||
system_pkgs:
 | 
			
		||||
  - chrony
 | 
			
		||||
  - tzdata
 | 
			
		||||
  - htop
 | 
			
		||||
  - screen
 | 
			
		||||
  - git
 | 
			
		||||
  - wget
 | 
			
		||||
  - mc
 | 
			
		||||
  - ncdu
 | 
			
		||||
  - vim
 | 
			
		||||
  - nano
 | 
			
		||||
  - rsync
 | 
			
		||||
  - unzip
 | 
			
		||||
  - tar
 | 
			
		||||
 | 
			
		||||
mine_pkgs:
 | 
			
		||||
  - openjdk17-jdk
 | 
			
		||||
  - ncurses
 | 
			
		||||
  - rcon
 | 
			
		||||
 | 
			
		||||
ext_pkgs:
 | 
			
		||||
  - mariadb
 | 
			
		||||
  - mariadb-client
 | 
			
		||||
  - mariadb-backup
 | 
			
		||||
  - py3-pymysql
 | 
			
		||||
  - nginx
 | 
			
		||||
  - php82-fpm
 | 
			
		||||
  - php-pdo_mysql
 | 
			
		||||
  - php82-mysqli
 | 
			
		||||
  - php82-session
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Nginx ###
 | 
			
		||||
 | 
			
		||||
nginx_user: nginx
 | 
			
		||||
worker_processes: auto
 | 
			
		||||
worker_connections: 1024
 | 
			
		||||
root_dir: /srv/www
 | 
			
		||||
log_dir: /var/log/nginx
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### php-fpm ###
 | 
			
		||||
 | 
			
		||||
phpfpm_ver: "php82-fpm"
 | 
			
		||||
phpfpm_init: "php-fpm82"
 | 
			
		||||
phpfpm_path: "/etc/php82/"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### MariaDB ###
 | 
			
		||||
 | 
			
		||||
sql_user: minecraft_sql
 | 
			
		||||
sql_pass: !vault |
 | 
			
		||||
          $ANSIBLE_VAULT;1.1;AES256
 | 
			
		||||
          blabla
 | 
			
		||||
 | 
			
		||||
minecraft_db:
 | 
			
		||||
  - dynmap
 | 
			
		||||
  - logsec
 | 
			
		||||
  - permissionsex
 | 
			
		||||
  - luckperms
 | 
			
		||||
 | 
			
		||||
### SSH ###
 | 
			
		||||
 | 
			
		||||
# SEE in inventory lxc.yml
 | 
			
		||||
 | 
			
		||||
### SERVER ###
 | 
			
		||||
 | 
			
		||||
server_user: user
 | 
			
		||||
 | 
			
		||||
MINHEAP: 2G
 | 
			
		||||
MAXHEAP: 10G
 | 
			
		||||
 | 
			
		||||
### SERVER CONFIG ###
 | 
			
		||||
 | 
			
		||||
rcon_port: 25566
 | 
			
		||||
# survival, creative, adventure, spectator
 | 
			
		||||
gamemode: survival
 | 
			
		||||
enforce_secure_profile: false
 | 
			
		||||
level_name: world
 | 
			
		||||
server_status: Hello
 | 
			
		||||
view_distance: 10
 | 
			
		||||
game_port: 25565
 | 
			
		||||
# true or false
 | 
			
		||||
pvp: true
 | 
			
		||||
# Обновление блоков (актуально для редстоун машин)
 | 
			
		||||
# default - 1000000
 | 
			
		||||
neighbor_updates: 1000
 | 
			
		||||
# peaceful, easy, normal and hard
 | 
			
		||||
difficulty: hard
 | 
			
		||||
# Размер пакета до его сжатия, больше значение - большая производительность
 | 
			
		||||
# CPU (но при этом пользователи со слабым интернетом страдают).
 | 
			
		||||
# -1 отключает компрессию
 | 
			
		||||
network_compression_threshold: 128
 | 
			
		||||
max_players: 100
 | 
			
		||||
# true or false
 | 
			
		||||
enable_rcon: false
 | 
			
		||||
#Позволяет изменять права операторов.
 | 
			
		||||
# 1 — Операторы могут ломать / ставить блоки внутри радиуса защиты
 | 
			
		||||
# территории спауна.
 | 
			
		||||
# 2 — Операторы могут использовать команды /clear, /difficulty, /effect,
 | 
			
		||||
# /gamemode, /gamerule, /give, /tp, и могут изменять командные блоки.
 | 
			
		||||
# 3 — Операторы могут использовать команды /ban, /deop, /kick, и /op.
 | 
			
		||||
# 4 — Операторы могут использовать команду /stop.
 | 
			
		||||
op_permission_level: 3
 | 
			
		||||
# Позволяет изменять дистанцию рендера энтити для клиентов в процентах.
 | 
			
		||||
# Более высокие значения могут привести к снижению производительности сервера,
 | 
			
		||||
# поскольку чем выше значение, тем выше дальность прорисовки энтити и больше
 | 
			
		||||
# ресурсов нужно для их обработки.
 | 
			
		||||
# Это настройка выражается в процентах (100% — по умолчанию). Например,
 | 
			
		||||
# установка этого значения на 50 уменьшит дальность рендера энтити вдвое.
 | 
			
		||||
# Представляет собой серверный аналог изменения прорисовки у клиента.
 | 
			
		||||
entity_broadcast_range: 150
 | 
			
		||||
simulation_distance: 10
 | 
			
		||||
rcon_password: 12345qaz
 | 
			
		||||
spawn_protection: 3
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### OPS ###
 | 
			
		||||
 | 
			
		||||
ops:
 | 
			
		||||
  Player:
 | 
			
		||||
    uuid: "blabla"
 | 
			
		||||
    level: 3
 | 
			
		||||
    bypassesPlayerLimit: false
 | 
			
		||||
  Admin:
 | 
			
		||||
    uuid: "blabla"
 | 
			
		||||
    level: 3
 | 
			
		||||
    bypassesPlayerLimit: false
 | 
			
		||||
							
								
								
									
										17
									
								
								roles/minecraft/files/mariadb/mariadb-server.cnf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								roles/minecraft/files/mariadb/mariadb-server.cnf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
[server]
 | 
			
		||||
bind-address=127.0.0.1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[mysqld]
 | 
			
		||||
#skip-networking
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[galera]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[embedded]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[mariadb]
 | 
			
		||||
 | 
			
		||||
[mariadb-10.5]
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/AntiPopup-7.3.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/AntiPopup-7.3.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Dynmap-3.7-beta-4-spigot.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Dynmap-3.7-beta-4-spigot.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/EssentialsX-2.20.1.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/EssentialsX-2.20.1.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/EssentialsXChat-2.20.1.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/EssentialsXChat-2.20.1.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Geyser-Spigot.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Geyser-Spigot.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/LoginSecurity-Spigot-3.3.0.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/LoginSecurity-Spigot-3.3.0.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/LuckPerms-Bukkit-5.4.102.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/LuckPerms-Bukkit-5.4.102.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/ProtocolLib.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/ProtocolLib.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/SkinsRestorer.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/SkinsRestorer.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Vault.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/Vault.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/floodgate-spigot.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/floodgate-spigot.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/spark-1.10.58-bukkit.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/plugins/spark-1.10.58-bukkit.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										4
									
								
								roles/minecraft/files/repositories
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								roles/minecraft/files/repositories
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
# Managed by Ansible
 | 
			
		||||
 | 
			
		||||
http://mirror.yandex.ru/mirrors/alpine/latest-stable/main
 | 
			
		||||
http://mirror.yandex.ru/mirrors/alpine/latest-stable/community
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 8.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 11 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/server-icon_3.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 8.0 KiB  | 
							
								
								
									
										1
									
								
								roles/minecraft/files/server/eula.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/minecraft/files/server/eula.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
eula=true
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								roles/minecraft/files/server/paper-1.20.4-378.jar
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								roles/minecraft/files/server/paper-1.20.4-378.jar
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										35
									
								
								roles/minecraft/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								roles/minecraft/handlers/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Restart ssh server
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: sshd
 | 
			
		||||
    state: restarted
 | 
			
		||||
 | 
			
		||||
- name: Restart chronyd
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: chronyd
 | 
			
		||||
    state: restarted
 | 
			
		||||
 | 
			
		||||
- name: Restart minecraft Server
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: minecraftd
 | 
			
		||||
    state: restarted
 | 
			
		||||
 | 
			
		||||
- name: Reload minecraft Server
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: minecraftd
 | 
			
		||||
    state: reloaded
 | 
			
		||||
 | 
			
		||||
- name: Restart MariaDB
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: mariadb
 | 
			
		||||
    state: restarted
 | 
			
		||||
 | 
			
		||||
- name: Restart php-fpm
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: "{{ phpfpm_init }}"
 | 
			
		||||
    state: restarted
 | 
			
		||||
 | 
			
		||||
- name: Restart nginx
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: nginx
 | 
			
		||||
    state: restarted
 | 
			
		||||
							
								
								
									
										8
									
								
								roles/minecraft/minecraft.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/minecraft/minecraft.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Minecraft Role
 | 
			
		||||
  become: yes
 | 
			
		||||
  hosts: all
 | 
			
		||||
  gather_facts: yes
 | 
			
		||||
 | 
			
		||||
  roles:
 | 
			
		||||
    - ../minecraft
 | 
			
		||||
							
								
								
									
										24
									
								
								roles/minecraft/tasks/backups.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								roles/minecraft/tasks/backups.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Create a backup directory
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: "/home/{{ server_user }}/backups"
 | 
			
		||||
    state: directory
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Generate backup script
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: backup_server.j2
 | 
			
		||||
    dest: "/home/{{ server_user }}/backup_server.sh"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Creates a cron file for backup
 | 
			
		||||
  ansible.builtin.cron:
 | 
			
		||||
    name: Backup Minecraft server
 | 
			
		||||
    minute: "0"
 | 
			
		||||
    hour: "1"
 | 
			
		||||
    user: "{{ server_user }}"
 | 
			
		||||
    job: "/home/{{ server_user }}/backup_server.sh"
 | 
			
		||||
							
								
								
									
										54
									
								
								roles/minecraft/tasks/basic.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								roles/minecraft/tasks/basic.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Rename host
 | 
			
		||||
  ansible.builtin.hostname:
 | 
			
		||||
    name: "{{ inventory_hostname }}"
 | 
			
		||||
 | 
			
		||||
- name: Change hosts
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: hosts.j2
 | 
			
		||||
    dest: /etc/hosts
 | 
			
		||||
    backup: true
 | 
			
		||||
 | 
			
		||||
- name: Change MOTD file
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: motd.j2
 | 
			
		||||
    dest: /etc/motd
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
    backup: true
 | 
			
		||||
 | 
			
		||||
- name: Set timezone to Europe/Moscow
 | 
			
		||||
  community.general.timezone:
 | 
			
		||||
    name: Europe/Moscow
 | 
			
		||||
 | 
			
		||||
- name: Modify chronyd init.d args
 | 
			
		||||
  ansible.builtin.lineinfile:
 | 
			
		||||
    path: /etc/conf.d/chronyd
 | 
			
		||||
    regexp: 'ARGS=""'
 | 
			
		||||
    line:   'ARGS="-x"'
 | 
			
		||||
 | 
			
		||||
- name: Add Chrony to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: chronyd
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
  notify: Restart chronyd
 | 
			
		||||
 | 
			
		||||
- name: Create sshd.conf
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: sshd_config.j2
 | 
			
		||||
    dest: /etc/ssh/sshd_config
 | 
			
		||||
    validate: /usr/sbin/sshd -t -f %s
 | 
			
		||||
    backup: true
 | 
			
		||||
  notify: Restart ssh server
 | 
			
		||||
 | 
			
		||||
- name: Add sshd to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: sshd
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
							
								
								
									
										108
									
								
								roles/minecraft/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								roles/minecraft/tasks/main.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,108 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Update and install packets
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: packets.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_update
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Make basic configure
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: basic.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_basic
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Create users
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: users.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_users
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Deploy Initd server daemon
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: service.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_service
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Deploy Server
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: server.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_server
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Make backuping
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: backups.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_backups
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Install plugins
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: plugins.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_plugins
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Config OPs
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: ops.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_ops
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Configure MariaDB server
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: mariadb.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_mariadb
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Configure php-fpm
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: php.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_php
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Configure nginx
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: nginx.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_nginx
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
 | 
			
		||||
- name: Tuning server and plugins
 | 
			
		||||
  ansible.builtin.include_tasks:
 | 
			
		||||
    file: tuning.yml
 | 
			
		||||
    apply:
 | 
			
		||||
      tags:
 | 
			
		||||
        - run_tuning
 | 
			
		||||
  tags:
 | 
			
		||||
    - always
 | 
			
		||||
							
								
								
									
										101
									
								
								roles/minecraft/tasks/mariadb.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								roles/minecraft/tasks/mariadb.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Update repositories
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Install ext packages
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    name: "{{ ext_pkgs }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Check that the mysql dir exists
 | 
			
		||||
  ansible.builtin.stat :
 | 
			
		||||
    path: /var/lib/mysql
 | 
			
		||||
  register: stat_result
 | 
			
		||||
 | 
			
		||||
- name: Init Mariadb
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: mariadb
 | 
			
		||||
    state: stopped
 | 
			
		||||
    args: setup
 | 
			
		||||
  when: not stat_result.stat.exists
 | 
			
		||||
 | 
			
		||||
- name: Deploy mariadb config
 | 
			
		||||
  copy:
 | 
			
		||||
    src: "files/mariadb/mariadb-server.cnf"
 | 
			
		||||
    dest: "/etc/my.cnf.d/mariadb-server.cnf"
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
  notify: Restart MariaDB
 | 
			
		||||
 | 
			
		||||
- name: Flush handlers
 | 
			
		||||
  meta: flush_handlers
 | 
			
		||||
 | 
			
		||||
- name: mysql_secure_installation
 | 
			
		||||
  when: not stat_result.stat.exists
 | 
			
		||||
  block:
 | 
			
		||||
    - name: Removes all anonymous user accounts
 | 
			
		||||
      community.mysql.mysql_user:
 | 
			
		||||
        login_user: root
 | 
			
		||||
        login_unix_socket: /run/mysqld/mysqld.sock
 | 
			
		||||
        name: ''
 | 
			
		||||
        host_all: true
 | 
			
		||||
        state: absent
 | 
			
		||||
 | 
			
		||||
    - name: Delete Hostname based MySQL user
 | 
			
		||||
      community.mysql.mysql_user:
 | 
			
		||||
        login_user: root
 | 
			
		||||
        login_unix_socket: /run/mysqld/mysqld.sock
 | 
			
		||||
        name: root
 | 
			
		||||
        host: "{{ansible_nodename}}"
 | 
			
		||||
        state: absent
 | 
			
		||||
 | 
			
		||||
    - name: Remove MySQL test database
 | 
			
		||||
      community.mysql.mysql_db:
 | 
			
		||||
        login_user: root
 | 
			
		||||
        login_unix_socket: /run/mysqld/mysqld.sock
 | 
			
		||||
        name: test
 | 
			
		||||
        state: absent
 | 
			
		||||
 | 
			
		||||
    - name: Reload privilege tables
 | 
			
		||||
      ansible.builtin.command: 'mysql -ne "{{ item }}"'
 | 
			
		||||
      with_items:
 | 
			
		||||
        - FLUSH PRIVILEGES
 | 
			
		||||
      changed_when: False
 | 
			
		||||
 | 
			
		||||
- name: Add MariaDB to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: mariadb
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
# Minecraft Role Tasks
 | 
			
		||||
- name: Config Mysql Users And DB for Minecraft
 | 
			
		||||
  tags: mine_db
 | 
			
		||||
  block:
 | 
			
		||||
    - name: Create a Dynmap Database
 | 
			
		||||
      community.mysql.mysql_db:
 | 
			
		||||
        login_user: root
 | 
			
		||||
        login_unix_socket: /run/mysqld/mysqld.sock
 | 
			
		||||
        name: "{{ minecraft_db }}"
 | 
			
		||||
        state: present
 | 
			
		||||
 | 
			
		||||
    - name: Create user and priv db
 | 
			
		||||
      community.mysql.mysql_user:
 | 
			
		||||
        login_user: root
 | 
			
		||||
        login_unix_socket: /run/mysqld/mysqld.sock
 | 
			
		||||
        name: "{{ sql_user }}"
 | 
			
		||||
        password: "{{ sql_pass }}"
 | 
			
		||||
        priv:
 | 
			
		||||
          "{{ item }}.*:ALL"
 | 
			
		||||
        state: present
 | 
			
		||||
        append_privs: True
 | 
			
		||||
      with_items: "{{ minecraft_db }}"
 | 
			
		||||
 | 
			
		||||
    - name: Reload privilege tables
 | 
			
		||||
      ansible.builtin.command: 'mysql -ne "{{ item }}"'
 | 
			
		||||
      with_items:
 | 
			
		||||
        - FLUSH PRIVILEGES
 | 
			
		||||
      changed_when: False
 | 
			
		||||
							
								
								
									
										24
									
								
								roles/minecraft/tasks/nginx.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								roles/minecraft/tasks/nginx.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Update repositories
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Install ext packages
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    name: "{{ ext_pkgs }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Add nginx to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: nginx
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Deploy nginx.conf
 | 
			
		||||
  template:
 | 
			
		||||
    src: templates/nginx.j2
 | 
			
		||||
    dest: /etc/nginx/nginx.conf
 | 
			
		||||
  notify: Restart nginx
 | 
			
		||||
							
								
								
									
										25
									
								
								roles/minecraft/tasks/ops.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								roles/minecraft/tasks/ops.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Initiate Op List
 | 
			
		||||
  ansible.builtin.set_fact:
 | 
			
		||||
    op_list: []
 | 
			
		||||
 | 
			
		||||
- name: Add new JSON Objects to List
 | 
			
		||||
  ansible.builtin.set_fact:
 | 
			
		||||
    op_list: "{{ op_list +
 | 
			
		||||
                [{ 'uuid': ops[item].uuid,
 | 
			
		||||
                   'name': item,
 | 
			
		||||
                   'level': ops[item].level,
 | 
			
		||||
                   'bypassesPlayerLimit': ops[item].bypassesPlayerLimit}] }}"
 | 
			
		||||
  with_items: "{{ ops }}"
 | 
			
		||||
 | 
			
		||||
- name: Debug
 | 
			
		||||
  ansible.builtin.debug:
 | 
			
		||||
    var: op_list
 | 
			
		||||
 | 
			
		||||
- name: Write output json file
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    dest: "/home/{{ server_user }}/minecraft/ops.json"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
    content: "{{ op_list | to_nice_json(sort_keys=False, indent=2) }}"
 | 
			
		||||
							
								
								
									
										29
									
								
								roles/minecraft/tasks/packets.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								roles/minecraft/tasks/packets.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Config repos
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: repositories
 | 
			
		||||
    dest: /etc/apk/
 | 
			
		||||
    owner: root
 | 
			
		||||
    group: root
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
    backup: true
 | 
			
		||||
 | 
			
		||||
- name: Update repositories
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Update all installed packages to the latest versions
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    upgrade: yes
 | 
			
		||||
 | 
			
		||||
- name: Install system packages
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    name: "{{ system_pkgs }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Install minecraft packages
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    name: "{{ mine_pkgs }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
							
								
								
									
										28
									
								
								roles/minecraft/tasks/php.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								roles/minecraft/tasks/php.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Update repositories
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    update_cache: true
 | 
			
		||||
 | 
			
		||||
- name: Install ext packages
 | 
			
		||||
  community.general.apk:
 | 
			
		||||
    name: "{{ ext_pkgs }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Add php-fpm to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: "{{ phpfpm_init }}"
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
 | 
			
		||||
- name: Configure php-fpm
 | 
			
		||||
  lineinfile:
 | 
			
		||||
    dest: "{{ phpfpm_path}}/php-fpm.d/www.conf"
 | 
			
		||||
    regexp: "^{{ item.property | regex_escape() }} = "
 | 
			
		||||
    line: "{{ item.property }} = {{ item.value }}"
 | 
			
		||||
  with_items:
 | 
			
		||||
    - { property: 'user', value: 'nginx' }
 | 
			
		||||
    - { property: 'group', value: 'nginx' }
 | 
			
		||||
  notify: Restart php-fpm
 | 
			
		||||
							
								
								
									
										9
									
								
								roles/minecraft/tasks/plugins.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								roles/minecraft/tasks/plugins.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Deploy plugins
 | 
			
		||||
  copy:
 | 
			
		||||
    src: "files/plugins/"
 | 
			
		||||
    dest: "/home/{{ server_user }}/minecraft/plugins/"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
  notify: Restart minecraft Server
 | 
			
		||||
							
								
								
									
										38
									
								
								roles/minecraft/tasks/server.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								roles/minecraft/tasks/server.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Create a server directory
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    path: "/home/{{ server_user }}/minecraft"
 | 
			
		||||
    state: directory
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Deploy server files
 | 
			
		||||
  copy:
 | 
			
		||||
    src: "files/server/"
 | 
			
		||||
    dest: "/home/{{ server_user }}/minecraft/"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
  notify: Restart minecraft Server
 | 
			
		||||
  tags: update_server
 | 
			
		||||
 | 
			
		||||
- name: Deploy server icon
 | 
			
		||||
  ansible.builtin.copy:
 | 
			
		||||
    src: server-icon.png
 | 
			
		||||
    dest: "/home/{{ server_user }}/minecraft/"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
    backup: true
 | 
			
		||||
  notify: Restart minecraft Server
 | 
			
		||||
  tags: icon_deploy
 | 
			
		||||
 | 
			
		||||
- name: Generate server config
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: server.properties.j2
 | 
			
		||||
    dest: "/home/{{ server_user }}/minecraft/server.properties"
 | 
			
		||||
    owner: "{{ server_user }}"
 | 
			
		||||
    group: "{{ server_user }}"
 | 
			
		||||
  notify: Restart minecraft Server
 | 
			
		||||
  tags: config_deploy
 | 
			
		||||
							
								
								
									
										26
									
								
								roles/minecraft/tasks/service.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								roles/minecraft/tasks/service.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Deploy openrc service params
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: minecraft-rc.j2
 | 
			
		||||
    dest: /etc/conf.d/minecraftd
 | 
			
		||||
    mode: '0644'
 | 
			
		||||
 | 
			
		||||
- name: Deploy base openrc service
 | 
			
		||||
  ansible.builtin.template:
 | 
			
		||||
    src: minecraft.j2
 | 
			
		||||
    dest: /etc/init.d/minecraft
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Create a symbolic link to openrc service
 | 
			
		||||
  ansible.builtin.file:
 | 
			
		||||
    src: /etc/init.d/minecraft
 | 
			
		||||
    dest: /etc/init.d/minecraftd
 | 
			
		||||
    state: link
 | 
			
		||||
    mode: '0755'
 | 
			
		||||
 | 
			
		||||
- name: Add minecraft server to boot
 | 
			
		||||
  ansible.builtin.service:
 | 
			
		||||
    name: minecraftd
 | 
			
		||||
    runlevel: default
 | 
			
		||||
    enabled: True
 | 
			
		||||
    use: openrc
 | 
			
		||||
							
								
								
									
										2
									
								
								roles/minecraft/tasks/tuning.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								roles/minecraft/tasks/tuning.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
---
 | 
			
		||||
# Disable plugin list
 | 
			
		||||
							
								
								
									
										22
									
								
								roles/minecraft/tasks/users.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								roles/minecraft/tasks/users.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
---
 | 
			
		||||
- name: Ensure group "{{ userdb[item].user_group }}" exists
 | 
			
		||||
  ansible.builtin.group:
 | 
			
		||||
    name: "{{ userdb[item].user_group }}"
 | 
			
		||||
    state: present
 | 
			
		||||
  with_items: "{{ userdb }}"
 | 
			
		||||
 | 
			
		||||
- name: Add user "{{ item }}"
 | 
			
		||||
  ansible.builtin.user:
 | 
			
		||||
    name: "{{ item }}"
 | 
			
		||||
    # shell: /bin/bash
 | 
			
		||||
    group: "{{ userdb[item].user_group }}"
 | 
			
		||||
    password: "{{ userdb[item].user_pass }}"
 | 
			
		||||
    comment: "My Default user"
 | 
			
		||||
  with_items: "{{ userdb }}"
 | 
			
		||||
 | 
			
		||||
- name: Deploy authorized key for users
 | 
			
		||||
  ansible.posix.authorized_key:
 | 
			
		||||
    user: "{{ item }}"
 | 
			
		||||
    key: "{{ userdb[item].key }}"
 | 
			
		||||
  with_items: "{{ userdb }}"
 | 
			
		||||
  when: not ansible_check_mode
 | 
			
		||||
							
								
								
									
										11
									
								
								roles/minecraft/templates/1minecraft-rc.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								roles/minecraft/templates/1minecraft-rc.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
# /etc/conf.d/minecraft
 | 
			
		||||
#
 | 
			
		||||
# Minecraft - OpenRC scripts
 | 
			
		||||
# Copyright (C) 2017-2019 João Brázio [joao@brazio.org]
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
MINHEAP={{ MINHEAP }}
 | 
			
		||||
MAXHEAP={{ MAXHEAP }}
 | 
			
		||||
 | 
			
		||||
# https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/
 | 
			
		||||
#CUSTOMARGS="-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1"
 | 
			
		||||
							
								
								
									
										125
									
								
								roles/minecraft/templates/1minecraft.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								roles/minecraft/templates/1minecraft.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
#!/sbin/openrc-run
 | 
			
		||||
# /etc/init.d/minecraft
 | 
			
		||||
#
 | 
			
		||||
# Minecraft - OpenRC scripts
 | 
			
		||||
# Copyright (C) 2017-2019 João Brázio [joao@brazio.org]
 | 
			
		||||
#
 | 
			
		||||
# Expects the game folder to be located at /srv/minecraft/<instance>
 | 
			
		||||
# Don't use directly the /etc/init.d/minecraft script, create a symlink for you instance.
 | 
			
		||||
#
 | 
			
		||||
# This is an example for Paper:
 | 
			
		||||
# - mkdir -p /srv/minecraft/paper
 | 
			
		||||
# - Download paper jar and place it there
 | 
			
		||||
# - ln -s /etc/init.d/minecraft /etc/init.d/minecraft.paper
 | 
			
		||||
# - cp /etc/conf.d/minecraft /etc/conf.d/minecraft.paper
 | 
			
		||||
#
 | 
			
		||||
# Dependencies:
 | 
			
		||||
# - Java VM at /usr/bin/java
 | 
			
		||||
# - mcrcon [https://github.com/Tiiffi/mcrcon]
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
USER={{ server_user }}
 | 
			
		||||
GROUP={{ server_user }}
 | 
			
		||||
 | 
			
		||||
INSTANCE=${RC_SVCNAME##*.}
 | 
			
		||||
BASE="/home/{{ server_user }}/minecraft"
 | 
			
		||||
PIDFILE="/var/run/${RC_SVCNAME}.pid"
 | 
			
		||||
RCON="/usr/bin/rcon"
 | 
			
		||||
BIN="$(ls ${BASE} -v 2>/dev/null | grep -i "craftbukkit.*jar\\|spigot.*jar\\|paper*.*jar\\|minecraft_server.*jar" | head -n 1)"
 | 
			
		||||
 | 
			
		||||
config_get () {
 | 
			
		||||
        echo $(grep ${1} "${BASE}/server.properties" | cut -d '=' -f 2)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
depend () {
 | 
			
		||||
        need net
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre () {
 | 
			
		||||
        if [ -z "${BIN}" ]; then
 | 
			
		||||
                eerror "${RC_SVCNAME} cannot find a proper server jar."
 | 
			
		||||
                eerror "Check your game installation at ${BASE}."
 | 
			
		||||
                return 1
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        [ -f "${PIDFILE}" ] && rm ${PIDFILE}
 | 
			
		||||
 | 
			
		||||
        return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start () {
 | 
			
		||||
        ebegin "Starting Minecraft server ${INSTANCE}"
 | 
			
		||||
        start-stop-daemon --start --chdir ${BASE} --pidfile ${PIDFILE} --make-pidfile \
 | 
			
		||||
                --exec /usr/bin/java --user ${USER} --group ${GROUP} \
 | 
			
		||||
                --background -- -server -Xms${MINHEAP:-128M} -Xmx${MAXHEAP:-1024M} \
 | 
			
		||||
                ${CUSTOMARGS} -jar ${BIN} nogui
 | 
			
		||||
        eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop_pre () {
 | 
			
		||||
        if [ ! -f "${BASE}/server.properties" ]; then
 | 
			
		||||
                eerror "${RC_SVCNAME} cannot find a proper server config file."
 | 
			
		||||
                eerror "Check your game installation at ${BASE}."
 | 
			
		||||
                return 1
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop () {
 | 
			
		||||
        ebegin "Stopping Minecraft server ${INSTANCE}"
 | 
			
		||||
 | 
			
		||||
        if [ "$(config_get enable-rcon)" = "true" ]; then
 | 
			
		||||
                # Fetch rcon configuration
 | 
			
		||||
                RCON_SRV=$(config_get server.ip)
 | 
			
		||||
                RCON_PORT=$(config_get rcon.port)
 | 
			
		||||
                RCON_PASS=$(config_get rcon.password)
 | 
			
		||||
 | 
			
		||||
                # Try to soft kill the server
 | 
			
		||||
                ${RCON} -H ${RCON_SRV:-127.0.0.1} -p ${RCON_PORT} -m -P ${RCON_PASS} save-all 1>/dev/null 2>&1
 | 
			
		||||
                ${RCON} -H ${RCON_SRV:-127.0.0.1} -p ${RCON_PORT} -m -P ${RCON_PASS} stop 1>/dev/null 2>&1
 | 
			
		||||
 | 
			
		||||
                i=0
 | 
			
		||||
                PID=$(cat ${PIDFILE})
 | 
			
		||||
 | 
			
		||||
                while [ "${i}" -le 30 ]; do
 | 
			
		||||
                        kill -0 ${PID} 2>/dev/null && sleep 1 || break
 | 
			
		||||
                        i=$(( i + 1 ))
 | 
			
		||||
                done
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        # Hard stop the server
 | 
			
		||||
        start-stop-daemon --stop --chdir ${BASE} --pidfile ${PIDFILE} --user ${USER} --group ${GROUP} --retry 5 2>/dev/null
 | 
			
		||||
        eend 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
status () {
 | 
			
		||||
        if [ "$(config_get enable-rcon)" = "true" ]; then
 | 
			
		||||
                # Fetch rcon configuration
 | 
			
		||||
                RCON_SRV=$(config_get server.ip)
 | 
			
		||||
                RCON_PORT=$(config_get rcon.port)
 | 
			
		||||
                RCON_PASS=$(config_get rcon.password)
 | 
			
		||||
 | 
			
		||||
                ${RCON} -H ${RCON_SRV:-127.0.0.1} -p ${RCON_PORT} -m -P ${RCON_PASS} version
 | 
			
		||||
                ${RCON} -H ${RCON_SRV:-127.0.0.1} -p ${RCON_PORT} -m -P ${RCON_PASS} tps
 | 
			
		||||
        fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
backup() {
 | 
			
		||||
  saveoff
 | 
			
		||||
 | 
			
		||||
  NOW=`date "+%Y-%m-%d_%Hh%M"`
 | 
			
		||||
  BACKUP_FILE="${BACKUP_BASE}/backup_${NOW}.tar"
 | 
			
		||||
  einfo "Backing up minecraft world..."
 | 
			
		||||
  as_user "tar -C \"${BASE}\" -cf \"$BACKUP_FILE\" ${WORLDS}"
 | 
			
		||||
 | 
			
		||||
  einfo "Backing up ${BIN}"
 | 
			
		||||
  as_user "tar -C \"${BASE}\" -rf \"$BACKUP_FILE\" ${BIN} server.properties"
 | 
			
		||||
 | 
			
		||||
  saveon
 | 
			
		||||
 | 
			
		||||
  einfo "Compressing backup..."
 | 
			
		||||
  as_user "gzip -f \"$BACKUP_FILE\""
 | 
			
		||||
  einfo "Done."
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								roles/minecraft/templates/backup_server.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								roles/minecraft/templates/backup_server.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
# Working dir
 | 
			
		||||
cd /home/{{ server_user }}/backups
 | 
			
		||||
# Delete old backups
 | 
			
		||||
find . -name "backup_*.tar.gz" -type f -mtime +1 -delete
 | 
			
		||||
# Start backup
 | 
			
		||||
rc-service minecraftd backup
 | 
			
		||||
							
								
								
									
										1
									
								
								roles/minecraft/templates/hosts.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								roles/minecraft/templates/hosts.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
127.0.0.1	{{ inventory_hostname }}.my.domain {{ inventory_hostname }} localhost.localdomain localhost
 | 
			
		||||
							
								
								
									
										23
									
								
								roles/minecraft/templates/minecraft-rc.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								roles/minecraft/templates/minecraft-rc.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# /etc/conf.d/minecraft
 | 
			
		||||
#
 | 
			
		||||
# Minecraft - OpenRC scripts
 | 
			
		||||
# Copyright (C) 2024 Santic Zombie [email@santic-zombie.ru]
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
MINHEAP={{ MINHEAP }}
 | 
			
		||||
MAXHEAP={{ MAXHEAP }}
 | 
			
		||||
 | 
			
		||||
USER={{ server_user }}
 | 
			
		||||
GROUP={{ server_user }}
 | 
			
		||||
 | 
			
		||||
BASE="/home/{{ server_user }}/minecraft"
 | 
			
		||||
BACKUP_BASE="/home/{{ server_user }}/backups"
 | 
			
		||||
 | 
			
		||||
SCREENNAME="Minecraft"
 | 
			
		||||
 | 
			
		||||
WORLDS="{{ level_name }} {{ level_name }}_nether {{ level_name }}_the_end"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/
 | 
			
		||||
#CUSTOMARGS="-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1"
 | 
			
		||||
							
								
								
									
										158
									
								
								roles/minecraft/templates/minecraft.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								roles/minecraft/templates/minecraft.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,158 @@
 | 
			
		||||
#!/sbin/openrc-run
 | 
			
		||||
# /etc/init.d/minecraft
 | 
			
		||||
#
 | 
			
		||||
# Minecraft - OpenRC scripts
 | 
			
		||||
# Copyright (C) 2024 Santic Zombie [email@santic-zombie.ru]
 | 
			
		||||
#
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
extra_commands="reload backup listen"
 | 
			
		||||
 | 
			
		||||
INSTANCE=${RC_SVCNAME##*.}
 | 
			
		||||
PIDFILE="/var/run/${RC_SVCNAME}.pid"
 | 
			
		||||
BIN="$(ls ${BASE} -v 2>/dev/null | grep -i "craftbukkit.*jar\\|spigot.*jar\\|paper*.*jar\\|minecraft_server.*jar" | head -n 1)"
 | 
			
		||||
INVOCATION="/usr/bin/java -server -Xms${MINHEAP:-128M} -Xmx${MAXHEAP:-1024M} \
 | 
			
		||||
${CUSTOMARGS} -jar ${BIN} nogui"
 | 
			
		||||
 | 
			
		||||
depend() {
 | 
			
		||||
	need net localmount
 | 
			
		||||
	after bootmisc
 | 
			
		||||
	use logger
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ME=`whoami`
 | 
			
		||||
as_user() {
 | 
			
		||||
  if [ "${ME}" = "${USER}" ] ; then
 | 
			
		||||
    ash -c "$1"
 | 
			
		||||
  else
 | 
			
		||||
    su - "${USER}" -c "$1"
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start_pre () {
 | 
			
		||||
  if [ -z "${BIN}" ]; then
 | 
			
		||||
      eerror "${RC_SVCNAME} cannot find a proper server jar."
 | 
			
		||||
      eerror "Check your game installation at ${BASE}."
 | 
			
		||||
      return 1
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  [ -f "${PIDFILE}" ] && rm ${PIDFILE}
 | 
			
		||||
 | 
			
		||||
  return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
start () {
 | 
			
		||||
  ebegin "Starting Minecraft server daemon"
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    einfo "Minecraft server is already running!"
 | 
			
		||||
  else
 | 
			
		||||
    ebegin "Starting in progress"
 | 
			
		||||
    cd "${BASE}"
 | 
			
		||||
    as_user "cd ${BASE} && screen -dmS ${SCREENNAME} ${INVOCATION}"
 | 
			
		||||
    sleep 10
 | 
			
		||||
    pgrep -f "${BIN}" | tail -1 > "${PIDFILE}"
 | 
			
		||||
    if pgrep -u "${USER}" -f "${BIN}" | tail -1 > /dev/null ; then
 | 
			
		||||
      einfo "${INSTANCE} is now running."
 | 
			
		||||
    else
 | 
			
		||||
      eerror "Error! Could not start ${INSTANCE}! :("
 | 
			
		||||
      return 2
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
stop() {
 | 
			
		||||
  ebegin "Stopping Minecraft server daemon"
 | 
			
		||||
  if  pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    ebegin "Stopping in progress"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER SHUTTING DOWN IN 30 SECONDS. Saving map...\"\015'"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
 | 
			
		||||
    sleep 10
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"stop\"\015'"
 | 
			
		||||
    sleep 10
 | 
			
		||||
  else
 | 
			
		||||
    einfo "${INSTANCE} was not running."
 | 
			
		||||
  fi
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    eerror "Error! ${INSTANCE} could not be stopped."
 | 
			
		||||
  else
 | 
			
		||||
    einfo "${INSTANCE} is stopped."
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # Hard stop the server
 | 
			
		||||
  start-stop-daemon --stop --chdir ${BASE} --pidfile ${PIDFILE} --user ${USER} --group ${GROUP} --retry 5 2>/dev/null
 | 
			
		||||
  eend 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
restart() {
 | 
			
		||||
	ebegin "Reload Minecraft server daemon"
 | 
			
		||||
	stop
 | 
			
		||||
	start
 | 
			
		||||
	eend $?
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
reload() {
 | 
			
		||||
  ebegin "Reload Minecraft server"
 | 
			
		||||
  if  pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    ebegin "Reloading in progress"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER RELOADING IN 40 SECONDS. Saving map...\"\015'"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
 | 
			
		||||
    sleep 10
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"reload\"\015'"
 | 
			
		||||
		as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"reload confirm\"\015'"
 | 
			
		||||
    sleep 10
 | 
			
		||||
  else
 | 
			
		||||
    einfo "${INSTANCE} was not running."
 | 
			
		||||
  fi
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    einfo "Server reloaded."
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER SUCCESSFULLY RELOADED!\"\015'"
 | 
			
		||||
  else
 | 
			
		||||
    eerror "Error! ${INSTANCE} could not reloaded! :("
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
saveoff() {
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    einfo "Server is running... suspending saves"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-off\"\015'"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
 | 
			
		||||
    sync
 | 
			
		||||
    sleep 10
 | 
			
		||||
  else
 | 
			
		||||
    einfo "${INSTANCE} is not running."
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
saveon() {
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    einfo "Server is running... re-enabling saves"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-on\"\015'"
 | 
			
		||||
    as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
 | 
			
		||||
  else
 | 
			
		||||
    echo "${INSTANCE} is not running. Not resuming saves."
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
backup() {
 | 
			
		||||
  saveoff
 | 
			
		||||
 | 
			
		||||
  NOW=`date "+%Y-%m-%d_%Hh%M"`
 | 
			
		||||
  BACKUP_FILE="${BACKUP_BASE}/backup_${NOW}.tar"
 | 
			
		||||
  einfo "Backing up minecraft server..."
 | 
			
		||||
  as_user "tar -C \"${BASE}\" -cf \"$BACKUP_FILE\" ."
 | 
			
		||||
 | 
			
		||||
  saveon
 | 
			
		||||
 | 
			
		||||
  einfo "Compressing backup..."
 | 
			
		||||
  as_user "gzip -f \"$BACKUP_FILE\""
 | 
			
		||||
  einfo "Done."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
listen() {
 | 
			
		||||
  if pgrep -u "${USER}" -f "${BIN}" > /dev/null ; then
 | 
			
		||||
    as_user "tail -f ${BASE}/logs/latest.log"
 | 
			
		||||
  else
 | 
			
		||||
    echo "${INSTANCE} is not running. Cannot listen to server."
 | 
			
		||||
  fi
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								roles/minecraft/templates/motd.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								roles/minecraft/templates/motd.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
 | 
			
		||||
Welcome to {{ inventory_hostname }} Server! ^_^
 | 
			
		||||
 | 
			
		||||
       :\     /;               _
 | 
			
		||||
      ;  \___/  ;             ; ;
 | 
			
		||||
     ,:-"'   `"-:.            / ;
 | 
			
		||||
_   /,---.   ,---.\   _     _; /
 | 
			
		||||
_:>((  |  ) (  |  ))<:_ ,-""_,"
 | 
			
		||||
    \`````   `````/""""",-""
 | 
			
		||||
     '-.._ v _..-'      )
 | 
			
		||||
       / ___   ____,..  \
 | 
			
		||||
      / /   | |   | ( \. \
 | 
			
		||||
nya  / /    | |    | |  \ \
 | 
			
		||||
     `"     `"     `"    `"
 | 
			
		||||
							
								
								
									
										58
									
								
								roles/minecraft/templates/nginx.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								roles/minecraft/templates/nginx.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
user {{ nginx_user }};
 | 
			
		||||
worker_processes  {{ worker_processes }};
 | 
			
		||||
 | 
			
		||||
error_log  {{ log_dir }}/error.log;
 | 
			
		||||
error_log  {{ log_dir }}/error.log  notice;
 | 
			
		||||
error_log  {{ log_dir }}/error.log  info;
 | 
			
		||||
 | 
			
		||||
events {
 | 
			
		||||
	worker_connections  {{ worker_connections }};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
http {
 | 
			
		||||
	include       mime.types;
 | 
			
		||||
	default_type  application/octet-stream;
 | 
			
		||||
 | 
			
		||||
	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 | 
			
		||||
		'$status $body_bytes_sent "$http_referer" '
 | 
			
		||||
		'"$http_user_agent" "$http_x_forwarded_for"';
 | 
			
		||||
 | 
			
		||||
	access_log  {{ log_dir }}/access.log  main;
 | 
			
		||||
 | 
			
		||||
	sendfile        on;
 | 
			
		||||
	tcp_nopush      on;
 | 
			
		||||
	#keepalive_timeout  65;
 | 
			
		||||
	gzip  on;
 | 
			
		||||
 | 
			
		||||
  server {
 | 
			
		||||
	        listen 80 default_server;
 | 
			
		||||
        	#server_name _;
 | 
			
		||||
 | 
			
		||||
	        root /srv/dynmap/web;
 | 
			
		||||
 | 
			
		||||
	        index index.php index.html index.htm;
 | 
			
		||||
 | 
			
		||||
	        location / {
 | 
			
		||||
	                # First attempt to serve request as file, then
 | 
			
		||||
	                # as directory, then fall back to displaying a 404.
 | 
			
		||||
	                try_files $uri $uri/ =404;
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	        # pass PHP scripts to FastCGI server
 | 
			
		||||
 | 
			
		||||
	        location ~ \.php$ {
 | 
			
		||||
							fastcgi_pass      127.0.0.1:9000;
 | 
			
		||||
							fastcgi_index     index.php;
 | 
			
		||||
							include           fastcgi.conf;
 | 
			
		||||
	        }
 | 
			
		||||
 | 
			
		||||
	        # deny access to .htaccess files, if Apache's document root
 | 
			
		||||
	        # concurs with nginx's one
 | 
			
		||||
	        #
 | 
			
		||||
	        location ~ /\.ht {
 | 
			
		||||
	                deny all;
 | 
			
		||||
	        }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	#include sites-enabled/*;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										59
									
								
								roles/minecraft/templates/server.properties.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								roles/minecraft/templates/server.properties.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
			
		||||
enable-jmx-monitoring=false
 | 
			
		||||
rcon.port={{ rcon_port }}
 | 
			
		||||
level-seed=
 | 
			
		||||
gamemode={{ gamemode }}
 | 
			
		||||
enable-command-block=false
 | 
			
		||||
enable-query=false
 | 
			
		||||
generator-settings={}
 | 
			
		||||
enforce-secure-profile={{ enforce_secure_profile }}
 | 
			
		||||
level-name={{ level_name }}
 | 
			
		||||
motd={{ server_status }}
 | 
			
		||||
query.port={{ game_port }}
 | 
			
		||||
pvp={{ pvp }}
 | 
			
		||||
generate-structures=true
 | 
			
		||||
max-chained-neighbor-updates={{ neighbor_updates }}
 | 
			
		||||
difficulty={{ difficulty }}
 | 
			
		||||
network-compression-threshold={{ network_compression_threshold }}
 | 
			
		||||
max-tick-time=60000
 | 
			
		||||
require-resource-pack=false
 | 
			
		||||
use-native-transport=true
 | 
			
		||||
max-players={{ max_players }}
 | 
			
		||||
online-mode=false
 | 
			
		||||
enable-status=true
 | 
			
		||||
allow-flight=false
 | 
			
		||||
initial-disabled-packs=
 | 
			
		||||
broadcast-rcon-to-ops=true
 | 
			
		||||
view-distance={{ view_distance }}
 | 
			
		||||
server-ip=
 | 
			
		||||
resource-pack-prompt=
 | 
			
		||||
allow-nether=true
 | 
			
		||||
server-port={{ game_port }}
 | 
			
		||||
enable-rcon={{ enable_rcon }}
 | 
			
		||||
sync-chunk-writes=true
 | 
			
		||||
resource-pack-id=
 | 
			
		||||
op-permission-level={{ op_permission_level }}
 | 
			
		||||
prevent-proxy-connections=false
 | 
			
		||||
hide-online-players=false
 | 
			
		||||
resource-pack=
 | 
			
		||||
entity-broadcast-range-percentage={{ entity_broadcast_range }}
 | 
			
		||||
simulation-distance={{ simulation_distance }}
 | 
			
		||||
rcon.password={{ rcon_password }}
 | 
			
		||||
player-idle-timeout=0
 | 
			
		||||
debug=false
 | 
			
		||||
force-gamemode=false
 | 
			
		||||
rate-limit=0
 | 
			
		||||
hardcore=false
 | 
			
		||||
white-list=false
 | 
			
		||||
broadcast-console-to-ops=true
 | 
			
		||||
spawn-npcs=true
 | 
			
		||||
spawn-animals=true
 | 
			
		||||
log-ips=true
 | 
			
		||||
function-permission-level=2
 | 
			
		||||
initial-enabled-packs=vanilla
 | 
			
		||||
level-type=minecraft\:normal
 | 
			
		||||
text-filtering-config=
 | 
			
		||||
spawn-monsters=true
 | 
			
		||||
enforce-whitelist=false
 | 
			
		||||
spawn-protection={{ spawn_protection }}
 | 
			
		||||
resource-pack-sha1=
 | 
			
		||||
max-world-size=29999984
 | 
			
		||||
							
								
								
									
										6
									
								
								roles/minecraft/templates/sshd_config.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								roles/minecraft/templates/sshd_config.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
Port {{ ssh_port }}
 | 
			
		||||
PubkeyAuthentication yes
 | 
			
		||||
PasswordAuthentication no
 | 
			
		||||
PermitEmptyPasswords no
 | 
			
		||||
ChallengeResponseAuthentication no
 | 
			
		||||
Subsystem       sftp    /usr/lib/ssh/sftp-server
 | 
			
		||||
		Reference in New Issue
	
	Block a user