基于Chef和Artifactory的二进制基础架构:五种最佳实践

基础设施作为二进制文件几周前,当我们宣布Artifactory支持像Chef这样的基础设施管理平台时,它成为了现实。JFrog的我们和Chef的基础架构拥护者都相信,为公司基础架构中使用的所有构件(如Ruby Gems、NuGet包、rpm,尤其是Chef Cookbooks)建立一个规范的工件库,对于实现DevOps速度,同时保持安全性和安全性是至关重要的。因此,我们想提供以下5个最佳实践,您应该遵循,以充分利用这种集成的Artifactory和Chef。
1.确保在社区厨师超市获得一致和可靠的食谱
在创建自己的Cookbooks时,您可能会使用下载自社区的Cookbooks厨师超市作为依赖项。然而,与Chef Supermarket直接合作会让您依赖于这个公共存储库,并且依赖于必须始终可用的外部网络。如果这些资源中的任何一个变得不可用,你2022世界杯阿根廷预选赛赛程的工作可能会慢慢停止。
您可以通过使用来降低这种风险远程厨师烹饪库在人工超市代理公厨。这消除了您对公共Chef Supermarket和web的依赖,因为Artifactory中的远程Chef Cookbook存储库可以按需下载Cookbook,然后将它们缓存到本地。一旦一本烹饪书被下载,它就可以在您的本地网络上使用,不受社区厨师超市或外部网络的可用性的影响。

2.使用本地存储库来分发内部的cookbook和其他工件
你想要升级的一些环境已经在你的DevOps团队编写的内部Cookbooks中定义好了。这些可能还需要应用程序二进制文件、jar、war、RubyGems和其他内部工件的tar包,这些在Chef运行中经常需要。使用文件系统来分发这些构件是乏味的、不可靠的和不安全的。在Chef的例子中,将大型工件放在Cookbook的“files”目录中会使它们难以审计和更新,并将它们的变更管理与Cookbook的变更管理联系起来。共享这些内部构件的正确方法是使用本地存储库。
一个本地存储库在Artifactory中是一个物理的、特定于类型的、本地管理的存储库,您可以将工件部署到其中。它给你一个中心位置来存储你的内部二进制文件细粒度的访问控制)通过单一URL发送给其他团队。Artifactory支持所有常见的包格式,现在,有了Artifactory对Chef Cookbook库的支持,您可以构建自己的内部包当地厨师超市在Artifactory。根据您定义的权限,您的Chef客户端可以访问存储在本地Chef Cookbook存储库中的内部Cookbook,而您的Cookbook可以通过Chef资源访问其他内部工件,例如2022世界杯阿根廷预选赛赛程remote_file.我fnece年代年代一个ry,你可以使用头参数来执行HTTP基本身份验证。如果你想更进一步,你可以使用Artifactory复制向地理位置较远的团队分发工件和内部cookbook的能力。通过复制这些存储库,全球分布的团队可以轻松协作,同时保持他们所有的集体资源同步。2022世界杯阿根廷预选赛赛程
3.使用虚拟存储库来提供内部和社区Cookbooks的统一视图
使用单一资源上传内部Cookbooks和访问远程公共存储库上的Cookbooks非常方便。您的开发人员只需要知道他们需要处理的一个URL。Artifactory中的虚拟存储库提供了这种功能。
与一个虚拟超市厨师在Artifactory中,您可以为社区Chef Cookbooks聚合您想要访问的所有远程站点,添加一个本地Chef Supermarket,在那里您的开发人员可以上传您的内部Cookbooks,并将它们全部呈现在一个逻辑视图中。
4.要维护安全性和访问控制,请禁用对Artifactory中本地Chef Cookbook存储库的匿名访问
无论您的组织是大是小,您都可能希望为组织中的不同用户提供对内部cookbook的不同访问权限。例如,开发人员可能能够将cookbook上传到开发存储库,但只有QA团队成员可以将cookbook从开发存储库提升到登台存储库。
若要启用细粒度访问控制,请禁用对Chef Cookbook存储库的匿名访问。这将应用Artifactory提供的多层安全性。您的第一道防线是我们在前面的最佳实践中提到的虚拟存储库,因为您可以确保您的开发人员只访问已批准的外部资源,如社区Chef Supermarket。2022世界杯阿根廷预选赛赛程然后,Artifactory允许您使用带有通配符的命名模式来定义下载的“包括”和“排除”。这种灵活的机制允许您将整个存储库中的任何内容定义为禁止访问,甚至包括对您的开发至关重要的单个Cookbook。一旦您控制了可以下载的内容,您就拥有了一个灵活的、基于权限的授权系统,它允许您定义哪些用户可以访问哪些存储库或工件,以及他们可以对它们做什么(下载、上传、删除、移动,等等)。最后,通过与常见的访问协议(如LDAP、Active Directory、SAML、Crowd等)集成,您可以在服务器级别上控制访问。
要在Artifactory中对Chef Cookbook存储库应用访问控制,首先禁用匿名访问。然后,您的用户安装knife-art。宝石插件使用:
厨师gem安装knife-art
然后,访问您的存储库将需要基本的身份验证,这意味着Artifactory提供的所有安全层都将发挥作用。
5.使用Chef 's Artifactory RubyGem与Cookbook中的Artifactory进行通信
您的一些cookbook可能需要在执行过程中与Artifactory进行通信。例如,他们可能需要下载受保护的工件,或者修改工件的元数据。这正是Artifactory扩展REST API的目的所在。
厨师创造了Artifactory RubyGem它对你进行身份验证,并从你的Cookbook中对Artifactory进行REST API调用。一定要阅读文档,因为它没有提供对Artifactory的REST API的完整覆盖。你还应该考虑到许多Artifactory的REST API端点只在Pro版本中可用。作为一个额外的好处,你还可以使用Chef之外的这个gem来与任何Ruby程序中的Artifactory交互。
基础设施作为二进制控制,可审计和可靠的
使用工件存储库是高功能和现代DevOps团队的重要组成部分,尤其是当工件必须进行变更控制、版本控制和审计时。现在,有了Artifactory对基础设施管理的支持,它是存储和管理您的Chef Cookbooks以及您的Cookbooks依赖的所有其他工件的完美场所。通过使用Chef和Artifactory,并遵循这些最佳实践,您的基础设施的整个生命周期将得到适当的控制,可审计和独立于互联网。
准备好开始以二进制文件的形式管理基础设施了吗?
在我们的网络研讨会中了解所有关于管理厨师烹饪书的Artifactory。现在注册.