Articles of 部署

自动SaaS缩放

我正在考虑如何最好地设置自动缩放的SaaS应用程序,并已经达到了我不确定如何解决的一个步骤。 要正确地描述这个问题,我最好先解释一下如何看待整个过程: 首先,我将把主站点放在一个单独的处理注册的VPS上,并拥有所有关于实际应用服务器的信息,它们的负载和用户数量等等。 我正在考虑一个cron作业或者其他什么东西会被检查,这样我就可以有更多的用户空间,如果我低于这个数字,就开始自动build立一个新的VPS实例。 我已经决定使用DigitalOcean和他们的API来设置水滴,然后通过在DigitalOcean上创build水滴时,通过在ServerPilot设置脚本中以CloudInit用户元数据的forms发送来连接到ServerPilot。 然后,我可以使用ServerPilot和DigitalOCean API的组合来检查服务器,创build“应用程序”,数据库的,连接域等。 现在到棘手的部分。 我需要以某种方式获得在新创build的服务器上设置的Git存储库,而不需要手动进行SSH连接。 我的select似乎有限。 我从一开始就无法设置一些正常的web-api来pipe理git和app-deploy,因为ServerPilot在运行CloudInit时没有做到这一点。 一种可能性是在CloudInit中包含一个自定义脚本,作为基本的Web API来设置和部署PHP应用程序。 这是当我开始查看Sinatra for Ruby或瓶颈/python。 如果我理解正确,他们可以提供一个没有安装nginx / apache的API端点。 或者,也许我完全在这里? 在继续之前,我想就目前的想法提出意见。 这个计划听起来合理吗? 有没有更好的替代ServerPilot这种用途,我宁愿远离自己的configuration文件? 最好是自己制作新的水滴图像文件,而不是使用ServerPilot,在正常的PHP中包含一个“manager”-app API来设置用户应用程序? 我有点喜欢让ServerPilot处理设置的想法,因为我不是主要的服务器人。 任何input赞赏。

MDT 2013 – TaskSequenceID / KeyboardLocale无法正常工作

到目前为止,我只需要用一种语言进行部署,但现在我们需要用德语和英语进行部署。 在过去的两天里,我已经阅读了很多关于如何在MDT 2013中通过设置字段(WinPE期间)实现一些自动化的最小交互。 我一直在尝试使用“TaskSequenceID”来自动填充我所拥有的2个不同任务序列的区域设置。 顺便说一句,我在每个任务序列开始时启用了Gather。 这是我的CustomSettings.ini imagebuilding任务: [Settings] Priority=TaskSequenceID, Default Properties=MyCustomProperty [W81PRODE-001] SkipLocaleSelection=NO UserLocale=de-DE UILanguage=de-DE KeyboardLocale=de-DE [W81PROEN-001] SkipLocaleSelection=NO UserLocale=en-GB UILanguage=en-GB KeyboardLocale=en-GB [Default] SkipTimeZone=NO TimeZoneName=W. Europe Standard Time _SMSTSORGNAME=Building %TaskSequenceID% custom base image DoCapture=YES OSInstall=YES HideShell=YES DoNotCreateExtraPartition=YES SkipAdminPassword=YES AdminPassword= SkipComputerName=YES SkipDomainMembership=YES JoinWorkgroup=WORKGROUP SkipProductKey=YES OverrideProductKey=<snip> SkipUserData=YES SkipTaskSequence=NO SkipApplications=YES SkipBitLocker=YES SkipSummary=YES SkipRoles=YES SkipCapture=NO SkipFinalSummary=YES FinishAction=SHUTDOWN 上述结果在德国的任务中显示没有问题的一切。 但是英文版本总是回到en-US键盘布局而不是en-GB。 有些事情我已经注意到了: […]

WindowsFeatures在Unattend.xml文件中做了什么?

据Technet透露: WindowsFeatures指定是否显示Internet Explorer,Media Center,Windows Media Player和Windows Mail的入口点。 什么是“入口点”? 这与使用“打开或closuresWindowsfunction”控制面板的效果相同吗? 或者是否创build固定的任务栏项目?

