草庐IT

$Terraform

全部标签

《Terraform 101 从入门到实践》 Terraform在公有云GCP上的应用

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。Terraform支持的公有云有很多,如AWS、Azure、Google、Alibaba等。将Terraform应用于公有云,才最能发挥其强大的功能。初始化GCP项目创建一个新项目首先我们需要初始化一个GCP项目。GCP给开发者提供了免费试用的服务,我们可以在不花钱的情况下学习GCP的功能。要使用GCP,我们需要创建一个项目,它所有的资源都是在项目之下管理的:创建ServiceAccount在实际开发中,我们不能使用自己的账号在做操作,最好的

《Terraform 101 从入门到实践》 第三章 Modules模块化

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。模块的概念模块化是Terraform实现代码重用的方式。模块可以理解为一个包含多个资源的容器模板。封装好之后,可以给大家使用。也可以理解为代码中的函数或方法,它接收入参,经过一些声明式的调用后,输出一些结果变量。从Terraform的代码层面来看,模块其实就是一个包含多个.tf或.tf.json文件的目录。任何一个Terraform项目,都是一个目录,所以也都是一个模块,我们把它称为根模块(RootModule)。而在它目录下的其它模块,都是

《Terraform 101 从入门到实践》 第三章 Modules模块化

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。模块的概念模块化是Terraform实现代码重用的方式。模块可以理解为一个包含多个资源的容器模板。封装好之后,可以给大家使用。也可以理解为代码中的函数或方法,它接收入参,经过一些声明式的调用后,输出一些结果变量。从Terraform的代码层面来看,模块其实就是一个包含多个.tf或.tf.json文件的目录。任何一个Terraform项目,都是一个目录,所以也都是一个模块,我们把它称为根模块(RootModule)。而在它目录下的其它模块,都是

《Terraform 101 从入门到实践》 第四章 States状态管理

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。军书十二卷,卷卷有爷名。为什么需要状态管理Terraform的主要作用是管理云平台上的资源,通过声明式的HCL配置来映射资源,如果云平台上没有资源则需要创建,如果有则不用。那Terraform要实现这个功能有多种方式。一种是每次执行apply命令时都调用API接口检查一下远程的云资源是否与配置文件一致,如果没有则创建,如果有但不同则需要修改,如果有且相同则不用变更。这种机制能保证云平台的资源与HCL配置是一致的。缺点也是非常明显的,每次都需要

《Terraform 101 从入门到实践》 第四章 States状态管理

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。军书十二卷,卷卷有爷名。为什么需要状态管理Terraform的主要作用是管理云平台上的资源,通过声明式的HCL配置来映射资源,如果云平台上没有资源则需要创建,如果有则不用。那Terraform要实现这个功能有多种方式。一种是每次执行apply命令时都调用API接口检查一下远程的云资源是否与配置文件一致,如果没有则创建,如果有但不同则需要修改,如果有且相同则不用变更。这种机制能保证云平台的资源与HCL配置是一致的。缺点也是非常明显的,每次都需要

《Terraform 101 从入门到实践》 第五章 HCL语法

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。介绍了Terraform一些比较基础的概念后,我们可以先了解一下Terraform的语法,也就是HCL的语法。变量Variables变量是实现代码复用的一种方式,同样的代码不同的变量往往会有不同的效果。而在Terraform里,有一个概念非常重要,就是变量都是从属于模块的。变量无法跨模块引用。即在模块A定义的变量X,无法在模块B中直接引用。但父模块的变量,可以作为子模块的入参;而子模块的输出变量可以被父模块获取。变量类型从语言角度跟任何编程语

《Terraform 101 从入门到实践》 第五章 HCL语法

《Terraform101从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。介绍了Terraform一些比较基础的概念后,我们可以先了解一下Terraform的语法,也就是HCL的语法。变量Variables变量是实现代码复用的一种方式,同样的代码不同的变量往往会有不同的效果。而在Terraform里,有一个概念非常重要,就是变量都是从属于模块的。变量无法跨模块引用。即在模块A定义的变量X,无法在模块B中直接引用。但父模块的变量,可以作为子模块的入参;而子模块的输出变量可以被父模块获取。变量类型从语言角度跟任何编程语

通过Google Cloud Storage(GCS)管理Terraform的状态State

管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS。首先要创建一个Bucket:$gsutilmb-ppkslow-lus-west1-bongs://pkslow-terraformCreatinggs://pkslow-terraform/...$gsutillsgs://gs://pkslow-terraform/然后在Terraform文件中配置对应的信息:terraform{backend"gcs"{bucket="pkslow-terraform"prefix="state/gcp/pubsub"}}初始化后,就会在Bucket上创建对应的目录:$t

通过Google Cloud Storage(GCS)管理Terraform的状态State

管理Terraform状态文件的最佳方式是通过云端的统一的存储,如谷歌云就用GCS。首先要创建一个Bucket:$gsutilmb-ppkslow-lus-west1-bongs://pkslow-terraformCreatinggs://pkslow-terraform/...$gsutillsgs://gs://pkslow-terraform/然后在Terraform文件中配置对应的信息:terraform{backend"gcs"{bucket="pkslow-terraform"prefix="state/gcp/pubsub"}}初始化后,就会在Bucket上创建对应的目录:$t

在GCP上创建GCE的三种方式(Console,gcloud,Terraform)

1简介如果要选择GCP为云平台,则经常需要创建GCE(GoogleComputeEngine),有以下几种方式:(1)在浏览器创建(2)命令gcloud(3)Terraform在开始之前,可以查看:《初始化一个GCP项目并用gcloud访问操作》。2GCPConsole登陆操作界面,点击创建按钮,然后选择好参数即可:会显示出对应的价格。3gcloud命令在操作界面创建时,可以直接查看对应的gcould命令:我们直接运行就可以创建了:$gcloudcomputeinstancescreatepkslow-vm\--project=pkslow\--zone=us-west1-a\--machin