FastAPI-DLS 安装

项目来源: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

评论0

显示验证码