我有詹金斯,艺术和3个环境(开发,测试和生产)。
当开发人员从开发环境提交一些东西时,就会在测试环境中进行编译和测试。它的构建和工件存储在Artifactory中。
现在,我想继续下一步,在木偶的帮助下,管理环境并将工件从Artifactory部署到生产环境中。
但我需要一些提示来开始:
谢谢你的任何暗示/帮助。
发布于 2012-12-04 22:40:33
免责声明:我就是这样做的:)
我不认为将Artifactory与Puppet放在同一台服务器上有任何好处,这似乎是个坏主意。
在Artifactory中,我有一个virutal存储库,其中只包括我所关心的产品工件。我有一个单独的通用web服务器,它承载着各种东西,傀儡节点,有时我们公司的人需要下载。该服务器也是工件中虚拟回购的前向代理。
本地web服务器每晚与外部aws服务器同步。在内部,需要下载位元的节点从我们的本地服务器获得它们。在外部,他们从云服务器(实际上是一个自动缩放的集群)下载。
这使得编写可以在节点上下载、md5和安装工件的木偶清单/自定义类型变得相当简单。即使对于Linux来说,更巧妙的做法是构建包,但我目前还没有。
我还使用Foreman作为一个傀儡ENC。软件的版本在全局、组和(如果需要的话)节点级别上被配置为Foreman参数。若要部署应用程序war的新版本,只需登录Foreman,设置参数,并等待Puppet完成其工作(或登录到节点,并在需要时强制运行木偶)。
希望这能给你一些想法。
发布于 2012-12-04 02:28:22
首先,您的第一个决定需要是要在主代理(客户机/服务器)模式下运行傀儡,还是在“无主”模式下运行木偶。在puppetlabs.com上的入门文档是坚实的,值得一看教程。
不管您的决定如何,您都需要在每台运行傀儡的服务器上安装傀儡--相同的二进制程序运行主服务器、代理服务器、应用程序等。
傀儡101无杰作的例子,假设红帽-ish操作系统:
# Install puppet
sudo yum install puppet -y
# Create basic manifest
echo "notify {'hello world':}" > hello.pp
# Run masterless scenario:
sudo puppet apply hello.pp预期结果:
notice: hello world
notice: /Stage[main]//Notify[hello world]/message: defined 'message' as 'hello world'
notice: Finished catalog run in 0.03 secondshttps://stackoverflow.com/questions/13682874
复制相似问题