基础架构自动化编排工具Terraform安装与使用踩坑记录

Terraform简介

Terraform 是一种安全有效地构建、更改和版本控制基础设施的工具(基础架构自动化的编排工具)。Terraform 几乎可以支持所有市面上能见到的云服务。具体的说就是可以用代码来管理维护 IT 资源,把之前需要手动操作的一部分任务通过程序来自动化的完成,这样的做的结果非常明显:高效、不易出错。

Terraform 提供了对资源和提供者的灵活抽象。该模型允许表示从物理硬件、虚拟机和容器到电子邮件和 DNS 提供者的所有内容。由于这种灵活性,Terraform 可以用来解决许多不同的问题。这意味着有许多现有的工具与Terraform 的功能重叠。但是需要注意的是,Terraform 与其他系统并不相互排斥。它可以用于管理小到单个应用程序或达到整个数据中心的不同对象。

Terraform 使用配置文件描述管理的组件(小到单个应用程序,达到整个数据中心)。Terraform 生成一个执行计划,描述它将做什么来达到所需的状态,然后执行它来构建所描述的基础结构。随着配置的变化,Terraform 能够确定发生了什么变化,并创建可应用的增量执行计划。

Terraform 是用 Go 语言开发的开源项目,你可以在 github 上访问到它的源代码。

Terraform 核心功能

  • 基础架构即代码(Infrastructure as Code)
  • 执行计划(Execution Plans)
  • 资源图(Resource Graph)
  • 自动化变更(Change Automation)

基础架构即代码(Infrastructure as Code)
使用高级配置语法来描述基础架构,这样就可以对数据中心的蓝图进行版本控制,就像对待其他代码一样对待它。

执行计划(Execution Plans)
Terraform 有一个 plan 步骤,它生成一个执行计划。执行计划显示了当执行 apply 命令时 Terraform 将做什么。通过 plan 进行提前检查,可以使 Terraform 操作真正的基础结构时避免意外。

资源图(Resource Graph)
Terraform 构建的所有资源的图表,它能够并行地创建和修改任何没有相互依赖的资源。因此,Terraform 可以高效地构建基础设施,操作人员也可以通过图表深入地解其基础设施中的依赖关系。

自动化变更(Change Automation) 
把复杂的变更集应用到基础设施中,而无需人工交互。通过前面提到的执行计划和资源图,我们可以确切地知道 Terraform 将会改变什么,以什么顺序改变,从而避免许多可能的人为错误。

基于CentOS7.5安装配置Terraform

1.安装需要的工具

yum install wget unzip git

2.下载与安装Terraform


wget https://releases.hashicorp.com/terraform/0.11.13/terraform_0.11.13_linux_amd64.zip
unzip terraform_0.11.13_linux_amd64.zip
mv terraform /usr/local/bin/

测试安装是否成功,执行如下命令,如正确输出Terraform版本信息则为正确:

# terraform version

正确结果如下所示:

3.安装待管理资源相关provider

Linux 以及 Mac 中将这个二进制文件放到 ~/.terraform.d/plugins/ 中。在 Windows 当中把这个二进制文件放到用户的 “Application Data” 目录下的 terraform.d/plugins/ 下。或者插件和terrafrom放到同一个目录,本次安装放在/usr/local/terraform/路径下。

# cd /usr/local/
# mkdir -p terraform/terraform.d/plugins/
# cd terraform.d/plugins/

下载相应的provider,例如:kubernetes、mysql等provider

# git clone git@github.com:terraform-providers/terraform-provider-kubernetes
# git clone git@github.com:terraform-providers/terraform-provider-mysql
# cd terraform-provider-kubernetes

配置Go语言编译环境(provider都是基于Go语言开发的,所以要编译provider需要先配置Go语言环境,且要求Go语言版本为Go 1.11.x,本次安装版本为go1.11.9)。首先下载Go语言软件包(安装路径可自设,本次安装在/usr/local目录下):

# cd /usr/local/
# wget -c https://studygolang.com/dl/golang/go1.11.9.linux-amd64.tar.gz
# tar -zxvf go1.11.9.linux-amd64.tar.gz

设置环境变量:

# vim /etc/profile

# 在文件尾部添加如下内容
# Go path
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

保存退出后,执行如下命令使上一步中设置的环境变量生效:

# source /etc/profile

测试go语言环境是否正常,执行如下命令如果正确输出Go语言版本则正确:

# go version

正确结果如下所示:

编译provider,执行如下命令:

# cd /usr/local/terraform/terraform.d/plugins/
#cd terraform-provider-kubernetes/
# make build
# make test

至此,Terraform自动化编排工具安装完成,可以使用它管理k8s集群,mysql数据库等。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值