我想为多个项目使用 OpenStack 和 Jenkins 部署私有云测试基础架构。我想为 OpenStack 创建一个模板,使用一个 Jenkins 安装作为 master。对于我想将它们分成节点的项目,即每个项目将获得一个节点。这是一个合理的结构吗?或者我应该为每个项目+虚拟机安装一个 Jenkins 安装?
1) 您将如何组织私有的多项目测试云基础架构?
2)Jenkins/var/lib/jenkins
默认保存配置和作业信息,如何管理每个项目的对象存储?
当您说节点时,我假设您的意思是一台运行 nova-compute 并托管 VM 实例的机器。如果是这种情况,那么老实说,我不会担心尝试将项目绑定到特定节点 - 将您拥有的整个 openstack 资源池视为全局集群,分配项目,然后让它们启动和拆除根据他们的需要。
假设您希望云中的每个项目都有一个主 jenkins,那么您可能会发现将带有 jenkins 的映像作为公开可用的映像预安装是有益的。如果您将 jenkins 作为每个项目的独立项目运行,则使用 m1.medium 可能就足够了,但您可能会发现您想使用 m1.large。这完全取决于您的詹金斯实例在每个项目中所做的事情。
如果您希望 jenkins 数据在销毁和重新创建 jenkins 主实例时保持不变,那么您可以使用一个卷并专门将 /var/lib/jenkins 挂载到其中 - 但您需要管理 jenkins 启动和拥有该卷的协调适当地附上。如果需要销毁和重新创建 jenkins 实例,您可能会发现为 jenkins 实例提供更大的基础磁盘并备份和恢复每个项目的数据会更容易。
另一种方法是在你的 openstack 云外部共享一个主 jenkins,并使用 jclouds jenkins 插件来根据项目需要启动 jenkins 实例和从属。这并没有在 jenkins 中的项目之间提供任何隔离,根据上述问题,这可能不符合您的喜好。