Pulumi
Pulumi
pulumi是什么
pulumi通常和terraform进行对比,所以它是一个iac工具,为什么有了 terraform还会有pulumi?我觉得pulumi可以做很好的补充,对于开发者来说会 多一个选择,并且terraform被IBM收购,许可证改变,谁知道后续会发生啥呢? 而我们作为云平台的使用者,多了解这些工具肯定是没问题的。
有的人可能会问,为什么我不直接调用各个云的sdk?当然可以!只是调用sdk是 一个动作,而iac是代码即技术设施,你编写的代码会转化成若干基础设施,并 且非常方便迁移到另一个云的,而无需关注很多细节。有点类似ansible和 puppet。通过大量的dsl把api隐藏了,你只需要关注里面的属性和对象,然后按 照provider提供的方式进行编写就好了。
下面我将演示下国内常用的阿里云和腾讯云的pulumi的用法。
首先标记下官方文档 https://www.pulumi.com/docs/
安装
在官方文档这里安装说明直接进行安装即可 https://www.pulumi.com/docs/install/
但是我使用curl的方式实在太慢了,于是选择下载里面的二进制格式, 这里我 建议你下载最新版本,目前没有进入debian源,还是比较遗憾的
|
|
pulumi工作方式
如果你用过terraform, 我想说其实是类似的
编写或者生成iac代码,通过cli把代码传递给language hosts, 调用对应的 provider进行实际状态的同步(增删改查),最终把state保存在一个地方,方 便后续的diff和一致性。更多的你可以参考pulumi concepts。
在pulumi的工作目录里面,基本按照这个层级,
project->stack->resource
项目最大,可以在里面放很多stack, 一般是放类似分支的部分,比如dev, staging, production。
在stack里面放实际的resources,比如ec2, s3等等。
多个资源也可以合并,在pulumi里面叫component。
先了解导入资源
具体可以参考这个链接 https://www.pulumi.com/docs/using-pulumi/adopting-pulumi/import/
一旦了解了导入,我们就可以很快的进行编写和参考,如果你用过 terraform
import
应该会了解这个
导入以后也可以在这个基础上进行额外的修改
aliyun使用
|
|
转换
https://www.pulumi.com/docs/using-pulumi/adopting-pulumi/
一般我个人是不太喜欢转换的,因为毕竟原来的工具的特性不是转换工具能大部 分覆盖住的,转换也会让个人丢失不少细节,在下次修改的时候不方便,不过如 果转换确实能基本可用,那也是可以使用下看看的。