自己搭建服务器玩【幻兽帕鲁】,同时学习下里面部署用的SHELL脚本

------> 课程视频同步分享在今日头条和B站

大家好,我是博哥爱运维。

最近刷B站,看到这个【幻兽帕鲁】游戏非常火,游戏倒并没有引起我的太多兴趣,但是看到阿里云帐号发了一篇文章:有手就行!阿里云上3分钟搞定幻兽帕鲁联机服务器搭建,这个倒是引起了我的兴趣,看了下阿里云发的文章,知道了其搭建服务器的一个过程,想着正好可以利用这个机会给大家讲下SHELL脚本部署docker服务的一个过程,正所谓游戏学习两不误。

我把里面的脚本整理出来了

这是一个安装 Docker CE 并拉取 Palworld 服务器镜像的 Shell 脚本。请注意,该脚本假设您的操作系统是 CentOS、Ubuntu、Debian、Fedora 或 Alibaba Cloud Linux,并且系统版本受支持。

脚本的功能包括:

  1. 检查操作系统发行版以确定正确的安装方法。
  2. 安装 Docker CE 的依赖项。
  3. 配置 Docker CE 的软件仓库。
  4. 安装 Docker CE。
  5. 启动并启用 Docker 服务。
  6. 拉取 Palworld 服务器镜像。
  7. 创建用于存储服务器配置和存档的目录。
  8. 在 Docker 中运行 Palworld 服务器容器。

请确保在执行此脚本之前具有适当的权限,并在执行脚本时小心检查脚本中的命令。

#!/bin/bash

function check_distro() {
    for i in issue os-release issue.net centos-release redhat-release; do
        if [[ -f /etc/$i ]]; then
            if grep -q "$1" /etc/$i; then
                return 0
            fi
        fi
    done
    return 1
}

function install_docker_CE() {
    if check_distro 'CentOS'; then
        yum install -y yum-utils device-mapper-persistent-data lvm2
        yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
        sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
        yum -y install docker-ce
    elif check_distro 'Ubuntu'; then
        apt-get update
        apt-get -y install apt-transport-https ca-certificates curl software-properties-common
        curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu/gpg | apt-key add -
        add-apt-repository -y "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
        apt-get -y install docker-ce
    elif check_distro 'Debian'; then
        apt-get update
        apt-get -y install apt-transport-https ca-certificates curl software-properties-common
        curl -fsSL http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian/gpg | apt-key add -
        add-apt-repository -y "deb [arch=amd64] http://mirrors.cloud.aliyuncs.com/docker-ce/linux/debian $(lsb_release -cs) stable"
        apt-get update
        apt-get -y install docker-ce
    elif check_distro 'Fedora'; then
        dnf config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/fedora/docker-ce.repo
        sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
        dnf -y install docker-ce
    elif check_distro 'Alibaba Cloud Linux (Aliyun Linux) 2'; then
        yum install -y yum-utils device-mapper-persistent-data lvm2
        yum-config-manager --add-repo http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
        sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
        yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
        yum -y install docker-ce
    elif check_distro 'Alibaba Cloud Linux 3'; then
        dnf config-manager --add-repo=http://mirrors.cloud.aliyuncs.com/docker-ce/linux/centos/docker-ce.repo
        sed -i 's+https://mirrors.aliyun.com+http://mirrors.cloud.aliyuncs.com+' /etc/yum.repos.d/docker-ce.repo
        dnf -y install dnf-plugin-releasever-adapter --repo alinux3-plus
        dnf -y install docker-ce
    else
        echo 'Linux release version not supported.'
        exit 1
    fi
}

install_docker_CE
systemctl start docker
systemctl enable docker

# 获取 Palworld 服务器 docker 镜像。如果是其他环境获取不到 REGION,可以将后面的 docker 镜像地址替换为公网地址,如:registry.cn-hangzhou.aliyuncs.com/imbolo/palworld-server:latest
REGION=`curl -s 100.100.100.200/latest/meta-data/region-id`
docker pull registry-vpc.${REGION}.aliyuncs.com/imbolo/palworld-server:latest

# 创建 /PalSaved 用于在 ECS 上存储服务器配置和存档
sudo groupadd -g 1000 steam && sudo useradd -u 1000 -g steam -m steam && mkdir /PalSaved && chown -R steam:steam /PalSaved
docker run --restart=always --user 1000:1000 -v /PalSaved:/home/steam/Steam/steamapps/common/PalServer/Pal/Saved/ --name palworld-server --net host -dit registry-vpc.${REGION}.aliyuncs.com/imbolo/palworld-server

你可能感兴趣的:(运维开发的那些事儿,服务器,学习,运维,阿里云,幻兽帕鲁,shell,docker)