Skip to main content

部署 Debian12 版本

本案例基于Debian 12平台为例部署。

更新系统环境

  1. 更新系统源包

    可选项,可以选择部署国内包数据源

    root@debian:/home/hamster# vi /etc/apt/sources.list
    # Debian 12 Bookworm -ZG KeJi DaXue
    deb http://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free
    deb http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free

    # Debian 12 Bookworm Ali Yun
    deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free
    deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
    deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
    deb http://mirrors.aliyun.com/debian-security/ bookworm-security main contrib non-free

    # Debian 12 Bookworm QingHua DaXue
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free
    deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ bookworm-security main contrib non-free
  2. 更新本地时区

    # 默认时区格式
    date
    Wed Feb 12 06:16:43 UTC 2025
    # 查看当前系统目录中可用时区列表,如亚洲的上海
    ls /usr/share/zoneinfo/Asia
    # 创建新的符号链接:根据你选择的时区,创建一个指向 /usr/share/zoneinfo 目录下对应时区文件的符号链接。例如,要将时区设置为亚洲上海(东八区),可以使用以下命令
    # -s 选项表示创建符号链接,-f 选项表示强制覆盖已有的链接。
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    # 验证时区设置
    date
    Wed Feb 12 14:19:32 CST 2025
  3. 创建工作目录

    root@debian:/home/hamster# mkdir /hamster
    root@debian:/home/hamster# mkdir /hamster/tools
    # 设置权限,便于客户端文件上传
    root@debian:/home/hamster# chmod 777 /hamster/tools/
  4. 更新基础应用

    因为部分组件是基于源代码编译发布,所以需要安装基础的工具包。

    • build-essential:包含 make、gcc 等基本开发工具。
    • libncurses-dev:ncurses 库的开发头文件。
    • m4:一种宏处理器,构建过程可能用到。
    • libssl-dev:SSL 库开发头文件,用于加密支持。
    • unixodbc-dev:用于数据库连接的开发文件。
    • xsltproc、fop、libxml2-utils:用于文档生成。
    • openjdk-11-jdk:必要时构建和运行部分需要 Java 环境的组件。
    • zip 和 tar:用于解压缩打包。
    • gcc 和 clang:这两个都是编译器,你可以选择一个,也可以同时安装。
    • perl:Perl 脚本语言,构建过程中可能会被用到。
    • sed:流编辑器,用于文本处理。
    # root@debian:/home/hamster# 
    apt update
    apt -y upgrade
    apt install -y build-essential libncurses-dev m4 libssl-dev unixodbc-dev xsltproc fop libxml2-utils openjdk-17-jdk zip tar gcc clang perl sed
    apt install -y vim

安装ERLang27

