服务器pipe理1U机架式服务器置于企业内部网:如何部署networking应用程序和更新服务器没有互联网连接?

一家跨国公司的销售部门聘请了我的服务作为一名软件顾问来构build一个Web应用程序。

这个Web应用程序根据其内部业务stream程生成Excel文件。

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

他们的IT部门位于另一个国家,我们花了6个月的时间获得服务器的许可。 经过许多文书工作和繁文</s>节,我们仍然没有看到任何地方的服务器的迹象。

我们的解决方法是销售部门会根据我的build议购买1U服务器。 销售部门也在办公室的同一楼层的实验室里find了一个地方。 实验室的头部允许我们放置一个1U机架式服务器。

但是,我们有两个问题,我没有最好的答案。 所以我在这里寻求服务器pipe理专家的build议。

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

这意味着我们需要让IT部门来帮助我们。 在过去6个月的繁文</s>节之后,销售部门担心要求他们提供一个静态的内部IP地址。

有没有一种解决方法可以帮我们避免向IT部门寻求帮助?

UPDATE

我会采取@MichaelHampton的build议,并在IT部门的静态IP地址之上。 我现在的重点是第二个问题。

2)假设我们已经设法将我的Web应用程序部署在位于Intranet内的服务器上。

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

这台服务器将没有互联网连接,因为实验室将只连接到内部networking。

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

但是,我不知道我可以做什么来更新没有互联网访问的操作系统。

有什么硬件/软件解决scheme,我可以考虑克服这一点? 如果有意义的话,我相信我可以说服销售部门为此付出代价。

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

每当我进入实验室时,我都需要从内部networking中取出服务器,将encryption狗连接到服务器,这样服务器现在可以通过encryption狗访问互联网。 然后,我可以轻松地更新服务器操作系统和代码库。

完成后,我将分离encryption狗,然后将服务器挂回到内部networking。

UPDATE

我想在这里向IT部门或IT部门的pipe理层提出第二个问题的build议。

UPDATE1

我们最终find了一个与IT团队的方式,通过代理服务器打开连接来允许服务器更新。

谢谢。

在回答你的第一个问题时,正如迈克尔·汉普顿(Michael Hampton)所build议的,你需要通过IT小组获得静态IP。 为了方便起见,如果可能的话,您应该与他们讨论如何获得创build的DNSlogging。 服务器或应用程序的令人难忘的主机名将使应用程序的用户更容易。

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

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

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

第二步,拥有签名文件后,您可以在具有Internet连接的计算机上运行apt-offline,为其提供签名文件,并下载所有必需的更新。 apt-offline将产生一个zip文件,您可以将其复制到您的USB密钥。

要下载更新服务器所需的软件包,请根据安装在名为updates.sig的/media/USB上的USB密钥上的签名文件,使用五个下载线程(加速),将其加载到相同USB密钥名称上的zip文件updates.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以安装USB密钥的所有更新从存档updates.zip挂载在/ media / USB上。 一旦完成,不要忘记再次按照第一步生成一个新的签名文件。 这将节省您到客户站点的旅程,以生成新的签名文件。

为了更新你的应用程序,最简单的方法(不知道你在客户实验室的服务器上是否有git仓库)将会使用git archive将最新的代码导出到git仓库。 这在这里更深入的讨论。

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

第二步是在客户networking上的服务器上备份旧代码,以防需要退出更新。 您可以通过运行tar cpjfv /media/USB/code-backup.tar.bz2 /var/www/application将代码保存在tar cpjfv /media/USB/code-backup.tar.bz2 /var/www/application 。 这将创build一个Bzip2压缩的tar归档文件,保留权限,并将其保存到/ media / USB上安装的USB密钥上的一个名为code-backup.tar.bz2的文件中。

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

希望有所帮助!