云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

中间件_专业网站建设机构_免费6个月

小七 141 0

使用基础架构作为代码自动化VMware部署

十多年前,公共云基础设施被引入市场,彻底改变了软件应用程序交付的速度和效率。然而,世界上一些最大的企业在其私有数据中心中仍然保持着云革命前一样的配置和管理基础设施的做法——运营商通过在软件图形用户界面(GUI)中指向和单击来提供虚拟机,从而创建了许可证。现在广泛用于云计算的工具,比如HashiCorp Terraform,可以扩展到私有数据中心使用。对于VMware vSphere和NSX-T的用户,本博客将介绍如何使用Terraform改进操作员工作流,以利用基础架构作为调配和管理VMware infrastructure的代码。»资源调配的转变不仅仅针对云基础设施即代码是云基础设施配置的核心,标志着从单一的点击式管理工具的重大转变。基础设施即代码允许用户通过编码自动化过程来解决有关规模、异构性和效率的问题。不管基础设施的类型是什么,基础设施即代码使运营商能够采用编程的方法进行供应。通过将基础设施作为代码实现日志记录、审核和版本控制,组织可以更好地了解其基础结构的确切、当前状态。基于私有云的配置和基于此手册的数据中心的配置消除了对易出错的数据中心的依赖。Terraform的优势在于能够管理每一个主要的云和许多SaaS产品。这提供了一个单一的工作流来调配和维护来自所有供应商的基础设施和服务,不仅使供应商的切换变得更容易(例如,从内部部署的VMware切换到基于云的AWS),还大大缩短了新供应商或服务所需的学习曲线。对于那些努力理解单一用户界面和基于点击式GUI工具的抽象的操作员来说,这种以代码为基础的基础设施的过渡似乎令人望而生畏。Terraform旨在通过Terraform提供程序支持通用的VMware基础架构、具有人类可读语言的编码基础架构和预定义的VMware模块,简化运营商的这一过渡过程,以帮助运营商快速、轻松地起步。»针对VMware的Terraform提供程序Terraform提供者负责理解给定基础设施、平台或SaaS提供的资源之间的API交互,并向Terraform公开这些资源。对于VMware,有vSphere、NSX-T和vCloud Director的提供商,它们可用于管理基于VMware的环境的许多方面。例如,将vSphere Provider与Terraform一起使用,您可以编写一个描述所需虚拟机的Terraform文件,将该文件应用于Terraform并按您所述创建该VM,而无需登录到vSphere仪表板。»用代码定义VMware基础架构您可以用JSON或HashiCorp配置语言(HCL)编写Terraform的基础结构代码。HCL是一种易于学习和编写的配置语言,具有简单的语法,既可供人阅读也可由机器读取。HCL提供了作为一种语言来管理所有基础设施提供商和工具。你可以在Terraform文件中使用HCL定义基础设施,然后根据需要使用Terraform创建和销毁该基础设施。作为操作员,在使用Terraform创建vSphere配置时,您将利用vSphere provider来定义所需的资源拓扑。同样,下面是一个使用NSX-T提供程序的示例。以下HCL脚本用于vSphere环境示例:提供商"vsphere"{用户="${var.vsphere_用户}"密码="${var.vsphere_密码}"vsphere_服务器="${var.vsphere_服务器}"#如果你有自签名证书允许_unverified_ssl=true}数据"vsphere_数据中心""dc"{name="dc1"}数据"vsphere_datastore""数据存储"{name="数据存储1"数据中心_id="${data.vsphere_数据中心.直流电id}"}数据"vsphere_资源_池""池"{name="cluster1/资源"数据中心_id="${data.vsphere_数据中心.直流电id}"}数据"vsphere_网络""网络"{name="公共"数据中心_id="${data.vsphere_数据中心.直流电id}"}资源"vsphere_virtual_machine""vm"{name="地形测试"资源池_id="${data.vsphere_资源_池.池.id}"数据存储区_id="${data.vsphere_数据存储.数据存储.id}"CPU数量=2内存=1024guest_id="其他3xlinux64guest"网络接口{网络标识="${data.vsphere_网络.网络.id}"}磁盘{label="磁盘0"尺寸=20}}您可以看到提供程序凭据在脚本顶部传入,以连接到vSphere帐户。然后,为基础设施的相关部分(如数据中心和数据存储)指定名称和标识。最后,定义了虚拟机资源。假设您想要配置vSphere虚拟机。您可以在vSphere中配置此功能,指向并单击以创建所需的拓扑,也可以用代码来描述所需的拓扑结构—名称、网络、磁盘大小和容量(以硬编码值或待定义的变量表示)。这样做的好处是,一旦编码完成,就可以像应用程序开发人员对待代码一样对待它——它可以被审查、版本化、测试、更新和执行(需要时)。»为vSphere创建和使用Terraform模块Terraform有模块的概念-一种将基础设施资源封装成可重用格式的方法。为组织使用的每个环境和资源设置一个模块可以创建一组预定义的资源,以允许其他人快速创建所需的基础设施。为了让那些刚刚起步的人更简单,我们为vSphere创建了一个标准的Terraform模块。下面是一个创建VMware虚拟机的示例,但是我们没有从头开始创建它(如第一个示例),而是使用了VMware虚拟机模块:"虚拟机"模块{source="vancluever/terraform vsphere虚拟机"版本="1.0.0"数据中心="dc1"datastore="数据存储1"磁盘大小="10"guest_id="otherLinuxGuest"内存="2048"network="网络1"resource_pool="群集1/Resources"vm_count="3"vm_name_prefix="srv"}模块的变量集允许定制代码,而不必编写任何其他必需的组件。此模块接受与基础结构类似的变量,如上面的代码示例,允许在定义基础结构时使用相同级别的详细信息,但不需要相同的开销。»地形工作流Terraform开放源代码为从业者提供了一个工作流程,让他们使用广泛的可用提供者将基础设施作为代码开始使用。Terraform模块注册表可用于共享、存储和利用社区创建的模块。如果您正在处理一个封闭源代码项目,那么您可以将公共可用的模块分支到您的私有存储库中,并且您可以自定义模块本身的代码或模块中提供的变量。下面是一个使用vSphere模块和Terraform OSS的简单工作流。它首先从公共Terraform模块注册表获取一个模块,然后编辑该模块,最后从CLI配置它:»Terraform企业工作流随着运营团队开始在通用vSphere基础设施上展开合作,向Terraform Enterprise(TFE)的过渡很好地满足了这些需求。TFE使团队能够委托创建模块并在组织内共享它们的所有权。下面的示例是团队成员如何利用远程运行、变量和状态存储以及专用模块注册表,由组织内的许多运营商调配和管理vSphere环境,最终能够为开发人员提供自助服务配置,并避免排队的请求积压。TFE用户可以访问同一个公共模块注册表,能够将这些公共模块划分到私有存储库中,但是TFE用户也可以访问私有模块注册表。私有Terraform模块注册表为一个组织提供了一个集中的位置,用于共享、存储和发现模块,这些模块只在该组织内使用。然后,配置设计器提供了一个单一的图形界面,用于发现模块,组合它们,并在其中设置变量,以快速提供基础设施,而无需了解其中更深层的细节。TFE用户享受相同的计划和应用Terraform开放源码的阶段,并在仪表板中添加了丰富的细节和这些阶段的日志记录。»结论Terraform支持单一工作流来管理您的VMware环境、主要云和SaaS产品。从点击式GUI迁移到基础设施作为代码,为您的开发团队提供了一种新的灵活性,可以在不牺牲操作团队监督的情况下将应用程序引入生产环境。要了解有关Terraform的更多信息或立即开始,请访问hashicorp.com/terraform.