下载路径:

  1. 安装服务

    # root@debian:/hamster/tools# 
    cd /hamster/tools
    tar -zxf otp_src_27.2.tar.gz
    cd otp_src_27.2/
    ./configure --prefix=/hamster/erlang27
    make && make install
    cd /hamster/erlang27/
    ls
    # bin lib

    # 注册ERlang的环境路径,在文件首部添加路径信息
    root@debian:/hamster/tools/otp_src_27.2# vim /etc/profile
    if [ "$(id -u)" -eq 0 ]; then
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    else
    PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
    fi

    export ERLPATH=/hamster/erlang27
    export PATH=$PATH:$ERLPATH/bin
    root@debian:/hamster/erlang27# source /etc/profile
    # 修改root账号路径设置
    root@debian:/hamster/erlang27# cd ~
    root@debian:~# vim .bashrc
    # Some more alias to avoid making mistakes:
    # alias rm='rm -i'
    # alias cp='cp -i'
    # alias mv='mv -i'

    export PATH=$PATH:/hamster/erlang27/bin
    root@debian:~# systemctl reboot
    # 重启VM后验证ERLang安装情况
    hamster@debian:~$ erl
    Erlang/OTP 27 [erts-15.1.2] [source] [64-bit] [smp:128:8] [ds:128:8:10] [async-threads:1] [jit:ns]

    Eshell V15.1.2 (press Ctrl+G to abort, type help(). for help)
    1> halt().
  2. 卸载服务

    在卸载已有Erlang服务时,需要注意几点:

    # 检测是否有erlang服务或应用,如果有,则kill
    root@debian:/hamster/tools# ps -ef | grep erl | grep -v grep
    root@debian:/hamster/tools#
    # 需要删除当初安装ERlang账号对应home目录下面的配置文件
    root@debian:/hamster/tools# cd
    root@debian:~# ls -la
    total 56
    drwx------ 4 root root 4096 Dec 2 11:55 .
    drwxr-xr-x 19 root root 4096 Dec 1 12:58 ..
    -rw------- 1 root root 7358 Dec 1 17:41 .bash_history
    -rw-r--r-- 1 root root 613 Dec 1 13:19 .bashrc
    -r-------- 1 root root 20 Dec 1 00:00 .erlang.cookie
    -rw------- 1 root root 20 Dec 2 11:55 .lesshst
    -rw-r--r-- 1 root root 161 Jul 9 2019 .profile
    drwx------ 2 root root 4096 Nov 30 19:21 .ssh
    drwxr-xr-x 2 root root 4096 Dec 1 16:24 .vim
    -rw------- 1 root root 10657 Dec 2 11:51 .viminfo
    -rw-r--r-- 1 root root 27 Dec 1 13:43 .vimrc
    root@debian:~# rm -rf .erlang.cookie
    root@debian:~# cd /hamster/
    root@debian:/hamster# ls
    dotnet8 erlang27 postgresql17 tools
    # 删除安装目录
    root@debian:/hamster# rm -rf erlang27/
    # 删除环境配置或服务配置文件
    # 如:/etc/profile
    # 如:/root/.bashrc

安装RabbitMQ4

