D. 使用Podman部署(RHEL)#

本指南帮助您在本地机器或运行Redhat发行版的云托管虚拟机上部署Datasite服务器。

先决条件#

如果在安装podman时遇到问题,请参考Troubleshooting指南,解决我们在基于Redhat的系统上安装Podman时发现的常见问题。

测试 Podman 是否正常工作#

要测试您的先决条件是否已正确安装,请尝试运行:

podman ps

这不应该返回任何错误。如果出现错误,请检查您是否有运行Podman命令的正确权限。

服务器部署#

提供了一个单行便捷脚本来通过Docker启动您的服务器。您可以在执行前阅读该脚本。

第一步:下载脚本#

按以下方式下载:

curl -o setup.sh https://raw.githubusercontent.com/OpenMined/PySyft/syft-setup-script/scripts/podman-setup.sh

步骤2:执行脚本#

要部署您的服务器,可以使用一系列参数来设置您希望启动的服务器类型及其配置:

  • --version-v: 您想设置的PySyft版本

  • --name-n: 您想为服务器指定的任意名称

  • --side-s: 高或低 (未指定时默认为 high)

  • --root-password-password: 您想为root用户设置的密码(如果未指定,默认值为changethis

  • --root-email-email: 您想为root用户设置的邮箱 (未指定时默认为 info@openmined.org)

  • --type-t: datasitegateway

  • --port-p: 指定要分配的端口号

bash setup.sh -v {{VERSION}} -n {{SERVER_NAME}} -s {{SERVER_SIDE}} -t {{SERVER_TYPE}} -p {{PORT}} --password {{PASSWORD}} --email {{EMAIL}}

注意:

  • 您可以访问文档的这一部分来了解不同的服务器类型及其角色,以及不同的服务器端。

示例:#

该命令的示例如下所示:

curl -o setup.sh https://raw.githubusercontent.com/OpenMined/PySyft/syft-setup-script/scripts/docker-setup.sh  && bash setup.sh -v 0.8.2-beta.6 -n my_server_1 -s high -t datasite -p 8081 --password mypassword --email myemail

使用滞留模式

当用户会话结束时,Podman会退出无根(rootless)容器;解决方法是通过以下命令运行常驻模式: loginctl enable-linger $UID。关于此问题的更多信息可查阅此处以及这个故障排除章节

在Jupyter Notebook中启动客户端#

在这一步中,您需要一个客户端服务器来与刚刚部署的PySyft服务器进行交互。这里的客户端是一个运行与服务器容器相同版本PySyft的Jupyter笔记本。

这是一个便捷的设置方式,但你也可以在Python3.10+环境和所需PySyft版本中自行启动Jupyter Notebook。

要使用容器方式启动客户端:

podman run --rm -it --network=host docker.io/openmined/syft-client:${VERSION}

其中 ${VERSION} 是您想要运行的 PySyft Client 版本号。该版本必须与您在部署步骤中之前传递的版本相同。

保持笔记本运行#

通常,当您退出终端时,Jupyter notebook实例会终止。为了让它在关闭终端后仍能持续运行以便随时访问,建议在screen或tmux会话中运行该命令。有关如何使用screen的更多信息,请参阅此链接:Screen Command 或 tmux:Tmux Command

访问笔记本#

如果您在本地机器上运行了上述命令,应该能看到笔记本运行的本地URL,并在浏览器中访问它。

如果您在虚拟机上运行,可能需要在本地浏览器访问笔记本时执行额外步骤。考虑到上述命令是在映射到主机网络的容器中运行预打包的Jupyter笔记本,有几种方法可以在本地浏览器中访问该笔记本。

如何在浏览器中访问远程笔记本

  • 您可以使用SSH端口转发在本地浏览器中访问notebook。具体操作方法可参考此链接示例:Jupyter SSH Port Forwarding

  • 你也可以在虚拟机的网络安全组中开放8888端口,然后通过本地浏览器访问http://<VM_IP>:8888来使用笔记本。

如果此步骤成功,您将被引导至浏览器中的Jupyter笔记本界面。请创建一个新笔记本并运行以下命令:

import syft as sy

sy.login(url="localhost:80", email="[email protected]", password="changethis")

 # Pass the email and password used to create the server or default as above is no email and password was used during server creation

如果一切顺利,您应该能够登录高安全区或低安全区域(取决于您上面的选择)。现在您可以在客户端服务器上开始运行PySyft命令,与您刚部署的PySyft服务器进行交互。