Articles of 部署

作为开发人员,我该如何帮助系统pipe理员改进webfarm部署和Web应用程序的稳定性?

问题: 部署和pipe理这个网站已经成为一场噩梦。 部署从开发到质量保证和预生产需要几天的时间。 我们有很多错误,而且涉及到大量的手工劳动。 我们经常有configuration文件已被更新或更改不正确,然后在该Web服务器上的整个网站失败。 环境: 大量的Web前端服务器(Windows 2003,IIS6) 大量的MemCached服务器(Linux) 多个数据库服务器(SQL 2005) 每月约500万独特 更多详情: 我是负责开发系统的开发人员之一。 目前,零自动化,零自动化testing,部署过程涉及login到服务器,terminal服务器,手动更改IIS设置,更新configuration文件,以及类似的恐怖。 灾难恢复文档有很多不足之处。 我想让处理服务器操作的团队成功部署和维护我正在使用的应用程序。 所以,出于部分非常自私的原因,我希望他们成功。 我想要一些方向; 我可以问他们什么具体的问题,或者我可以提出的build议,以及开发者如何创造一些东西来帮助他们取得更大的成功。 目前有一些泥泞的事情发生,我认为唯一的解决办法就是忽视泥泞,把重点放在这个问题上。 而目前的问题是,维护,排除故障和部署网站是非常费力的。 感谢日韩

如何仅通过FTP部署新的和已更改的文件

我正在为在某些情况下需要通过FTP部署php web应用程序的公司工作。 我正在自动执行部署过程,并需要编写一个脚本来将这些文件传输到分段和生产环境。 要求: 只应将新文件或更改的文件传输到远程服务器 限制: 在远程环境中没有任何types的shell访问 无法使用rsync 只有FTP可用 我的问题:是否有任何基于FTP的工具可以满足这些要求,而不是自己写?

如何用Capistrano在服务器上执行命令?

我有一个非常简单的任务叫做update_feeds: desc "Update feeds" task :update_feeds do run "cd #{release_path}" run "script/console production" run "FeedEntry.update_all" end 每当我尝试运行这个任务,我收到以下消息: [out :: mysite.com] sh: script/console: No such file or directory 我想这是因为我不在正确的目录,但尝试 run "cd ~/user/mysite.com/current" 代替 run "cd #{release_path}" 也失败了。 手动运行完全相同的命令(通过ssh)完美地工作。 为什么不能正确地cd (改变目录)进入站点目录运行命令? 谢谢!

在所pipe理的服务器中安装vCenter Server是不是一个好主意? 如果是这样,为什么?

一些系统pipe理应用程序(如Data Protection Manager)可以pipe理/备份整个虚拟基础架构。 在安装这样的应用程序时,他们使用SQL Server和Windows Server,因此在虚拟机中运行。 但在虚拟机pipe理程序服务器内部运行这样的应用程序(这两个应用程序都在Windows Server上运行并使用SQL Server)是不是一个好主意? 例如,VMWare vCenter Server正在pipe理ESX服务器,主机名为“a”和“b”。 在“a”或“b”中安装vCenter Server及其SQL Server到虚拟机是否是一个坏主意? 还是需要在这两台服务器之外的虚拟机上安装? 如果我添加一个HyperV服务器,主机名为“c”,但是这次我正在安装Data Protection Manager 2010,我想要备份服务器“a”和“b”,但是现在还需要DPM 2010坐在(“c”)上。 我将如何摆脱这个部署陷阱? 同样,如果DPM或vCenter Server安装在物理服务器上 对天真的道歉。 谢谢

在Linux / Unix环境中部署共享脚本的好方法是什么?

在我们的环境中,我们有30多种服务器上使用的各种脚本。 目前,我们在安装操作系统时将脚本复制到每台服务器上。 但是,这具有脚本更改需要手动重新部署的问题。 我正在考虑设置一个NFS导出,但是这有一些缺点: 我的印象是NFS导出消耗networking资源,即使不使用。 当我挂载NFS脚本的目录时,它将隐藏任何本地脚本。 权限。 这些机器都有本地(基于文件的)用户和组。 如果NFS发生故障,脚本消失了。 我考虑的其他选项是Subversion(或任何源代码pipe理),rsync和rpms。 svn的好处在于脚本的版本控制。 Rsync很简单,并允许本地脚本。 我不认为rpm会因为我们的Solaris服务器而起作用。 我们有Solaris,Redhat Enterprise Linux和Suse Linux服务器,而且我们只有less量(〜10)个小脚本可供部署,所以越简单越好。

WDS只有在通知并等待批准时才会有“无回应”

我有一个WDS服务器设置用于MDT2010,一切工作正常,直到今天上午。 现在,每当我尝试从局域网启动,我得到一个错误: Downloaded WDSNBP… Architecture: x64 WDSNBP started using DHCP Referral. Contacting Server: 10.50.10.12 (Gateway: 0.0.0.0) No response from Windows Deployment Services server. Launching pxeboot.com WDS上的我的PXE响应策略设置设置为: [ ] Do not respond to any client computer [ ] Respond only to known client computers [o] Respond to all (known and unknown) client computers [X] For unknown […]

内核模式身份validation:从远程计算机访问站点时出现401错误

