玩转阿里云 Terraform(三):Terraform 的安装和加速

简介: 本文以Mac OS为例,详细介绍如何在本地安装Terraform,并在文章最后介绍一种可以加速Terraform安装的方法。

上一篇《玩转阿里云 Terraform(二):Terraform 的几个关键概念》介绍了 Terraform 运行的几个关键概念,掌握了这些名词后,本文将详细介绍如何安装Terraform,为后续的动手实践最准备。

由于Terraform是用Golang语言编写的,并且是一个面向客户端的工具,因此对Terraform的安装等同于安装一个可执行的二进制文件,过程非常简单。本文以Mac OS为例,详细介绍如何在本地安装Terraform,并在文章最后介绍一种可以加速Terraform安装的方法。

1 Terraform 的安装

Terraform 的安装包含Terraform运行主体的安装,Provider和Provisioner等插件的安装。

1.1 Terraform 主体的安装

本文以Mac OS为例,通过三步完成对Terraform的安装:

第一步:下载Terraform版本到本地特定目录并解压
访问Terraform Release页面,点击想要下载的版本(强烈建议下载0.12.x版本,其对Terraform命令和语法规则做了很大的升级)目录,找到Mac系统的 darwin_amd64 包,点击直接下载到特定目录,如 workspace ,或者右键“复制链接地址”手动下载和解压:

$ mkdir workspace && cd workspace
$ wget https://releases.hashicorp.com/terraform/0.12.13/terraform_0.12.13_darwin_amd64.zip
$ unzip terraform_0.12.13_darwin_amd64.zip

第二步:配置安装目录到PATH,以便系统可以识别

$ export PATH=$(PWD):$PATH

# 如果想要永久生效,可以将其配置到Profile变量文件 ~/.bash_profile
$ echo export PATH=$(PWD):$PATH >> ~/.bash_profile
$ source ~/.bash_profile # 执行 source 命令使其生效

第三步:验证是否安装成功

$ terraform version
Terraform v0.12.13

如果想要在其他操作系统上安装Terraform,可以参考官方展示的安装步骤:https://learn.hashicorp.com/terraform/getting-started/install.html#installing-terraform

1.2 插件的安装

插件的安装包括对Provider和Provisioner的安装。插件的安装有两种方式:自动安装和手动安装。

init命令自动安装插件

编写了Terraform模板之后,在模板所在的目录下执行 terraform init , terraform 将会根据模板中指定的Provider和Provisioner的类型或者Provider中的资源类型,自动加载最新的或者指定的Provider版本:

provider "alicloud" {
  profile = "terraform"
  region  = "eu-central-1"
  version = "1.60.0"
}

显示指定Provider及其版本,init 命令将自动下载阿里云Provider 1.60.0 版本:

$ terraform version
Terraform v0.12.8
+ provider.alicloud v1.60.0

如果在模板中不指定Provider,那么定义跟Provider版本相关的resource或者data source, init 命令同样可以完成对应Provider最新版本的下载:

resource "alicloud_vpc" "default" {
  cidr_block = "172.16.0.0/16"
  ...
}

下载插件Package,手动安装插件

除了 init 命令自动下载外,还可以手动完成插件的安装。具体的操作步骤跟安装Terraform主体的方法一样,即访问Provider的下载页面:https://releases.hashicorp.com/terraform-provider-alicloud/ 下载特定版本的Package,并将其解压到Terraform主体所在的目录即可。感兴趣的同学可以尝试以下,本文不再赘述。

值得注意的是,如果模板中定义的Provider的版本与本地安装版本不一致,那么再次运行 init 命令时,将以模板优先。

2 Terraform 安装加速

相信大部分同学在上述的下载和安装过程中,经常会遇到下载失败的问题。这因为Terraform及其Provider等插件的所有发布的Release都存放在海外服务上,国内网络访问时会遇到下载速度慢甚至无法访问的情况。面对在这种情况,Hashicorp目前并未给出好的解决方案。

阿里云为了不影响大家对Terraform以及阿里云Provider的使用,在一款在线工具 CloudShell 上对Terraform进行了预安装,同时对 terraform init 做了加速处理,支持对包括阿里云Provider alicloud 在内的更多Provider,如 docker , helm , kubernetes , local , null , random 等20多种。CloudShell的加速过程可以详见云栖博客《加速Terraform init》。

