Pulumi是一个开源工具,您可以使用基础设施即代码(IaC)和声明性方法,使用熟悉的编程语言管理阿里云资源。阿里云是第一家与Pulumi融合的云厂商,我们的开放平台现在为Pulumi提供全面支持。Pulumi-alicloud可用于提供41个阿里云产品。该解决方案可以满足很多大客户对自动化迁移到云端的需求。我们欢迎您试用阿里云开放平台。

IaC工具之Pulumi_基础设施

Pulumi六大核心优势

以下是Pulumi六大核心优势的罗列。正如您所看到的,Pulumi可能是您在阿里云上部署和管理资源的首选工具。

  1. 混合云支持:您可以使用相同的工具来管理和部署云和OpenStack资源以及Kubernetes集群。
  2. 多语言支持:您可以使用通用编程语言来编写声明性配置,而不必学习特定于供应商的模板语言。
  3. 声明性编程:Pulumi以可重复和可预测的方式定义、规定和配置资源,以减少由于人为因素造成的部署和管理错误。声明式编程允许您描述基础结构的期望状态,而不是构造基础结构的强制过程。您可以使用相同的配置来创建相同的环境。
  4. 基础设施即代码(IaC):您可以使用代码来管理和维护资源。Pulumi存储自己的基础结构当前状态的副本,这样您就可以跟踪对系统中不同组件所做的更改,并与其他用户共享这些配置。
  5. 集成开发环境(IDE)支持:Pulumi允许您使用复杂的编程语言来编写基础结构和应用程序配置。这使您能够访问IDE函数,如语法高亮显示、检测和测试。
  6. 统一工具:您可以使用相同的语言工具进行自动化资源管理和应用程序开发。例如,您可以使用Pulumi Python SDK创建数据库实例并执行操作,例如用Python语言创建数据库表。

快速开始

要开始创建Pulumi项目,您需要遵循以下步骤。

目标:

我们将创建一个Pulumi项目,然后部署一个安装在Linux上的阿里云弹性计算服务(ECS)实例。实例将部署到您选择部署它的任何区域和区域。该实例将配置安全组规则,该实例的网络将是阿里云虚拟私有云(VPC)。

要求:

对于本教程,您将需要Python 3或更高版本。您还需要安装virtualenv。你需要安装Pulumi。您可以参考本文档,安装Pulumi,以获得一些帮助。

程序:

要安装Pulumi项目,您需要遵循以下步骤:

1.运行Pulumi new--dir命令在本地计算机上创建一个工作目录。按照提示选择适当的模板。

2.转到下一页,选择alicloud-python模板。

IaC工具之Pulumi_架构_02

3.按提示输入项目名称、说明、堆栈名、阿里云区域(默认为cn-beijing)。然后,出现一条消息,指示项目已经创建。您可以运行提供的命令来启动第一次部署。

4.确认项目创建后在本地目录中生成的文件。具体情况如下:

  • __ main__.py文件用于定义部署配置,pulumi.demo-dev.yaml文件记录堆栈的公共配置,例如区域。
  • YAML文件记录项目的元数据,包括项目名称、描述和语言。
  • txt文件定义了运行任务所需的Python模块。

5.按指示转到工作目录。为此,可以使用以下命令:

cd project-demo

6.使用以下命令激活独立的Python环境。如果服务器上只有一个Python版本,请跳过此步骤。

virtualenv -p python3 venv source venv/bin/activate

7.安装Pulumi和Pulumi-alicloud模块。

pip3 install -r requirements.txt

接下来,要部署安装了Linux的ECS实例,请遵循以下步骤:

1.定义部署文件。

main.py文件的内容如下:

import pulumi

import pulumi_alicloud as alicloud

vpc = alicloud.vpc.Network("my-vpc",cidr_block="172.16.0.0/12")

az = "cn-hangzhou-i"

sg = alicloud.ecs.SecurityGroup("pulumi_sg",description="pulumi security_groups",vpc_id=vpc.id)

vswitch = alicloud.vpc.Switch("pulumi_vswitch",availability_zone=az,cidr_block="172.16.0.0/21",vpc_id=vpc.id)

sg_ids= [sg.id]

sg_rule= alicloud.ecs.SecurityGroupRule("sg_rule",security_group_id=sg.id,ip_protocol = "tcp", type= "ingress",nic_type = "intranet",port_range="22/22",cidr_ip="0.0.0.0/0")

instance=alicloud.ecs.Instance("ecs-instance2",availability_zone=az,instance_type ="ecs.t6-c1m1.large" , security_groups =sg_ids,image_id="ubuntu_18_04_64_20G_alibase_20190624.vhd",instance_name ="ecsCreatedByPulumi2",vswitch_id=vswitch.id,internet_max_bandwidth_out = 10)

上面的代码导入Pulumi_alicloud模块并定义VPC、VSwitch、安全组、安全组规则,最后定义ECS实例。

2.使用Pulumi命令行界面(CLI)应用配置。运行Pulumiup命令。

IaC工具之Pulumi_基础设施_03

在应用配置之前,查看执行计划并选择详细信息。确认设置后,选择是运行配置。下图显示已经创建了五个资源。

IaC工具之Pulumi_云计算_04

3、您也可以在Pulumi官网上点击Permalink查看执行结果。

IaC工具之Pulumi_云计算_05

现在,如果您已经按照上面的步骤进行了操作,那么您已经使用Pulumi创建了一个阿里云ECS实例。

总结

将基础设施作为代码(IaC)来管理云基础设施和资源将是未来的一大趋势。但是,需要学习额外的特定于供应商的模板语言会增加学习成本。现在,Pulumi阿里云插件解决了这一问题,让用户更便捷、高效地管理阿里云中的资源。