部署 Debian12 版本
本案例基于Debian 12平台为例部署。
更新系统环境
-
更新系统源包
可选项,可以选择部署国内包数据源
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 -
更新本地时区
# 默认时区格式
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 -
创建工作目录
root@debian:/home/hamster# mkdir /hamster
root@debian:/home/hamster# mkdir /hamster/tools
# 设置权限,便于客户端文件上传
root@debian:/home/hamster# chmod 777 /hamster/tools/ -
更新基础应用
因为部分组件是基于源代码编译发布,所以需要安装基础的工具包。
- 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
下载路径:
-
安装服务
# 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(). -
卸载服务
在卸载已有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
下载路径:
-
安装基本服务
当前安装的是预编译版本,所以解压后既可以使用。
# 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. -
配置服务选项
默认RabbitMQ在向consumer推送消息后,默认超时时间30分钟。如果消费者接收到的消息在该计时器触发前没有被确认,代理会强制关闭该通道。这确保了那些从不确认消息的故障消费者不会无限期地占用消息。如果确认有消息处理超过30分钟,则需要在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 -
设置自启服务
如果服务需要在服务器启动后自动运行,需要先创建.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 -
创建应用用户
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
下载地址:
-
配置基础环境
# 安装构建必需的工具和库
# 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 -
安装基础服务
# 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 -
创建操作用户
创建用户后,并创建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 -
配置环境变量
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 -
初始化数据库
初始化数据库后,应配置限制远程对数据库的访问,或限定为特定的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 -
配置自主启动
通过创建.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
。该文件的具体配置信息可以参考本章最后一个小节内容。
-
恢复系统数据库
回复数据库前,先确认新创建的数据库是否激活uuid扩展。
select * from pg_extension;
select * from pg_available_extensions;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; -
部署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 -
部署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 -
部署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 -
修改配置信息
依据当前服务器配置和数据库安装配置信息来调整仓鼠系统的配置信息。对应的配置文件为各个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
}
}