mirror of
https://github.com/EngineGPDev/Autoinstall.git
synced 2025-01-18 13:52:22 +03:00
Important update
Added location setting Added game builds CS 1.6 And so on...
This commit is contained in:
parent
a8c1e47574
commit
1f71e1b952
334
install.sh
334
install.sh
@ -14,12 +14,14 @@ clear
|
||||
# Создаём переменную для логов
|
||||
logsINST="$(dirname "$0")/enginegp_install.log"
|
||||
|
||||
# Директория сохранения данных
|
||||
saveDIR="/root/enginegp.cfg"
|
||||
|
||||
# Обновление системы
|
||||
sysUpdate
|
||||
|
||||
# Установка начальных пакетов.
|
||||
# lsb-release wget gnupg - Требуются для MySQL. В остальном зависимость не проверялась.
|
||||
pkgsREQ=(sudo curl lsb-release wget gnupg rsync)
|
||||
pkgsREQ=(sudo curl lsb-release wget gnupg rsync pwgen zip unzip bc tar)
|
||||
|
||||
# Цикл установки пакетов
|
||||
for package in "${pkgsREQ[@]}"; do
|
||||
@ -156,7 +158,7 @@ while true; do
|
||||
if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
|
||||
# Список пакетов для установки
|
||||
pkgsLNAMP=(apache2 php php-fpm php-ctype php-json php-mbstring php-zip php-gd php-xml php-curl libapache2-mod-php libapache2-mod-fcgid nginx)
|
||||
pkgsEGP=(ufw memcached unzip bc cron php$verPHP php$verPHP-fpm php$verPHP-common php$verPHP-cli php$verPHP-memcache php$verPHP-memcached php$verPHP-mysql php$verPHP-xml php$verPHP-mbstring php$verPHP-gd php$verPHP-imagick php$verPHP-zip php$verPHP-curl php$verPHP-ssh2 php$verPHP-xml libapache2-mod-php$verPHP)
|
||||
pkgsEGP=(ufw memcached cron php$verPHP php$verPHP-fpm php$verPHP-common php$verPHP-cli php$verPHP-memcache php$verPHP-memcached php$verPHP-mysql php$verPHP-xml php$verPHP-mbstring php$verPHP-gd php$verPHP-imagick php$verPHP-zip php$verPHP-curl php$verPHP-ssh2 php$verPHP-xml libapache2-mod-php$verPHP)
|
||||
|
||||
# Установка стека LNAMP + phpMyAdmin
|
||||
# Проверяем наличие репозитория php sury
|
||||
@ -425,6 +427,12 @@ EOF
|
||||
sudo rsync -av /tmp/enginegp/EngineGP-*/. /var/www/enginegp/ >> $logsINST 2>&1
|
||||
sudo rm /tmp/enginegp/enginegp.zip >> $logsINST 2>&1
|
||||
sudo rm -r /tmp/enginegp/EngineGP-* >> $logsINST 2>&1
|
||||
|
||||
# Генерация и хэширование пароля
|
||||
#saltEGP=$(pwgen -cnys -1 16) # Необходимо записывать в system.php и acpsystem.php
|
||||
#passEGP=$(pwgen -cnys -1 16)
|
||||
#hashedPassEGP=$(echo -n "$saltEGP$passEGP" | sha512sum)
|
||||
#hashedPassEGP=${hashedPassEGP%% *}
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "enginegp уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
|
||||
@ -469,21 +477,317 @@ EOF
|
||||
;;
|
||||
2)
|
||||
clear
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Вы выбрали: Настройка сервера под игры" | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
# Здесь добавить код для настройки сервера под игры
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
# Проверяем, содержится ли текущая версия в массиве поддерживаемых версий
|
||||
if [[ " ${suppOS[@]} " =~ " ${currOS} " ]]; then
|
||||
pkgsLOC=(lib32z1 libbabeltrace1 libc6-dbg libdw1 lib32stdc++6 libreadline5 lib32gcc1 screen tcpdump lsof qstat gdb-minimal ntpdate gcc-multilib iptables default-jdk nginx)
|
||||
passMySQL=$(pwgen -cnys -1 16)
|
||||
safePassMySQL=$(printf '%s\n' "$passMySQL" | sed -e 's/[\&/]/\\&/g')
|
||||
passProFTPD=$(pwgen -cnys -1 16)
|
||||
|
||||
if ! dpkg --print-foreign-architectures | grep -q "i386"; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Архитектура i386 не добавлена. Выполняется добавление..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
sudo dpkg --add-architecture i386 >> $logsINST 2>&1
|
||||
|
||||
# Обновление таблиц
|
||||
apt-get -y update >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Архитектура i386 уже добавлена." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
fi
|
||||
|
||||
# Устанавливаем базу данных
|
||||
if ! dpkg-query -W -f='${Status}' "mysql-server" 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "mysql-server не установлен. Выполняется установка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
sudo debconf-set-selections <<EOF
|
||||
mysql-apt-config mysql-apt-config/select-server select mysql-8.0
|
||||
mysql-apt-config mysql-apt-config/select-tools select Enabled
|
||||
mysql-apt-config mysql-apt-config/select-preview select Disabled
|
||||
EOF
|
||||
sudo curl -SLO https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb >> $logsINST 2>&1
|
||||
sudo DEBIAN_FRONTEND="noninteractive" dpkg -i mysql-apt-config_0.8.26-1_all.deb >> $logsINST 2>&1
|
||||
sudo apt-get update >> $logsINST 2>&1
|
||||
sudo rm mysql-apt-config_0.8.26-1_all.deb >> $logsINST 2>&1
|
||||
sudo debconf-set-selections <<EOF
|
||||
mysql-community-server mysql-community-server/root-pass password $safePassMySQL
|
||||
mysql-community-server mysql-community-server/re-root-pass password $safePassMySQL
|
||||
mysql-community-server mysql-server/default-auth-override select Use Strong Password Encryption (RECOMMENDED)
|
||||
EOF
|
||||
sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-server >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "mysql-server уже установлен в системе. Продолжение установки невозможно." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Цикл установки пакетов
|
||||
for package in "${pkgsLOC[@]}"; do
|
||||
# Проверка на наличие и установка пакетов
|
||||
if ! dpkg-query -W -f='${Status}' "$package" 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "$package не установлен. Выполняется установка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
apt-get install -y "$package" >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "$package уже установлен в системе." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
fi
|
||||
done
|
||||
|
||||
# Устанавливаем ProFTPD
|
||||
if ! dpkg-query -W -f='${Status}' "proftpd" 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "proftpd не установлен. Выполняется установка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "proftpd shared/proftpd/inetd_or_standalone select standalone" | debconf-set-selections
|
||||
sudo apt-get install -y proftpd proftpd-mod-mysql >> $logsINST 2>&1
|
||||
curl -o /etc/proftpd/proftpd.conf $resURL/Components/ProFTPD/proftpd >> $logsINST 2>&1
|
||||
curl -o /etc/proftpd/proftpd_modules.conf $resURL/Components/ProFTPD/proftpd_modules >> $logsINST 2>&1
|
||||
curl -o /etc/proftpd/sql.conf $resURL/Components/ProFTPD/proftpd_sql >> $logsINST 2>&1
|
||||
mysql -uroot -p$safePassMySQL -e "CREATE DATABASE ftp;" >> $logsINST 2>&1
|
||||
mysql -uroot -p$safePassMySQL -e "CREATE USER 'ftp'@'localhost' IDENTIFIED BY '$passProFTPD';" >> $logsINST 2>&1
|
||||
mysql -uroot -p$safePassMySQL -e "GRANT ALL PRIVILEGES ON ftp . * TO 'ftp'@'localhost';" >> $logsINST 2>&1
|
||||
mysql -uroot -p$safePassMySQL ftp < EngineGP-requirements/proftpd/sqldump.sql >> $logsINST 2>&1
|
||||
sed -i 's/passwdfor/'$passProFTPD'/g' /etc/proftpd/sql.conf >> $logsINST 2>&1
|
||||
chmod -R 750 /etc/proftpd >> $logsINST 2>&1
|
||||
systemctl restart proftpd >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "proftpd уже установлен. Продолжение установки невозможно." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Настраиваем rclocal
|
||||
if [ ! -f /etc/rc.local ]; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "rc.local не настроен. Выполняется настройка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
sudo touch /etc/rc.local >> $logsINST 2>&1
|
||||
echo '#!/bin/bash' | sudo tee -a /etc/rc.local >> $logsINST 2>&1
|
||||
echo "/root/iptables_block" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
|
||||
echo "exit 0" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
|
||||
sudo chmod +x /etc/rc.local >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "rc.local не настроен. Выполняется настройка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
sed -i '14d' /etc/rc.local >> $logsINST 2>&1
|
||||
echo "/root/iptables_block" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
|
||||
echo "exit 0" | sudo tee -a /etc/rc.local >> $logsINST 2>&1
|
||||
sudo chmod +x /etc/rc.local >> $logsINST 2>&1
|
||||
fi
|
||||
|
||||
# Настраиваем iptables
|
||||
if dpkg-query -W -f='${Status}' "iptables" 2>/dev/null | grep -q "install ok installed"; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "iptables не настроен. Выполняется настройка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
# Проверка на наличие файла
|
||||
if [ ! -f /root/iptables_block ]; then
|
||||
sudo touch /root/iptables_block >> $logsINST 2>&1
|
||||
sudo chmod 500 /root/iptables_block >> $logsINST 2>&1
|
||||
else
|
||||
sudo chmod 500 /root/iptables_block >> $logsINST 2>&1
|
||||
fi
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "iptables уже установлен. Продолжение установки невозможно." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
fi
|
||||
|
||||
# Установка SteamCMD
|
||||
if [ ! -d "/path/cmd" ]; then
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "SteamCMD не настроен. Выполняется настройка..." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
groupmod -g 998 `cat /etc/group | grep :1000 | awk -F":" '{print $1}'` >> $logsINST 2>&1
|
||||
groupadd -g 1000 servers >> $logsINST 2>&1
|
||||
mkdir -p /path /path/cmd /path/update /path/maps >> $logsINST 2>&1
|
||||
chmod -R 755 /path >> $logsINST 2>&1
|
||||
chown root:servers /path >> $logsINST 2>&1
|
||||
mkdir -p /servers >> $logsINST 2>&1
|
||||
chmod -R 711 /servers >> $logsINST 2>&1
|
||||
chown root:servers /servers >> $logsINST 2>&1
|
||||
mkdir -p /copy >> $logsINST 2>&1
|
||||
chmod -R 750 /copy >> $logsINST 2>&1
|
||||
chown root:root /copy >> $logsINST 2>&1
|
||||
sudo curl -SL -o steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz >> $logsINST 2>&1
|
||||
tar -xzf steamcmd_linux.tar.gz -C /path/cmd >> $logsINST 2>&1
|
||||
rm steamcmd_linux.tar.gz >> $logsINST 2>&1
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "SteamCMD уже установлен. Продолжение установки невозможно...." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
fi
|
||||
echo "">>$SAVE
|
||||
echo "Location data:">>$saveDIR
|
||||
echo "SQL_Username: root">>$saveDIR
|
||||
echo "SQL_Password: $safePassMySQL">>$saveDIR
|
||||
echo "SQL_FileTP: ftp">>$saveDIR
|
||||
echo "SQL_Port: 3306">>$saveDIR
|
||||
echo "Password for FTP database: $passProFTPD">>$saveDIR
|
||||
else
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Вы используете неподдерживаемую версию Linux" | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
fi
|
||||
;;
|
||||
3)
|
||||
clear
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Вы выбрали: Установка игровых сборок" | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
# Здесь добавить код для установки игровых сборок
|
||||
read -p "Нажмите Enter для завершения..."
|
||||
continue
|
||||
# Игровой репозиторий
|
||||
gamesURL="http://gs.enginegp.ru"
|
||||
|
||||
echo "Меню установки игровых сборок:"
|
||||
echo "1. Counter-Strike: 1.6"
|
||||
echo "2. Counter-Strike: Source v34 (old)"
|
||||
echo "3. Counter-Strike: Source (new)"
|
||||
echo "4. Counter-Strike: Global Offensive"
|
||||
echo "5. Counter-Strike: 2"
|
||||
echo "6. Grand Theft Auto: San Andreas MultiPlayer"
|
||||
echo "7. Grand Theft Auto: Criminal Russia MultiPlayer"
|
||||
echo "8. Grand Theft Auto: Multi Theft Auto"
|
||||
echo "9. Minecraft Java Edition"
|
||||
echo "10. RUST"
|
||||
echo "0. Вернуться в предыдущее меню"
|
||||
|
||||
read -p "Выберите пункт меню: " game_choice
|
||||
|
||||
case $game_choice in
|
||||
1)
|
||||
clear
|
||||
mkdir -p /path/cs /path/update/cs /path/maps/cs /servers/cs >> $logsINST 2>&1
|
||||
echo "Меню установки Counter-Strike: 1.6"
|
||||
echo "1. Steam [Clean server]"
|
||||
echo "2. Build ReHLDS"
|
||||
echo "3. Build 8308"
|
||||
echo "4. Build 8196"
|
||||
echo "5. Build 7882"
|
||||
echo "6. Build 7559"
|
||||
echo "7. Build 6153"
|
||||
echo "8. Build 5787"
|
||||
echo "0. Вернуться в предыдущее меню"
|
||||
|
||||
read -p "Выберите пункт меню: " cs16_choice
|
||||
|
||||
case $cs16_choice in
|
||||
1)
|
||||
mkdir -p /path/cs/steam 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/steam/steam.zip $gamesURL/cs/steam.zip 2>&1 | tee -a ${logsINST}
|
||||
sudo unzip /path/cs/steam/steam.zip -d /path/cs/steam/ 2>&1 | tee -a ${logsINST}
|
||||
sudo rm /path/cs/steam/steam.zip | tee -a $logsINST 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
2)
|
||||
mkdir -p /path/cs/rehlds 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/rehlds/rehlds.zip $gamesURL/cs/rehlds.zip 2>&1 | tee -a ${logsINST}
|
||||
sudo unzip /path/cs/rehlds/rehlds.zip -d /path/cs/rehlds/ 2>&1 | tee -a ${logsINST}
|
||||
sudo rm /path/cs/rehlds/rehlds.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
3)
|
||||
mkdir -p /path/cs/8308 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/8308/8308.zip $gamesURL/cs/8308.zip 2>&1 | tee -a ${logsINST}
|
||||
sudo unzip /path/cs/8308/8308.zip -d /path/cs/8308/ 2>&1 | tee -a ${logsINST}
|
||||
sudo rm /path/cs/8308/8308.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
4)
|
||||
mkdir -p /path/cs/8196 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/8196/8196.zip $gamesURL/cs/8196.zip 2>&1 | tee -a ${logsINST}
|
||||
unzip /path/cs/8196/8196.zip -d /path/cs/8196/ 2>&1 | tee -a ${logsINST}
|
||||
rm /path/cs/8308/8308.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
5)
|
||||
mkdir -p /path/cs/7882 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/7882/7882.zip $gamesURL/cs/7882.zip 2>&1 | tee -a ${logsINST}
|
||||
unzip /path/cs/7882/7882.zip -d /path/cs/7882/ 2>&1 | tee -a ${logsINST}
|
||||
rm /path/cs/7882/7882.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
6)
|
||||
mkdir -p /path/cs/7559 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/7559/7559.zip $gamesURL/cs/7559.zip 2>&1 | tee -a ${logsINST}
|
||||
unzip /path/cs/7559/7559.zip -d /path/cs/7559/ 2>&1 | tee -a ${logsINST}
|
||||
rm /path/cs/7559/7559.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
7)
|
||||
mkdir -p /path/cs/6153 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/6153/6153.zip $gamesURL/cs/6153.zip 2>&1 | tee -a ${logsINST}
|
||||
unzip /path/cs/6153/6153.zip -d /path/cs/6153/ 2>&1 | tee -a ${logsINST}
|
||||
rm /path/cs/6153/6153.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
8)
|
||||
mkdir -p /path/cs/5787 2>&1 | tee -a ${logsINST}
|
||||
sudo curl -SL -o /path/cs/5787/5787.zip $gamesURL/cs/5787.zip 2>&1 | tee -a ${logsINST}
|
||||
unzip /path/cs/5787/5787.zip -d /path/cs/5787/ 2>&1 | tee -a ${logsINST}
|
||||
rm /path/cs/5787/5787.zip 2>&1 | tee -a ${logsINST}
|
||||
cs16_choice
|
||||
;;
|
||||
0)
|
||||
game_choice
|
||||
;;
|
||||
*)
|
||||
clear
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
2)
|
||||
# Add code for installing SAMP game here
|
||||
;;
|
||||
3)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
4)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
5)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
6)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
7)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
8)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
9)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
10)
|
||||
# Add code for installing MTA game here
|
||||
;;
|
||||
0)
|
||||
choice
|
||||
;;
|
||||
*)
|
||||
clear
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
echo "Неверный выбор. Попробуйте еще раз." | tee -a $logsINST
|
||||
echo "===================================" >> $logsINST 2>&1
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
4)
|
||||
clear
|
||||
|
Loading…
Reference in New Issue
Block a user