我听说过很多关于将 Cobbler 与 Puppet/Cfengine 一起使用以进行快速部署和配置的信息。
你能指点我一些教程或分享你如何做的经验吗?
也很想知道您用于快速配置和部署的任何其他系统。谢谢。
我们目前正在使用MS Web 部署工具将实时网站和一些 Web 服务从暂存箱同步到两个实时服务器。
临时主机在端口 17000 上的任何 IP 上托管站点,而两个实时服务器是负载平衡的,并且每个服务器都有不同的 IP。
目前,我生成了两个单独的部署包 - 每台机器一个 - 使用同步操作并指定 DestinationBinding 参数如下:
msdeploy -verb:sync
-source:WebServer,computerName=localhost
-dest:package="machinename.zip"
-setParam:type="DestinationBinding",scope="SiteName",value="ip_address:port:".
Run Code Online (Sandbox Code Playgroud)
(拆分成多行以便于阅读!)
我运行了两次,两台机器的目标文件名和 IP 地址不同。在部署方面,我只是从每个包到其各自的实时站点进行同步。
我知道,我知道 - 我应该能够通过生成一个参数化包然后可能对两个服务器中的每一个使用 SetParamFile 开关来做到这一点 - 相信我,我想,但坦率地说,关于这样做的文档不是 -存在。
现在我需要为此站点配置和部署HTTP 和 HTTPS绑定;还包括要使用的 ssl 证书。
我已经在登台框上为站点添加了 SSL 绑定 - 它使用开发证书(需要更换 - 或者登台盒是否应该使用实时证书?),现在上面的命令行有效果替换 http 和 https 条目上的目标 IP。
似乎我无法在上面的 -setParam 中的 DestinationBinding 值中指定多个绑定以及证书信息,所以有人知道我将如何执行此操作吗?
非常感谢任何帮助。
一个大型组织(1500 多个用户,有 5 个地点)正计划更新桌面硬件。
将屏幕、CPU、磁盘驱动器、CD/DVD 集成在一个单元中并带有 USB 键盘和鼠标的多合一桌面是否有任何好处?
如果提供现场支持,是更好还是单独的 CPU 更可取?
这是正在考虑的系统。
ThinkCentre A70z 一体机 19" 系统
链接http://www.lenovo.com/partners/us/en/a70z.html
我们的规格。
° A70z
° Intel Core 2 Duo E7500
° Intel G41 芯片组
° 一体式 PC 外形
° 19” WXGA+
° 2 DIMM 插槽 4GB Ram
° DVD 刻录机
° 网络摄像头和麦克风
° 千兆以太网
° 11 b/g/n 无线LAN
° 6 USB 2.0 端口
° VESA 100 毫米安装
° 所有型号均符合能源之星 5.0 标准
° 3 年现场保修
(提前为这个问题的愚蠢道歉。我通常是一名程序员,而不是系统管理员,但我已经承担起自动化一些事情,并清理其他一些自动化但不是最漂亮的方式的东西.:-)
我一直在寻找用于将软件部署自动化到一堆服务器的各种工具,例如 cfengine、Puppet 和 Chef。到目前为止,Puppet 看起来最吸引人,但我当然还没有承诺过任何事情。
这些工具看起来都可以很好地使用预先打包的软件使一堆服务器保持最新状态。
我不明白的是:如何使用工具(如 Puppet)来管理我们自己内部软件的部署?我想我不知所措我,因为我已经看到了一千教程展示了如何保持阿帕奇ensure => latest(这是很酷的),但是没有一个相当相当于我用例的今天,这是更多的东西一样:
Puppet 听起来很棒,我完全看到了声明式、幂等配置相对于某些 shell 脚本的优势,但我还没有看到任何关于“您想将 shell 脚本更新为 Puppet(或 Chef 或 cfengine)的教程,所以这就是您应该做”。有这样的事情吗?对于其他人来说,如何使用 Puppet 文档中提供的内容并复制我想要的行为是否显而易见?我只是没有得到它吗?
到目前为止,在我看来,人类(#1)会手动打包 Puppet 外部的软件(#2 和 #3),手动更新 Puppet 配置,这将触发 Puppet 更新服务器。 .. 也许?(我在这里有点困惑,因为我相信你能看出来。)
谢谢!
我有一台 Windows Server 2008 机器作为我的 DC。今年早些时候,我创建了一个软件安装 GPO 来部署 Adobe Flash Player 插件 MSI。我将策略分配给计算机,大约一半运行 Windows XP x86,另一半运行 Windows 7 x64。这一切都像发条一样。
在创建软件安装策略时,我通过在 Orca 中编辑 MSI 禁用了 Flash Player 插件的自动更新功能。我这样做是因为我希望我的所有机器都运行完全相同版本的插件。
现在,一段时间过去了,较新版本的 Flash Player 插件已经发布。是时候推出插件的更新版本了。我已经有了新的 MSI,但我不知道下一步该做什么。
简而言之,通过组策略推出新版本的正确、最佳实践或首选方式是什么?
我正在寻找一种解决方案来自动化我们应用程序的部署过程之一。在部署开始时,我想以编程方式将指定的服务器设置为维护模式,最后在部署完成后,从 nginx 服务器中删除维护模式标志。
通过维护模式,我的意思是 nginx 应该以 HTTP 响应代码 503 响应所有请求(可能带有自定义页面)。
我知道如何设置服务器块以响应 503 代码(请参阅http://www.cyberciti.biz/faq/custom-nginx-maintenance-page-with-http503/)但问题是如何以编程方式执行此操作并且最有效。
我想到了两个选择:
选项1:在部署过程开始时,将维护文件写入文档根目录,并有条件地检查nginx服务器配置中是否存在维护文件:
server {
if (-f $document_root/in_maintenance_mode) {
return 503;
}
}
Run Code Online (Sandbox Code Playgroud)
此方法包含一定的开销,因为每个请求都会检查文件是否存在。是否可以仅在加载 nginx 配置时检查文件是否存在?
选项 2:部署脚本用维护版本替换整个 nginx 服务器配置文件,并在部署结束时将其换回。如果使用此方法,我担心可能会覆盖维护配置文件的其他自动化进程,例如 puppet。
主要问题:在生产服务器上使用 Git 进行部署是一个好策略吗?
我看到的许多部署策略都围绕着在您的服务器上安装 Git(开发、暂存和生产)。
对于部署到舞台/生产,这的优点似乎很明显:
但是,我看到了一些缺点:
git pull 如果生产中存在某种未分阶段的更改(也可以使用 -f 克服),则在生产服务器上可能会失败部署即服务公司(例如 Beanstalkapp.com、deployhq.com)使用 FTP、SFTP 或 SSH。Beanstalkapp 尤其擅长只根据 git 历史修改文件(而不是重新部署每个文件)。这些服务不要求您在舞台/生产服务器上安装 git(尽管如果您通过 SSH 部署,您是否会/可以使用该策略是有争议的)。
我发现我喜欢使用 sftp:
就最佳实践和安全性而言,在生产服务器上轻松使用 git 是否值得?如果没有,在跳过持续集成工具的同时进行部署的好方法是什么?
(我只询问是否跳过 CI 工具,因为时间/预算/客户限制不允许它们用于我的日常使用)。
我有一台运行 RDS 的 Windows Server 2012 生产服务器。我想复制我为设置此 RDS 服务器所做的一切(用户配置文件、文件、设置等),并制作与其相同的第二台服务器。显然,我希望第二台服务器具有不同的名称和 SID,以便它们都可以在同一网络中处于活动状态并加入我的域。
我目前有第一台服务器的 Windows 备份映像,我正尝试将其部署到第二台服务器,但我担心我可能走错了方向。
预先感谢您的帮助!
我正在尝试将我的代码部署到远程服务器。到目前为止我已经尝试过
这就是我得到的:
[JenkinsBuild] $ /bin/sh -xe /var/lib/jenkins/tmp/hudson4646064064846581974.sh
+ rsync -PSauve ssh --exclude=JenkinsBuild app bower.json config gruntfile.js karma.conf.js LICENSE.md Makefile node_modules package.json Procfile protractor.conf.js public README README.md server.js john@192.168.2.10:/srv/dp/prod
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
Run Code Online (Sandbox Code Playgroud)
任何想法我在这里做错了什么?
我们有一个 Jenkins CI 服务器,它从 Git 获取我们的代码,构建它,制作一个 Docker 镜像,然后将它发送到一些生产服务器。
我们的项目主要是用 Python 编写的,所以“构建”涉及运行
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
效果很好,只是有点慢。它必须通过网络获取包,另外还必须为其中一些构建 C 库(而且“lxml”并不小!)。
在开发中,我已经成功地pip-accel用来加速这个过程。它具有相同的接口,pip但它同时缓存 Python 下载和构建的 C 代码,所以
pip-accel install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
很快。
我想为我们的生产版本这样做,但我遇到了一些障碍。
显然,pip-accel需要一个目录来存储缓存。因为我们的 CI 服务器是运行构建的地方,所以这是放置它的合乎逻辑的地方。但是该pip install命令在一个新的 Docker 容器中运行,因此它不能只访问该服务器上的公共目录。
Docker“卷”似乎是为与容器共享目录而设计的,但我们的构建发生在内部(令人惊讶)docker build,并且只docker run允许您附加卷。您不能使用docker build.
有什么我想念的吗?如何在我docker build所在的容器之外运行并与我的主机共享缓存文件夹?
deployment ×10
automation ×2
puppet ×2
build-server ×1
cfengine ×1
cobbler ×1
desktop ×1
docker ×1
git ×1
group-policy ×1
iis-7.5 ×1
imaging ×1
jenkins ×1
linux ×1
maintenance ×1
msdeploy ×1
msi ×1
nginx ×1
pip ×1
python ×1
update ×1