下载路径:

  1. 安装基本服务

    当前安装的是预编译版本,所以解压后既可以使用。

    # root@debian:/hamster/tools# 
    cd /hamster/tools
    mkdir -p /hamster/rabbitmq4
    # --strip-components=1 用于剔除压缩包中自上而下的第一层目录,即去除压缩包中默认的顶层目录,包文件将会被直接解压到/rabbitmq4/目录下
    tar -xvf rabbitmq-server-generic-unix-4.0.5.tar.xz -C /hamster/rabbitmq4 --strip-components=1
    # 修改路径信息(其他系统,如EC2,还需要设置root账号下的~/.bashrc配置文件,否则启动后不会自动读取/etc/profile配置)

    root@debian:/hamster/tools# vim /etc/profile

    export ERLPATH=/hamster/erlang27
    export RABPATH=/hamster/rabbitmq4

    export PATH=$PATH:$ERLPATH/bin:$RABPATH/sbin
    root@debian:/hamster/tools# source /etc/profile
    # 启用Web管理界面
    root@debian:/hamster/tools# cd /hamster/rabbitmq4/sbin/
    root@debian:/hamster/rabbitmq4/sbin# ls
    rabbitmqctl rabbitmq-diagnostics rabbitmq-plugins rabbitmq-server rabbitmq-upgrade
    rabbitmq-defaults rabbitmq-env rabbitmq-queues rabbitmq-streams vmware-rabbitmq
    root@debian:/hamster/rabbitmq4/sbin# ./rabbitmq-plugins enable rabbitmq_management
    Enabling plugins on node rabbit@debian:
    rabbitmq_management
    The following plugins have been configured:
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@debian...
    The following plugins have been enabled:
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_web_dispatch

    set 3 plugins.
    Offline change; changes will take effect at broker restart.
    # 如果需要的话,可以激活MQTT协议
    root@debian:/hamster/rabbitmq4/sbin# ./rabbitmq-plugins enable rabbitmq_mqtt
    Enabling plugins on node rabbit@Hamster:
    rabbitmq_mqtt
    The following plugins have been configured:
    rabbitmq_management
    rabbitmq_management_agent
    rabbitmq_mqtt
    rabbitmq_web_dispatch
    Applying plugin configuration to rabbit@Hamster...
    The following plugins have been enabled:
    rabbitmq_mqtt

    started 1 plugins.
  2. 配置服务选项

    默认RabbitMQ在向consumer推送消息后,默认超时时间30分钟。如果消费者接收到的消息在该计时器触发前没有被确认,代理会强制关闭该通道。这确保了那些从不确认消息的故障消费者不会无限期地占用消息。如果确认有消息处理超过30分钟,则需要在rabbitmq.conf中进行额外配置:

    配置文件:rabbitmq.conf

    root@debian:/hamster/rabbitmq4/etc/rabbitmq# pwd
    /hamster/rabbitmq4/etc/rabbitmq
    # 创建rabbitmq.conf文件,默认是没有的,修改,将超时时间设置为4小时
    consumer_timeout = 14400000
    # 运行guest用户从任何机器上登录,默认只能localhost登录,修改配置可以从任何机器上访问站点。
    loopback_users.guest = false

    root@debian:/hamster/rabbitmq4/etc/rabbitmq# vi rabbitmq.conf
    # 手工运行RabbitMQ服务
    root@debian:/hamster/rabbitmq4/etc/rabbitmq# rabbitmq-server
    # 测试Web站点,如:http://192.168.136.130:15672/#/
    ##后台模式运行
    root@debian:/hamster/rabbitmq4/etc/rabbitmq# rabbitmq-server -detached
    ##查询状态
    root@debian:/hamster/rabbitmq4/etc/rabbitmq# rabbitmq-diagnostics status
    ##关闭服务
    root@debian:/hamster/rabbitmq4/etc/rabbitmq# rabbitmqctl stop
  3. 设置自启服务

    如果服务需要在服务器启动后自动运行,需要先创建.service服务文件,并在文件中配置RabbitMQ服务涉及到的路径参数,以及运行命令等。

    因为通过systemctl运行服务时,可能无法加载同命令行模式的环境变量信息,所以需要在.service文件中通过Environment配置项添加对应的路径信息。同时,文件中配置的环境变量信息也不会在运行后,影响外部环境变量内容。

    root@debian:/hamster/rabbitmq4# vi /etc/systemd/system/rabbitmq.service
    [Unit]
    Description=RabbitMQ Service
    After=network.target

    [Service]
    Type=simple
    User=root
    Group=root
    Environment=PATH=$PATH:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/hamster/erlang27/bin:/hamster/rabbitmq4/sbin
    ExecStart=/hamster/rabbitmq4/sbin/rabbitmq-server
    ExecStop=/hamster/rabbitmq4/sbin/rabbitmqctl stop
    restart=always

    [Install]
    WantedBy=multi-user.target
    # root@debian:/hamster/rabbitmq4#
    systemctl daemon-reload
    systemctl enable rabbitmq.service
    # Created symlink /etc/systemd/system/multi-user.target.wants/rabbitmq.service → /etc/systemd/system/rabbitmq.service.

    systemctl start rabbitmq.service
    systemctl status rabbitmq.service
    # 如果服务有问题,可以查看服务的历史日志
    root@debian:/hamster/rabbitmq4# journalctl -u rabbitmq.service
  4. 创建应用用户

    root@debian:/home/hamster# rabbitmqctl add_user hamster hamster123
    Adding user "hamster" ...
    Done. Dont forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
    root@debian:/home/hamster# rabbitmqctl set_user_tags hamster administrator
    Setting tags for user "hamster" to [administrator] ...
    root@debian:/home/hamster# rabbitmqctl set_permissions -p / hamster ".*" ".*" ".*"
    Setting permissions for user "hamster" in vhost "/" ...
    root@debian:/home/hamster# rabbitmqctl list_users
    Listing users ...
    user tags
    hamster [administrator]
    guest [administrator]

安装PostgreSQL17

