D. 使用Podman部署(RHEL)#
本指南帮助您在本地机器或运行Redhat发行版的云托管虚拟机上部署Datasite服务器。
先决条件#
Podman安装: 查看Podman安装指南并按照说明在您的系统上安装Podman
如果在安装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:datasite或gateway--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
在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服务器进行交互。