Windows环境部署

我们遇到了一些导致一些问题的情况。 我们目前正在使用Inno Setup软件在我们的客户端系统上安装软件。 我们遇到的问题是我们需要做大量的Windows环境变更和软件依赖。 同样,软件在不断发展变化是一个不断轮换部署。 维护一个正确的安装程序已经非常耗时和令人沮丧。 我们最终不得不运行几个PowerShell和bash脚本来完成安装。 我们的软件本身只需要放在根目录下,并包含特定的文件夹结构。 我们的客户端PC是平板电脑,Vm(混合环境),台式电脑以及一体机的组合。 我们看到的是Boxstarter。它看起来提供了很多工具来利用我们需要的依赖关系的巧克力包调整。 而且能够做出很多Windows环境变更。 然后我们看着木偶实验室 。 它看起来也很有趣。 但一个更大的学习曲线,不知道它会提供多less优势。 我们意识到这些是为了快速的testing环境。 但是我们基本上需要在大量的PC上重新创build相同的实例。 我们必须遵守POS合规标准。 所以像大多数软件一样的标准安装程序将不起作用。 由于我们必须使每台电脑的软件安装在一个特殊的用户帐户上,并且有很多自定义设置。 问题:是否有一条更加可以接受的路线来允许我们将自定义Windows环境部署到客户端PC? 而任何有pipe理小组? 我们需要它来允许我们快速更新依赖项和部署包。 而最终用户很容易启动。 感谢您的帮助。

Windows 7无人参与部署 – 提示input密码,并将其用于自动login

我已经使用系统映像pipe理器来创build一个无人参与的XML答案文件,我已经写入Windows 7 DVD。 这包含几乎所有的系统configuration,但是故意不包含已安装系统的用户名或密码 – 我希望用户在安装过程中在控制台input这些信息。 但是,我运行一些安装后脚本,其中一些重新启动机器,并在重新启动后继续。 这意味着用户在安装过程中必须多次login,而且由于某些脚本需要一段时间才能运行,这是相当不方便的。 正因为如此,我正在寻找一种方法来启用安装后的自动login。 但是,我可以find的所有示例仅支持使用在答案文件中设置的用户名/密码,而不是由用户提供。 我是否错过了一些显而易见的东西,或者任何人都可以为此考虑任何聪明的解决方法? 我曾尝试添加一个FirstLogonCommand到oobeSystem通道,它使用%USERNAME%和%USERPASSWORD%通过Sysinternals“Autologon”实用程序启用自动login,但是发现%USERPASSWORD%未被扩展。 有没有find这些信息的方法? 我能想到的唯一的其他解决方法是在任何用户login之前运行我的安装后脚本,可能是通过创build服务。 这会增加复杂性 – 我宁愿让它们在用户会话中以交互方式和明显的方式运行。 (编辑:也许有关提到,我在这里也不使用AD域)。

Elastic Beanstalk .ebextensionsconfiguration脚本​​不在Windows部署上运行

我有一个Microsoft ASP.NET应用程序,我通过Elastic Beanstalk成功部署到服务器。 但是,我试图在.ebextensions下运行一些configuration文件,以便设置我的应用程序使用的某些软件包。 例如,我有一个NewRelic脚本安装如下: files: "c:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi": source: http://download.newrelic.com/dot_net_agent/release/NewRelicDotNetAgent_x64.msi commands: instNewRelic: command: msiexec.exe /ic:\\temp\\redistribution\\newrelic\\NewRelicDotNetAgent_x64.msi /qb NR_LICENSE_KEY=<mylicense here> INSTALLLEVEL=1 iisRestart: command: c:\\windows\\system32\\iisreset.exe /RESTART 该命令应该下载安装程序(可通过服务器访问)并运行该程序包。 问题是,我没有看到任何文件下载的指示,甚至脚本甚至试图由弹性beanstalk进程运行。 我检查了以下内容: 解决scheme中包含.ebextensions下的configuration文件,并检查了它们是否已部署到服务器。 服务器可以访问我尝试下载的任何文件。 应用程序运行正常,只是这个初始化脚本不工作。 我曾尝试部署到Windows 2008 IIS 7.5和Windows 2012 IIS 8.5,它不工作。 任何帮助搞清楚这将不胜感激。 谢谢,

