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

Kim*_*cks 2 ubuntu deployment rack intranet static-ip

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

此 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 应用程序部署在这个位于 Intranet 中的服务器中。

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

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

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

但是,我不知道如何在没有互联网访问的情况下更新操作系统。

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

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

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

完成后,我将分离加密狗,然后将服务器挂回内部网络。

更新

对于第二个问题,我想在这里向IT部门或IT部门以上的管理层提出任何建议。

更新1

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

谢谢你。

小智 8

在回答您的第一个问题时,正如 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 密钥的所有更新。压缩。完成后,不要忘记再次执行第一步以生成新的签名文件。这只会为您节省前往客户站点以生成新签名文件的时间。

要更新您的应用程序,最简单的方法(不知道您在客户实验室的服务器上是否有 git 存储库)是使用 .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 的文件中。

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

希望有帮助!