下载地址:

  1. 配置基础环境

    # 安装构建必需的工具和库
    # root@debian:/hamster/tools#
    apt install -y build-essential libreadline-dev zlib1g-dev bison flex
    # 安装ICU功能模块
    apt install -y libicu-dev
    # 添加uuid功能
    apt install -y uuid-dev
    # 下面的命令用于查询ICU功能模块安装的地址,默认在/usr/include和/usr/lib下面,并添加到configure参数中
    root@vm-debian12-ETL:/usr/local/lib# dpkg -L libicu-dev
  2. 安装基础服务

    # root@debian:/hamster/tools# 
    cd /hamster/tools
    tar -zxvf postgresql-17.2.tar.gz
    cd postgresql-17.2
    ./configure --prefix=/hamster/postgresql17 --with-uuid=e2fs ICU_CFLAGS='-I/usr/include' ICU_LIBS='-L/usr/lib -licui18n -licuuc -licudata'
    make && make install
    # 安装uuid
    cd contrib/uuid-ossp/
    make && make install
    cd /hamster/postgresql17/share/extension/
    ls
    # plpgsql--1.0.sql plpgsql.control uuid-ossp--1.0--1.1.sql uuid-ossp--1.1.sql uuid-ossp.control
  3. 创建操作用户

    创建用户后,并创建data数据目录,并修改目录权限。该用户时操作系统用户,数据库默认会有postgres账号,数据库初始化后,需要手工调整管理员postgres账号密码。

    # root@debian:/hamster/postgresql17/share/extension# 
    addgroup postgres
    # bash: addgroup: command not found
    export PATH=$PATH:/usr/sbin

    addgroup postgres
    # Adding group postgres (GID 1001) ...
    # Done.
    # 创建操作用户
    adduser -ingroup postgres postgres
    id postgres
    # uid=1001(postgres) gid=1001(postgres) groups=1001(postgres),100(users)
    cd /hamster/postgresql17
    root@debian:/hamster/postgresql17# ls
    bin include lib share
    # 创建数据目录。-p 选项表示如果目录已经存在,则不会报错
    # root@debian:/hamster/postgresql17#
    # 递归地将数据目录的所有者和组更改为 postgres 用户和组
    # 递归地设置数据目录的权限为 700,即只有 postgres 用户可以读、写和执行该目录及其子目录和文件。
    cd /hamster/postgresql17
    mkdir -p /hamster/postgresql17/data
    chown -R postgres:postgres /hamster/postgresql17/data/
    chmod -R 700 /hamster/postgresql17/data/
    ls -la

    total 28
    drwxr-xr-x 7 root root 4096 Dec 1 16:39 .
    drwxr-xr-x 6 root root 4096 Dec 1 14:37 ..
    drwxr-xr-x 2 root root 4096 Dec 1 14:37 bin
    drwx------ 2 postgres postgres 4096 Dec 1 16:39 data
    drwxr-xr-x 6 root root 4096 Dec 1 14:37 include
    drwxr-xr-x 4 root root 4096 Dec 1 15:20 lib
    drwxr-xr-x 6 root root 4096 Dec 1 14:37 share
  4. 配置环境变量

    root@debian:/hamster/postgresql17# cd /home/postgres/
    root@debian:/home/postgres# vi .bashrc

    # 在配置文件末添加下述路径信息
    export PGHOME=/hamster/postgresql17
    export PGDATA=/hamster/postgresql17/data

    export PATH=$PATH:$PGHOME/bin
    root@debian:/home/postgres# source .bashrc
  5. 初始化数据库

    初始化数据库后,应配置限制远程对数据库的访问,或限定为特定的IP地址,同时需要手工调整管理员Postgres账号密码。

    root@debian:/home/postgres# su postgresus
    postgres@debian:~$ initdb
    initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.

    Success. You can now start the database server using:

    pg_ctl -D /hamster/postgresql17/data -l logfile start
    postgres@debian:/hamster/postgresql17/data$ vi postgresql.conf
    # 修改配置文件,修改为*,允许其他机器可以连接改数据库
    listen_addresses = '*' # what IP address(es) to listen on;
    # comma-separated list of addresses;
    # defaults to 'localhost'; use '*' for all
    # (change requires restart)
    #port = 5432 # (change requires restart)
    max_connections=100 # 调整数据库最大用户连接数,可以适当调整

    postgres@debian:/hamster/postgresql17/data$ vi pg_hba.conf
    # IPv4 local connections:
    ### 下面可选修改,配置后所有机器均可以无密码访问数据库(仅仅在安全的环境下可用,不建议修改)
    # host all all 0.0.0.0/0 trust
    # 下面配置将限制仅IP地址为239的服务器可远程连接数据库,且需要密码访问
    host all all 192.168.13.239/32 md5
    # 本地也需要使用密码访问。如果设置为:trust,则可以无密码登陆
    host all all 127.0.0.1/32 md5
    # 启动数据库服务测试
    postgres@debian:/hamster/postgresql17/data$ pg_ctl -D /hamster/postgresql17/data -l logfile start
    waiting for server to start.... done
    server started

    # 登陆数据库,修改管理员postgres账号的默认密码,修改后的密码为:abc123456
    postgres@debian:/hamster/postgresql17/data$ psql
    psql (17.2)
    Type "help" for help.

    postgres=# alter user postgres with password 'abc123456';
    ALTER ROLE
    postgres=# \q
    postgres@debian:~$ pg_ctl stop
    waiting for server to shut down.... done
    server stopped
  6. 配置自主启动

    通过创建.service文件来支持PostgreSQL服务的启动

    postgres@debian:/hamster/postgresql17/data$ exit
    exit
    # Type类型针对PostgreSQL需要配置成forking比较合适
    # 注意:logfile一定要带上绝对路径,否则可能会因为权限不足无法启动。(相对路径不是data目录下)
    root@debian:/home/postgres# vi /etc/systemd/system/postgresql.service
    [Unit]
    Description=PostgreSQL Database Server
    After=network.target

    [Service]
    Type=forking
    User=postgres
    Group=postgres
    ExecStart=/hamster/postgresql17/bin/pg_ctl start -D /hamster/postgresql17/data -l /hamster/postgresql17/data/logfile
    ExecStop=/hamster/postgresql17/bin/pg_ctl stop -D /hamster/postgresql17/data
    ExecReload=/hamster/postgresql17/bin/pg_ctl reload -D /hamster/postgresql17/data

    [Install]
    WantedBy=multi-user.target

    # root@debian:/home/postgres#
    systemctl daemon-reload
    systemctl enable postgresql.service
    systemctl start postgresql.service
    systemctl status postgresql.service
    # 如果服务有问题,可以查看服务的历史日志
    root@debian:/home/postgres# journalctl -u postgresql.service

