位于内联网的 1U 机架服务器的服务器管理:如何在没有互联网连接的情况下部署 Web 应用程序和更新服务器?

位于内联网的 1U 机架服务器的服务器管理:如何在没有互联网连接的情况下部署 Web 应用程序和更新服务器?

一家跨国公司的销售部门聘请我担任软件顾问,为他们构建一个网络应用程序。

该网络应用程序根据其内部业务流程生成 Excel 文件。

这个 Web 应用程序已经完成,我告诉他们我需要在服务器上部署它。

他们的 IT 部门位于另一个国家,我们花了 6 个月的时间才获得服务器许可。经过大量文书工作和繁琐手续后,我们仍然没有看到任何服务器的迹象。

我们的解决办法是,销售部门会根据我的建议购买一台 1U 服务器。销售部门还在他们办公室所在楼层的实验室里找到了一个位置。实验室负责人允许我们在里面放置一台 1U 机架式服务器。

但是,我们有两个问题我无法回答。因此,我在这里寻求服务器管理专家的建议。

1) 实验室只允许机器连接到其内部内联网。我的 Web 应用程序可以通过 Web 浏览器访问,需要一个 URL。我考虑获取一个静态 IP 地址,以便销售部门可以通过http://some-static-ip/webapp

这意味着我们需要 IT 部门的帮助。经过过去 6 个月的繁琐手续,销售部门对于向他们索要静态内部 IP 地址感到不安。

我们能采取什么解决方法来避免向 IT 部门寻求帮助?

更新

我将采纳@MichaelHampton 的建议,并向 IT 部门咨询有关静态 IP 地址的问题。我现在的重点是第二个问题。

2)假设我们已经成功地在位于内部网内的这台服务器上部署了我的 Web 应用程序。

我们需要定期更新 Web 应用程序和操作系统。(我们可能会使用 ubuntu 12.04 服务器版本)

该服务器将没有互联网连接,因为其所在的实验室仅连接到内部网络。

我的代码放在 github 上,我已经准备好每月去一次,使用拇指驱动器更新 Web 应用程序的代码库。

但是,我不知道在没有互联网访问的情况下该怎么做才能更新操作系统。

是否有我可以考虑的硬件/软件解决方案来解决这个问题?如果合理的话,我相信我可以说服销售部门为这样的解决方案付费。

例如,我购买某种可以连接到服务器的移动宽带加密狗?

每当我去实验室时,我都需要将服务器从内部网络中断开,将加密狗连接到服务器,这样服务器现在就可以通过加密狗访问互联网。然后我可以轻松更新服务器操作系统和代码库。

完成后,我将断开加密狗,然后将服务器重新挂接到内部网络。

更新

对于第二个问题,我希望向 IT 部门或 IT 部门上级管理层提出任何建议。

更新1

我们最终与 IT 团队找到了一种方法,通过代理打开连接来更新服务器。

谢谢。

答案1

回答您的第一个问题,正如 Michael Hampton 所建议的那样,您需要通过 IT 组获取静态 IP。为了方便起见,如果可能的话,您应该与他们讨论如何创建 DNS 记录。服务器或应用程序的主机名令人难忘,这将使应用程序的用户更容易使用。

回答你的第二个问题。对于操作系统,你可以使用apt-offline文档在这里)。您无需将 3G 加密狗连接到服务器或断开任何连接,只需一个 USB 密钥即可。我会谨慎地将 3G 连接连接到实验室环境中的系统,因为您可能会违反实验室环境中的安全控制。

第一步,您需要前往客户站点并生成一个签名文件,该文件通过对机器上已安装的软件包版本进行分类,为 apt-offline 提供工作基准。将该签名文件保存到 USB 密钥上并随身携带。

例如,要生成签名文件并将其保存到安装在 上的 USB 密钥上/media/USB,您可以运行apt-offline set /media/USB/updates.sig。您可以将 updates.sig 替换为任何文件名,以便于您识别签名文件所代表的服务器。

第二步,一旦您有了签名文件,您就可以在具有互联网连接的机器上运行 apt-offline,为其提供签名文件,它将下载所有必需的更新。apt-offline将生成一个 zip 文件,您可以将其复制到您的 USB 密钥上。

要根据安装在/media/USB名为 updates.sig 的 USB 密钥上的签名文件下载更新服务器所需的软件包,使用五个下载线程(以加快速度),下载到同一 USB 密钥上名为 updates.zip 的 zip 文件中,您需要运行apt-offline get -t 5 --bundle /media/USB/updates.zip /media/USB/updates.sig

最后一步,您可以将包含 updates.zip 文件的 USB 密钥带到客户机上,然后在 ubuntu 服务器上,apt-offline install /media/USB/updates.zip从 /media/USB 上安装的 USB 密钥中的存档 updates.zip 运行安装所有更新。完成后,不要忘记再次按照第一步生成新的签名文件。这样就省去了您前往客户站点生成新签名文件的麻烦。

要更新应用程序,最简单的方法(无需知道客户实验室的服务器上是否有 git 存储库)是使用 将最新代码从 git 存储库导出到存档git archive。这将在更深入的讨论中这里

例如,第一步是将本地签出的代码副本存档到 Bzip2 压缩的 tar 存档中,然后git archive master | bzip2 > /media/USB/latest-code.tar.bz2从存储库目录运行。这会将代码保存到安装在 /media/USB 上的 USB 密钥上的 latest-code.tar.bz2。

第二步是在客户网络的服务器上备份旧代码,以防您需要撤消更新。您可以通过运行 备份代码(假设它存储在 /var/www/application 中)tar cpjfv /media/USB/code-backup.tar.bz2 /var/www/application。这将创建一个 Bzip2 压缩的 tar 存档,保留权限,并将其保存到挂载在 /media/USB 上的 USB 密钥上名为 code-backup.tar.bz2 的文件中。

最后,您可以使用 从 USB 密钥中提取包含新代码tar jxfv /media/USB/latest-code.tar.bz2的存档。这会将存档内容latest-code.tar.bz2从安装在 上的 USB 密钥中提取/media/USB到当前目录中。使用上一步中的示例,您将cd /var/www/application首先使用 将目录更改为托管应用程序的文件夹。

希望有帮助!

相关内容