基于应用程序及其可用环境构建两级菜单的实用程序。

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以便于安装

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何修改打印板?   java Spring批处理JdbcCursorItemReader还是RepositoryItemReader?   java如何在JTable Swing中增加标题列的字体?   java在数组方面遇到问题,导致表达式非法启动   java如何为maven pom的某些部分关闭Eclipse代码格式化程序。xml   java Dropwizard登录代码   java Jersey 2.22:客户端的默认连接超时是多少?   java无法自动连接字段:javax。sql。数据来源   如何从java中的行列表中获取单词列表?   java JDBC批量更新和处理异常?   计算大根:bigdecimal/java   java如何在JavaCC语法中提到trycatch块   javasocket。getInetAddress()不返回任何内容   oracle SQL开发人员错误无法找到Java虚拟机   java我如何计算和显示未来5年每一年的投资价值   java如何关闭浏览器选项卡?   java如何在showMessageDialog中打印双2D数组?   java从站点抓取播放列表URL?   selenium中的java点击css按钮