安装.Net 8 SDK环境

下载路径: 官网地址

本次安装使用的SDK文件为预编译版本,所以解压后配置路径即可使用。

# 
cd /hamster/tools/
mkdir -p /hamster/dotnet8
tar -zxf dotnet-sdk-8.0.404-linux-x64.tar.gz -C /hamster/dotnet8
cd /hamster/dotnet8/
ls
# dotnet host LICENSE.txt packs sdk sdk-manifests shared templates ThirdPartyNotices.txt
# 添加.net的访问路径
root@debian:/hamster/dotnet8# vi /etc/profile
export DOTNET_ROOT=/hamster/dotnet8
export ERLPATH=/hamster/erlang27
export RABPATH=/hamster/rabbitmq_server-3.13.0

export PATH=$PATH:$ERLPATH/bin:$RABPATH/sbin:$DOTNET_ROOT

root@debian:/hamster/dotnet8# source /etc/profile
root@debian:/hamster/dotnet8# dotnet --version
8.0.404

部署Hamster2024系统

部署系统时,需要先恢复仓鼠系统的备份数据库,在解压系统安装包后,需要记得先依据当前服务器配置情况,调整好安装目录下面的配置文件appsetting.Linux.json。该文件的具体配置信息可以参考本章最后一个小节内容。

  1. 恢复系统数据库

    回复数据库前,先确认新创建的数据库是否激活uuid扩展。

    select * from pg_extension;
    select * from pg_available_extensions;
    CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
  2. 部署Portal服务

    cd /hamster/tools
    unzip hamster_portal_linux_2024.zip -d /hamster/hamster-portal
    chmod +X /hamster/hamster-portal/FlyEnter.Hamster.Portal.dll
    vi /hamster/hamster-portal/appsettings.Linux.json

    ## 参考本章节最后一个小节的内容,先调整部署目录下面的配置文件appsettings.Linux.json
    ## 确保系统和PostgreSQL和RabbitMQ的连接信息和服务端口信息正确
    ## 再按后续步骤,启动服务

    # 创建服务启动配置文件
    root@debian:/hamster/tools#
    vi /etc/systemd/system/hamster-portal.service
    [Unit]
    Description=Hamster Portal Service
    After=network.target

    [Service]
    Type=simple
    Environment=DOTNET_ROOT=/hamster/dotnet8
    Environment=ASPNETCORE_ENVIRONMENT=Linux
    Environment=PATH=$PATH:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/hamster/dotnet8
    ExecStart=/hamster/dotnet8/dotnet /hamster/hamster-portal/FlyEnter.Hamster.Portal.dll
    WorkingDirectory=/hamster/hamster-portal/
    Restart=always
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=Hamster Portal
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

    #root@debian:/hamster/tools#
    cd /hamster/tools
    systemctl daemon-reload
    systemctl enable hamster-portal.service
    # Created symlink /etc/systemd/system/multi-user.target.wants/hamster-portal.service → /etc/systemd/system/hamster-portal.service.
    systemctl start hamster-portal.service
    systemctl status hamster-portal.service

    ● hamster-portal.service - Hamster Portal Service
    Loaded: loaded (/etc/systemd/system/hamster-portal.service; enabled; preset: enabled)
    Active: active (running) since Wed 2024-12-04 12:41:01 CST; 15s ago
    Main PID: 2519 (dotnet)
    Tasks: 26 (limit: 19096)
    Memory: 110.9M
    CPU: 1.251s
    CGroup: /system.slice/hamster-portal.service
    └─2519 /hamster/dotnet8/dotnet /hamster/hamster-portal/FlyEnter.Hamster.Portal.dll
  3. 部署Scheduler服务

    cd /hamster/tools
    unzip /hamster/tools/hamster_scheduler_linux_2024.zip -d /hamster/hamster-scheduler/
    chmod +x /hamster/hamster-scheduler/FlyEnter.Hamster.Scheduler.dll
    vi /hamster/hamster-scheduler/appsettings.Linux.json

    ## 参考本章节最后一个小节的内容,先调整部署目录下面的配置文件appsettings.Linux.json
    ## 确保系统和PostgreSQL和RabbitMQ的连接信息和服务端口信息正确
    ## 再按后续步骤,启动服务

    # 创建服务启动配置文件
    root@debian:/hamster/tools#
    vi /etc/systemd/system/hamster-scheduler.service
    [Unit]
    Description=Hamster Scheduler Service
    After=network.target

    [Service]
    Type=simple
    Environment=DOTNET_ROOT=/hamster/dotnet8
    Environment=ASPNETCORE_ENVIRONMENT=Linux
    Environment=PATH=$PATH:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/hamster/dotnet8
    ExecStart=/hamster/dotnet8/dotnet /hamster/hamster-scheduler/FlyEnter.Hamster.Scheduler.dll
    WorkingDirectory=/hamster/hamster-scheduler/
    Restart=always
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=Hamster Scheduler 2024
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

    # root@debian:/hamster/tools#
    systemctl daemon-reload
    systemctl enable hamster-scheduler.service
    # Created symlink /etc/systemd/system/multi-user.target.wants/hamster-scheduler.service → /etc/systemd/system/hamster-scheduler.service.
    systemctl start hamster-scheduler.service
    systemctl status hamster-scheduler.service

  4. 部署Slaver服务

    cd /hamster/tools
    unzip /hamster/tools/hamster_slaver_linux_2024.zip -d /hamster/hamster-slaver
    chmod +x /hamster/hamster-slaver/FlyEnter.Hamster.Slaver.dll

    vi /hamster/hamster-slaver/appsettings.Linux.json

    ## 参考本章节最后一个小节的内容,先调整部署目录下面的配置文件appsettings.Linux.json
    ## 确保系统和PostgreSQL和RabbitMQ的连接信息和服务端口信息正确
    ## 再按后续步骤,启动服务

    # 创建服务启动配置文件
    root@debian:/hamster/tools# vi /etc/systemd/system/hamster-slaver.service
    [Unit]
    Description=Hamster Slaver Service
    After=network.target

    [Service]
    Type=simple
    Environment=DOTNET_ROOT=/hamster/dotnet8
    Environment=ASPNETCORE_ENVIRONMENT=Linux
    Environment=PATH=$PATH:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/hamster/dotnet8
    ExecStart=/hamster/dotnet8/dotnet /hamster/hamster-slaver/FlyEnter.Hamster.Slaver.dll
    WorkingDirectory=/hamster/hamster-slaver/
    Restart=always
    RestartSec=10
    KillSignal=SIGINT
    SyslogIdentifier=Hamster Slaver 2024
    User=root
    Group=root

    [Install]
    WantedBy=multi-user.target

    root@debian:/hamster/tools#
    systemctl daemon-reload
    systemctl enable hamster-slaver.service
    # Created symlink /etc/systemd/system/multi-user.target.wants/hamster-slaver.service → /etc/systemd/system/hamster-slaver.service.
    systemctl start hamster-slaver.service
    systemctl status hamster-slaver.service

    ● hamster-slaver.service - Hamster Slaver Service
    Loaded: loaded (/etc/systemd/system/hamster-slaver.service; enabled; preset: enabled)
    Active: active (running) since Wed 2024-12-04 14:48:10 CST; 10s ago
    Main PID: 9923 (dotnet)
    Tasks: 29 (limit: 19096)
    Memory: 51.7M
    CPU: 1.736s
    CGroup: /system.slice/hamster-slaver.service
    └─9923 /hamster/dotnet8/dotnet /hamster/hamster-slaver/FlyEnter.Hamster.Slaver.dll
  5. 修改配置信息

    依据当前服务器配置和数据库安装配置信息来调整仓鼠系统的配置信息。对应的配置文件为各个Hamster服务对应目录下面的appsettings.Linux.json文件。

    下文为配置文件中的主要修改节点信息:

    {
    "Kestrel": {
    "Endpoints": {
    "Http": {
    //服务端口,如果没有冲突,可以保持不变
    "Url": "http://*:42020"
    }
    }
    },
    "HamsterConfig": {
    //修改对应的数据库连接信息,包括地址和账号、密码。
    "ConnectionSet": {
    "SupportDB": {
    "DataSourceCategory": "PostgreSQL",
    "ConnectionString": "Host=127.0.0.1;Database=hamster_support_2024;User ID=postgres;Password=PASSWORD;Pooling=true;MinPoolSize=5;MaxPoolSize=100;"
    },
    "LogDB": {
    "DataSourceCategory": "PostgreSQL",
    "ConnectionString": "Host=127.0.0.1;Database=hamster_support_log_2024;User ID=postgres;Password=PASSWORD;Pooling=true;MinPoolSize=2;MaxPoolSize=100;"
    }
    },
    "EnvParamSet": {
    "ClientKey": "app-slaver",
    //Hamster服务所需的服务器端本地工作目录
    "WorkingFolder": "/hamster/working_folder",
    }
    },
    "HangfireSvcConfig": {
    "DashboardPath": "/myHangfire",
    "DashboardTitle": "Hamster Scheduler Service 2024",
    "DataSourceCategory": "PostgreSQL",
    //调整对应的数据库地址和账号密码
    "DataSourceConnecion": "Host=127.0.0.1;Database=hamster_support_hf_2024;User ID=postgres;Password=PASSWORD;Pooling=true;MinPoolSize=2;MaxPoolSize=100;"
    },
    "RabbitSvcConfig": {
    //RabbitMQ部署机器的IP地址,本机部署可以不变
    "HostName": "127.0.0.1",
    //具有管理权限的账号和密码
    "UserName": "hamster",
    "Password": "xxxxx",
    },
    "SlaverSvcConfig": {
    //Slaver工作节点部署机器的IP地址,本机部署可以不变
    "HostIP": "127.0.0.1",
    //服务端口,如果没有冲突,可以保持不变
    "Port": 42020
    }
    }