基于应用程序及其可用环境构建两级菜单的实用程序。
pyjump的Python项目详细描述
跳跃
简介
基于应用程序及其可用环境构建两级菜单的实用程序。我们的设置是 此实用程序驻留在“跳转”服务器上,每次用户连接到该服务器(通过ssh),菜单脚本都是 执行。
在我们当前的设置中,有两种服务器:一种安装了serverpilot,另一种是 一个普通的ubuntu安装(如下所述)
此脚本还处理一些不在JumpGate中的应用程序/服务器。
菜单是基于服务器的json响应构建的。响应如下:
{"items":[{"id":"b84b07c8-738e-4088-969f-0ee4c822fd3a","in_jumpgate":false,"name":"test-app","servers":[{"display_name":"Staging","id":"939bf2ce-d0e0-42b8-8600-f7f7ef5db72b","ip":"1.2.3.4","is_serverpilot":true,"name":"staging","port":222,"user":"serverpilot"},{"display_name":"Production","id":"6a7f9169-5fe3-49d2-8eea-bfafcc53f4de","ip":"1.2.3.4","is_serverpilot":false,"name":"prod","port":222,"user":"root"}]},{"id":"81a1afa3-f610-4b64-935f-7e93c025209b","in_jumpgate":true,"last_backup":1538352010,"name":"another-test-app","servers":[{"created_at":1533644177,"display_name":"Staging","id":"939bf2ce-d0e0-42b8-8600-f7f7ef5db72b","ip":"1.2.3.4","is_serverpilot":true,"name":"staging","port":222,"updated_at":1533808205,"user":"serverpilot"},{"created_at":1533644177,"display_name":"Acceptance","id":"939bf2ce-d0e0-42b8-8600-f7f7ef5db72b","ip":"1.2.3.4","is_serverpilot":true,"name":"acceptance","port":222,"updated_at":1533808205,"user":"serverpilot"}]}]}
这将创建一个如下菜单:
注意,只显示第二个项,因为第一个项的属性in_jumpgate
设置为false。当你选择
一个应用程序,您将获得其可用服务器(环境)的列表:
选择项目后,ssh连接将转发到该服务器。
安装
在安装JumpGate之前,需要安装对话框包。如果 你在macos、apt、yum或其他什么网站上。
您可以通过PIP安装跨接栅极:
pip install pyjump
默认情况下,JumpGate将在主目录中查找名为.jump.env
的文件,该文件包含以下值:
- 身份验证密钥:如果在检索项目时使用任何身份验证。如果没有,就空着。
- auth_header:如果使用身份验证(通过头),请将其设置为头的值。
- 端点:从何处获取应用程序列表的api端点。
如果要为该文件指定其他位置,可以使用--env-file
标志。喜欢这样:
jump --env-file=/other/location/.env
使用量
如上所述,有两种使用方法。一个在您的计算机上本地,另一个在一个中央服务器上。 后者非常适合团队,因为每个用户只需要通过ssh连接到中心服务器,每个人都会看到相同的结果 应用程序和服务器(目前它没有内置权限检查)。
本地
如果您想在本地运行脚本(假设您已经运行了上面的安装脚本),只需要使用jump
。
在中央服务器上
安装脚本之后,需要做一些事情。
- 在
/etc/skel
中创建一个.ssh文件夹,并使用ssh-keygen -t rsa
生成一个私有(和公共)密钥。这会怎么样 do是让每个创建的用户在连接到远程服务器时具有相同的密钥。 - 将生成的密钥复制到要从脚本访问的任何服务器上的任何
authorized_keys
文件中。 - 在
.bash_profile
文件中添加以下内容:jump && exit
。这将在每个用户登录时执行 当用户决定退出时,它也将退出跳转服务器上的会话。
然后您可以创建任何用户并让他们使用JumpGate。
作为一个额外的安全步骤,向authorized_keys
添加一个用户自己的密钥(也可以是从他们自己的笔记本电脑或个人电脑或你拥有的东西)。
在Jumpgate上为用户归档。
待办事项:
- 图安装后处理.env文件的方法
- 添加到pypi以便于安装