我有几个使用集成Windows身份validation和Kerberos委派的经典ASP站点。 它们可以在活动服务器(最近移动到Server 2008 / IIS7服务器)上正常工作,但不能在我的开发PC或我的开发服务器上正常工作。 两台机器上的IIS都是通过从旧机器导出的IIS Web部署工具包configuration的; 部署没有完美的工作,我不得不修补一点让网站的工作。 在任何一台机器上本地访问应用程序时,都能正常工作。 当从另一台机器访问时,用户将被用户名/密码对话框提示,无论您input什么内容,最终都会导致401(未授权)错误。 我已经尝试过将这些机器的configuration与类似的活动服务器进行比较(所有这些工作都正常),并且它们看起来大体相当(假设IIS7.5(Windows 7 / Server 2008 R2)上还没有活动的服务器。 这些应用程序运行在一个通用的应用程序池中,该应用程序池使用一个特殊的域用户作为身份标识 – 该用户在实时和开发机器上具有相似的权限 在IIS6平台上,为了启用Kerberos委派,我需要为这个用户设置一些SPN,并且他们仍然在位(即使我不相信由于内核模式身份validation,他们已经不再需要IIS7 +), 此外,在Active Directory中为这个帐户启用了Kerberos委托,就像我正在处理的每台机器一样。 我正在考虑部署可能更改/无法对IISconfiguration进行更改从而导致此问题的可能性。 也许一个完整的重build(减去另一个Web部署尝试)将解决这个问题,但我宁愿修复(从而理解)当前的问题。 任何想法到目前为止? 我刚刚尝试解决这个问题,并取得了一些进展,但我还没有完全解决。 我发现,如果我通过IP地址访问网站(比通过NetBIOS名称),我得到相同的对话框,除了它接受我的凭据,从而应用程序的工作 – 不是一个修复,但一个有用的步骤。 更有趣的是,我发现,如果我禁用内核模式身份validation(在IISpipe理器>网站>身份validation>高级设置 ),应用程序工作完美。 我的模糊的理解是,这是有效的工作在IIS7以前的方式。 一个合理的短期解决scheme,但是在这个问题上考虑以下来自IIS的明确build议: 默认情况下,IIS启用内核模式身份validation,这可能会提高身份validation性能并防止configuration为使用自定义身份的应用程序池的身份validation问题。 最佳做法是,如果您的环境中使用了Kerberos身份validation,并且应用程序池configuration为使用自定义标识,则不要禁用此设置。 显然,这不是我的应用程序应该工作的方式。 那么问题是什么?

VS2010 web部署和更新网站的物理path

我们正在尝试通过VS2010利用Web Deploy来简化发布过程。 我们希望能够快速回滚任何破损的版本,所以我们为每个版本创build文件夹: C:\ WWW \ 1.0.0 C:\ WWW \ 1.1.0 到目前为止,我在本地发布站点,将文件复制到我们服务器上的新版本文件夹,然后手动将站点的物理path更新到IIS中的新文件夹。 由于该站点指向特定版本的文件夹,因此我无法在该站点上使用Web部署,结果会覆盖现有文件。 我对覆盖问题的解决scheme是创build一个指向根文件夹(C:\ www)的部署站点,并使用web部署来创build新版本。 下一步是更新网站的物理path,但我无法find一个合适的方法来完成这一点。 我知道在生成后事件中执行一个命令,但是由于动词选项要同步,转储和删除,所以我在Web部署文档中遇到了一些麻烦。 发布完成后,我只需要IIS站点指向新的物理path。 这可能吗? 我打开其他选项(如本地发布,然后执行batch file)。

在自动部署节点中保护数据库凭证

在部署节点(例如amazon ec2)的情况下,build议的最佳实践是如何将证书等信息保护到其他资源? 如果不解决规模问题,我们可能会手动input密码到configuration文件中,并将ssh密钥放置到位等等。 当我们试图通过引入自动化通过构build脚本和/或工具来启动新的EC2节点等来解决规模问题时,我们遇到了各种各样的麻烦(当然,有些可能是不必要的)。 这是我们的优先事项 自动部署新节点(需要ssh密钥) 应用程序代码的自动化部署(利用数据库凭证等) 不在版本控制中存储任何凭据(我不信任版本控制安全性) 因为很less有人可以获得生产证书,甚至开发人员(他们有自己的资源访问凭证) 我特别提到数据库凭证,但是从版本控制到ssh密钥的任何凭证都是相关的。 我们已经提出了一些解决scheme,每个解决scheme都有自己的利弊,但是这个问题肯定已经被几个人解决了。 我们是否在解决问题? 如果相关,这里是一些关于我们的环境和工具的信息 Linux的 Capistrano的 木偶 Java,ruby,PHP 阿拉西娅的竹子 SSH密钥 mysql,postgres,activemq

我是否需要在服务器上安装已部署的打印机?

我有一台打印机部署到我的Active Directory与GPO。 我需要保持在服务器上安装打印机? 这是必要的吗? 是不是login脚本创build打印机给大家? 包括DC? 我想补充说,从一个站(我的)打印机图标灰色了一下 在用户configuration的窗口设置下,在默认域策略中,在login过程中部署了打印机:pushprinterconnections.exe脚本。 我也看到DC上安装的打印机 DC上的打印机pipe理