为服务器2012R2中的HPC群集部署基本说明挂起

我们正在评估服务器2012R2标准与HPC包的小群集节点(约40开始 – 目前的设置只有一个计算节点)。 现在我们用旧的硬件去尝试一些东西,并得到我们需要的东西。 但是现在我被困在裸机部署基节点的时候。 configuration日志: Time Message 28-6-2015 15:19:56 Sending PXE command to boot node to WINPE (Expected boot time: 5-15 minutes) 28-6-2015 15:19:46 Sending PXE command to boot node to WINPE (Expected boot time: 5-15 minutes) 28-6-2015 15:19:43 Waiting for node to boot into WINPE 28-6-2015 15:19:43 Initiating configuration operations for template: VideoEncoder […]

持续集成运行器可以访问生产服务器

我正在为产品设置CI。 我正在使用Gitlab CI内部的Gitlab服务器来pipe理项目的testing和部署。 部署项目并不像同步文件那么简单。 它需要build立,检查不一致性,如果更新没有成功则回滚。 我担心的是运行testing和pipe理新代码集成的gitlab runner实例可以访问生产实例。 我的第一个想法是让跑步者简单地向生产服务器发送一个HTTP POST请求,要求它自己更新,然后报告是成功还是失败。 这样,跑步者无法访问生产服务器上的文件系统,并且生产服务器可以决定是否响应该请求。 这种方法的问题是POST请求很可能会超时等待响应,因为构build不是即时的。 我的第二种方法是让gitlab ci runner使用受限制的用户无密码的sshlogin到生产服务器,其唯一目的是构build和运行项目,以便运行者可以简单地使用结构脚本来更新服务器并直接报告失败。 这将很容易实现,并与Gitlab CI系统配合使用。 更新 :我尝试了面料的方法,但是当跑步者似乎不想login的时候,我停了下来。那么你的想法是什么? 一些docker魔法?

具有function分支的部署工具

我想使用一个部署工具,允许我部署function分支,即我想部署我的Git仓库的每个分支。 在我已经检查过的所有部署工具(例如, Jenkins , Go , DeployBot ,…)中,只能静态select一个分支。 虽然当然可能有多个分支不同的pipe道,但我还没有看到任何dynamic部署所有分支的情况。 也许我正在用错误的方式来思考这个问题。 这里有什么提示?

在域和子域上为两个Angular应用程序configurationIIS

我有一些复杂的情况,我不能configuration。 我需要一个web.config文件来configurationIIS来服务2个Angular应用程序。 第一个将在domain.com上运行,第二个将在sub.domain.com上运行 现在正在工作的修复将第一个应用程序(domain.com)放入wwwroot中,第二个应用程序(sub.domain.com)放在第一个应用程序中的一个文件夹中。 web.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect subdomain" enabled="true"> <match url="^(.*)$"/> <conditions> <add input="{HTTP_HOST}" pattern="^sub\.domain\.com$"/> </conditions> <action type="Rewrite" url="subfolder/{R:1}"/> </rule> </rules> </rewrite> </system.webServer> </configuration> 问题是,我需要添加一些URL重写规则,这将只适用于第一个应用程序。 如果我将它们添加到web.config文件,那么由于我添加的规则,第二个应用程序将被redirect到第一个应用程序。 一个理想的解决scheme就是这样的 wwwroot文件 first_app_v1.1 … web.config(添加url重写规则) second_app_v2.1 … web.cofig(如果(我们在sub.domain.com){去第二个应用程序}其他{去第一个应用程序}) 这样部署将更安全,如果我需要回去做一个不同的版本,它会容易得多。 我是这个技术的新手,如果有更好的方法来做到这一点,我会欣赏一些资源。