加速后的CloudShell将 terraform init 初始化的时间从 3min+ 降低到 3-6s ,大大降低了Terraform Provider安装和使用的成本,欢迎大家使用。

目录
相关文章
|
6月前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
115 0
|
Kubernetes NoSQL 持续交付
使用Terraform/Ansible/Kubernetes在阿里云上自动部署MongoDB
Terraform, Ansible, Kubernetes, MongoDB, AliCloud
415 1
EMQ
|
存储 JSON 安全
使用 Terraform 在阿里云上快速部署 MQTT 集群
本文将以分布式物联网 MQTT 消息服务器 EMQX 为例,采用阿里云作为公有云平台,介绍如何使用 Terraform 快速部署一个高可用的 MQTT 集群。
EMQ
276 0
使用 Terraform 在阿里云上快速部署 MQTT 集群
|
存储 运维 自然语言处理
“阿里云开放平台俱乐部”首站启航,助力企业基于Terraform完成上云进阶
简介:阿里云开放平台致力于帮助开发者快速上云并完成云上管理,未来将举办一系列开发者沙龙,帮助开发者解决如何“降本、提效”的管理云资源等问题
“阿里云开放平台俱乐部”首站启航,助力企业基于Terraform完成上云进阶
|
运维 架构师 数据中心
阿里云开发者 DevUP 沙龙 -北京站 -基于Terraform玩转阿里云邀你参加啦
8月22日,阿里云Terraform技术专家何贵民,携手Terraform官方资深架构师刘宇雷,为大家分享云计算行业自动化编排最前沿技术与应用,期待与您共同成长。
14674 0
阿里云开发者 DevUP 沙龙 -北京站 -基于Terraform玩转阿里云邀你参加啦
|
弹性计算 运维 自然语言处理
Terraform 支持自动化开通阿里云产品
## 什么是 Terraform 和云产品开通 **Terraform** 一款开源的运行在客户端的自动化资源编排工具,以 IaC 的理念实现云资源的自动化运维。更多细节可以参考 [Terraform 是什么](https://developer.aliyun.com/article/713099)。 **云产品开通**,顾名思义,就是阿里云客户在使用某些云产品前,需要登录云产品官方控
773 0
Terraform 支持自动化开通阿里云产品
|
架构师 Devops 数据中心
阿里云开发者DevUP沙龙·北京·基于Terraform玩转阿里云 圆满结束
本次阿里云开发者DevUP沙龙·北京·基于Terraform玩转阿里云线下技术沙龙已完美落幕,本文带你回顾基本次活动的全部干货亮点!
1591 0
阿里云开发者DevUP沙龙·北京·基于Terraform玩转阿里云 圆满结束
|
数据中心
玩转阿里云 Terraform(四):Terraform 常用命令详解
通过前几篇文章的介绍,相信大家对Terraform已经有了大致的熟悉和了解,本文将从实践开始,向大家介绍Terraform的几个常见命令。 Terraform是一个面向客户端的工具,所以对所有资源的管理都是通过Terraform命令来实现的。
12199 0
|
存储 对象存储 数据中心
五分钟入门阿里云Terraform OSS Backend
生态工具Terraform的资源编排能力在持续提升企业上云效率,降低运维成本方面越来越专业和完善。对于一个企业和团队来讲,如何保证State的安全性和如何实现对同一份资源的协同管理也是必须要关心的问题。本文将详细介绍如何在阿里云上解耦对资源模板与State管理,消除团队协作的障碍。
2292 0
|
2月前
|
弹性计算 持续交付 API
基于 ROS 的Terraform托管服务轻松部署ChatGLM-6B
文章介绍了如何利用ROS和Terraform模板轻松自动化部署基于GLM架构、优化中文对话的ChatGLM-6B模型至阿里云,提高了部署效率与便捷性,适用于多种应用场景,且模型部署过程详细,彰显了基础设施即代码(IaC)的优势。
48 3
基于 ROS 的Terraform托管服务轻松部署ChatGLM-6B

推荐镜像

更多