项目来源:GitHub – GreenDamTan/fastapi-dls_mirror,支持14.3到17.2的vGPU。
测试环境
在PVE虚拟机中采用 ubuntu24.04 server最小化安装,。
pve硬件配置如下图,实际其实512M内存,4G硬盘就够用了。确保你的时间在 fastapi-dls 服务器和客户端上设置相同。
安装完成后修改root密码
sudo passwd root
因为是最小化安装,没有编辑器,我们装个nano
sudo apt install nano
编辑ssh配置文件允许root登录
sudo nano /etc/ssh/sshd_config
找到这一行
#PermitRootLogin prohibit-password
修改为
PermitRootLogin yes
Ctrl+X 按Y保存退出
重启SSH服务
sudo systemctl restart sshd
修改IP为静态IP,文件名不一定是这个。
sudo nano /etc/netplan/00-installer-config.yaml
示例
network:
ethernets:
ens18:
dhcp4: no
addresses:
- 192.168.5.222/24
routes:
- to: default
via: 192.168.5.200
nameservers:
addresses:
- 223.5.5.5
version: 2
重启
安装FastAPI-DLS
1.更新并安装python工具
apt-get update && apt-get install git python3-venv python3-pip
2.拉取安装 FastAPI-DLS
这一步要使用代理,有过几次不成功,大概率是下载时出错不完整。
WORKING_DIR=/opt/fastapi-dls
mkdir -p $WORKING_DIR
cd $WORKING_DIR
git clone https://git.collinwebdesigns.de/oscar.krause/fastapi-dls .
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
deactivate
chown -R www-data:www-data $WORKING_DIR
3.创建密钥对和 Web 服务器证书
WORKING_DIR=/opt/fastapi-dls/app/cert
mkdir -p $WORKING_DIR
cd $WORKING_DIR
# create instance private and public key for singing JWT's
openssl genrsa -out $WORKING_DIR/instance.private.pem 2048
openssl rsa -in $WORKING_DIR/instance.private.pem -outform PEM -pubout -out $WORKING_DIR/instance.public.pem
# create ssl certificate for integrated webserver (uvicorn) - because clients rely on ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $WORKING_DIR/webserver.key -out $WORKING_DIR/webserver.crt
chown -R www-data:www-data $WORKING_DIR
openssl生成证书时会要你填一些信息 示例
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Beijing
Locality Name (eg, city) [Default City]:Beijing
Organization Name (eg, company) [Default Company Ltd]:My Company Inc.
Organizational Unit Name (eg, section) []:IT Department
Common Name (eg, your name or your server's hostname) []:www.hyjaer.com
测试服务
cd /opt/fastapi-dls/app
sudo -u www-data /opt/fastapi-dls/venv/bin/uvicorn main:app --app-dir=/opt/fastapi-dls/app
# or
su - www-data -c "/opt/fastapi-dls/venv/bin/uvicorn main:app --app-dir=/opt/fastapi-dls/app"
4创建配置文件 192.168.5.222改成自己的IP
mkdir /etc/fastapi-dls
cat <<EOF >/etc/fastapi-dls/env
DLS_URL=192.168.5.222
DLS_PORT=443
LEASE_EXPIRE_DAYS=90
DATABASE=sqlite:////opt/fastapi-dls/app/db.sqlite
EOF
5创建服务
BASE_DIR=/opt/fastapi-dls
SERVICE_USER=dls
cat <<EOF >/etc/systemd/system/fastapi-dls.service
[Unit]
Description=Service for fastapi-dls vGPU licensing service
After=network.target
[Service]
User=${SERVICE_USER}
AmbientCapabilities=CAP_NET_BIND_SERVICE
WorkingDirectory=${BASE_DIR}/app
EnvironmentFile=/etc/fastapi-dls/env
ExecStart=${BASE_DIR}/venv/bin/uvicorn main:app \\
--env-file /etc/fastapi-dls/env \\
--host \$DLS_URL --port \$DLS_PORT \\
--app-dir ${BASE_DIR}/app \\
--ssl-keyfile ${BASE_DIR}/app/cert/webserver.key \\
--ssl-certfile ${BASE_DIR}/app/cert/webserver.crt \\
--proxy-headers
Restart=always
KillSignal=SIGQUIT
Type=simple
NotifyAccess=all
[Install]
WantedBy=multi-user.target
EOF
启用服务
systemctl daemon-reload
systemctl start fastapi-dls.service
systemctl enable fastapi-dls.service
Docker
docker安装只需要做“3.创建密钥对和 Web 服务器证书”,然后直接拉docer镜像即可
docker volume create dls-db
docker run -e DLS_URL=‘hostname -i' -e DLS_PORT=443 -p 443:443 -v $WORKING_DIR:/app/cert -v dls-db:/app/database --restart always collinwebdesigns/fastapi-dls:latest
使用
windows
#windows获取授权 需要管理员powershell运行下列命令,然后重启:
curl.exe --insecure -L -X GET https://192.168.5.222/-/client-token -o "C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\client_configuration_token_$($(Get-Date).tostring('dd-MM-yy-hh-mm-ss')).tok"
linux
#linux获取授权 需要root运行下列命令:
curl --insecure -L -X GET https://192.168.5.222/-/client-token -o /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok
评论0