我一直在使用 puppet 来部署基础设施,而且我所做的大部分工作都是与 Web 2.0 公司合作的,这些公司热衷于为他们的 Web 应用程序进行测试驱动的开发。这里有没有人使用测试驱动的方法来开发他们的服务器配置?你使用什么工具来做到这一点?你的测试有多深?
我已经在 IIS 上安装了管理服务,并且想要配置 Web 部署。
在服务器级别,我可以看到管理服务、功能委派、IIS 管理器等
我也安装了 IIS6 管理,但由于这是一个生产服务器,我不想删除它只是为了检查。
最近我一直在使用 AD 策略通过GPO在一个小域上部署软件包。这一直运行良好,但我不确定升级包的正确程序是什么。
假设我最初部署了X,版本a通过名为“安装 X ”的GPO 。一切正常,随着时间的推移版本b发布。(假设新版本的.msi可以对已安装的版本进行升级)我相信我有以下执行升级的选项:
替换分发点中的原始 .msi,然后通过组策略编辑器(打开 GPO“安装 X ”),在计算机配置/软件设置/软件安装下将任务分配给“重新部署应用程序”
使用组策略编辑器在计算机配置/软件设置/软件安装中为新版本创建一个新程序包,并指定此程序应升级哪个旧程序包(在升级选项卡上选择版本a 的程序包;选项卸载现有或执行升级)
使用组策略编辑器删除版本a的包(带有立即卸载选项)并添加版本b的新包
问题:
编辑:另外,我只正确测试了 3,所以如果我错过了 1 和 2 中的一些重要步骤,我将不胜感激。:)
我是 Puppet 的初学者,我想知道我是否正在使用 Puppet 部署应用程序的正确方法。
应用程序位于 tar.gz 文件中,该文件包含带有版本号的文件。所以,我这样做是为了部署(我在服务器上并重新启动客户端以获取新的 tarball):
nodes.pp
node 'server1.domain.com' inherits basenode {
apps { apps:
version => 56,
apps_name => "apps_tarball.tgz",
}
init.pp (modules)
exec {"apps_wget":
command => "/usr/bin/wget http://web_server/${version}-${apps_name} -O /tmp/${container_zip_name}",
unless => "test -f /tmp/${version}-${apps_name}",
require => [ Package["wget"] ],
}
exec {"apps_unzip":
cwd => "/usr/local/apps/path",
command => "/usr/bin/unzip /tmp/${version}-${apps_name}",
unless => "test -f /usr/local/apps/path/apps-version-${version}",
require => [ Package["unzip"], Exec["container_wget"] ],
}
Run Code Online (Sandbox Code Playgroud)
但是,当我要升级时,我不知道说Puppet删除旧目录?例如,如果我想将版本 56 升级到 57:我必须删除 56 的版本目录。
我听说过 Capristrano,使用 Puppet 来管理包、配置文件和使用 Capristrano 部署应用程序似乎更好,不是吗?
谢谢。
我们在 .server-1 中有一个文件的中央存储库/srv/www。然后我们也有 N 台服务器。我们希望 server-1 能够/srv/www尽可能快速有效地将其文件部署到所有服务器。
是否有类似 rsync 的东西,但不是指定单个目标,而是指定目标集群(N 个服务器)?
我在想git可能有用,但是我们也可以指定多个遥控器来推送吗?
假设 N 个服务器最终可能达到数百个,最好的解决方案是什么。
我们主要(但不完全)赢得服务器。
最好,我们可以启动操作系统并对其做很少或不做任何事情以使其准备好接收命令(我们知道我们可能需要创建一个带有代理或 ssh 服务器的基本映像)。
需要能够安装 mongodb、基于 Java 的应用程序、iis 配置等。
哪个工具具有最强的 Windows 支持/社区,并且(如果可能)最轻的初始化足迹?
操作答案:Powershell DSC。
这不是完整的故事(它没有完成厨师/木偶/等所做的所有工作),但它满足了很多需求,效果很好,并且在 win 8.1/2012-R2/10 中是开箱即用的。我们对此非常满意。
我在从模板部署 CentOS7 时遇到了麻烦,因为自定义不生效。对于 VM 操作系统设置 - 我选择了 RHEL7 作为操作系统,而不是 CentOS(之前在我之前的工作中学习了 Oracle Linux 6.5 的教训)。它应该正常工作吗?不完全是。
症状:
从 CentOS7 模板部署新 VM 后,在第一次启动时,服务器提供了正确的主机名,然后执行自定义脚本,并且在 VM 重新启动后,它再次具有原始模板主机名,而 /etc/sysconfig/ network-scripts/ifcfg-ether 具有正确的设置,正确的 nic (ifcfg-e*) 的 ifcfg 设置尚未实现。
背景:
我按照 VMWare 的 CentOS 设置说明进行操作:http : //partnerweb.vmware.com/GOSIG/CentOS_7.html
在添加了一些软件包(包括 vSphere 自定义所需的网络工具)后,我使用我的“模板化脚本”(归功于http://lonesysadmin.net/2013/03/26/preparing -linux-template-vms/步骤):
#!/bin/bash
# clean yum cache
/usr/bin/yum clean all
#remove udev hardware rules
/bin/rm -f /etc/udev/rules.d/70*
#remove nic mac addr and uuid from ifcfg scripts
/bin/sed -i '/^\(HWADDR\|UUID\)=/d' /etc/sysconfig/network-scripts/ifcfg-eth0
#remove host keys (important step …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 14.04 上的 Tomcat 7 中有一些非常奇怪的行为。
我创建了一个新的 VPS,安装了 default-jdk 和其他简单的东西。下载并解压 Tomcat 7。检查它是否在 上运行[myIP]:8080,并看到了 Tomcat 的索引页面。
重新启动 VPS 后,我再次启动了 Tomcat,然后... 上没有响应[myIP]:8080。甚至没有错误。当我检查日志时,我看到 Tomcat 只是在第一个 webapp 上处于部署状态。
我的日志:
Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version: Apache Tomcat/7.0.57
Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built: Nov 3 2014 08:39:16 UTC
Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number: 7.0.57.0
Dec 31, 2014 9:06:04 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name: Linux …Run Code Online (Sandbox Code Playgroud) 我创建了一个 Github 存储库和一个 Docker 存储库。两者协同工作非常好:当我将新版本的 Dockerfile 推送到 Github 时,会在 Docker 存储库中自动构建一个新映像。
现在,我希望在(重新)构建基本映像时自动更新我正在运行的容器。
如何使用 Docker repos webhooks 实现它?
我们正在开发一个应用程序,该应用程序将在现场部署到各种安装(不是云)。我们的 OEM 合作伙伴要求我们为他们提供 ISO,以便能够快速配置新服务器。我们的应用程序是围绕容器构建的,我们有一个面向互联网的私有注册表设置,能够提取最新的通过构建。我还不确定 OEM 合作伙伴是否能够自己拉取这些映像,因此我们正在研究将 docker 映像与 ISO 一起预打包的可能性,但遇到了一些困难。我们尝试过的一些事情:
systemback - 我们尝试使用我们的首选设置(由我们拥有的 ansible 角色定义)配置新的 ubuntu 安装,然后使用 systemback 捕获结果。重新安装生成的 ISO 后,我们遇到了 docker 错误:Error response from daemon: open /var/lib/docker/aufs/layers/blahblahblah: no such file or directory类似于#22343
chroot jail - 我们再次尝试创建我们的用户,安装 docker,但是在尝试拉取我们的镜像时,我们会遇到:failed to register layer: Error processing tar file(exit status 1): invalid argument不管我们拉的是什么镜像(甚至是官方的 docker ubuntu 镜像,例如)。谷歌对这个错误没有帮助。
RancherOS - 在这里我们找到了预打包 docker 镜像的说明,但没有找到如何将它们与 iso 捆绑在一起。看起来我们的用例与#1449相同,但没有真正的解决方案。
现在我能想到的下一步就是尝试docker save我们的图像并包含带有 ISO 的 tarball,然后在第一次启动 iso 时运行一个脚本来检查 …