首页 > 社交 > 科普中国

IaC示例:Terraform

常驻编辑 科普中国 2022-10-13 集群   节点   示例   变量   基础设施   虚拟机   实例   定义   代码   环境   文件

上一篇文章介绍了一个轻量级的 Kubernetes 发行版本 - k3s 。
这篇文章,我们将通过使用以下几个 IaC(Infrastructure as Code)工具,在本地环境(例如你的 Linux 工作台)自动化部署一个可用的 K3S 集群
qTu拜客生活常识网

  • Packer - HashiCorp 开源的一个系统镜像构建工具。
  • Terraform - HashiCorp 开源的基础设施及代码自动化管理工具。
  • Ansible - RedHat赞助的一个开源社区项目,IT自动化配置工具。

环境需求

本演示将的所有操作将在一台支持虚拟化(kvm + qemu + libvirt) Linux 主机上执行。qTu拜客生活常识网

在 Ubuntu 上启用虚拟化环境,请参考 KVM hypervisor: a beginner's guide 。
在 Fedora 上启用虚拟化环境,请参考 Getting startyed with virtualization (libvirt) 。
在 openSUSE 上启用虚拟化环境,请参考 Virtualization Guide 。
qTu拜客生活常识网

其他 Linux 发行版,请参考相关文档。qTu拜客生活常识网

我是在我的笔记本电脑上执行的操作,系统是 openSUSE Leap 15.4 。qTu拜客生活常识网

除了上述的虚拟化需求外,还需要在系统上安装上面提到的几个工具。如果你的环境中有 LinuxBrew,则可通过 Brew 直接安装qTu拜客生活常识网

❯ brew install packer terraform ansible

否则,请下载各自官方发布的二进制包,解压后放到 PATH 路径中。qTu拜客生活常识网

❯ packer version
Packer v1.8.3

❯ terraform version
Terraform v1.3.2
on linux_amd64

❯ ansible --version
ansible [core 2.13.4]

因为本示例中,使用了 Terraform 的 ansbile provisioner,因此还需要安装这个插件qTu拜客生活常识网

❯ mkdir -p ~/.terraform.d/plugins

❯ curl -sL 
  https://raw.githubusercontent.com/radekg/terraform-provisioner-ansible/master/bin/deploy-release.sh 
  --output /tmp/deploy-release.sh

❯ chmod +x /tmp/deploy-release.sh

❯ /tmp/deploy-release.sh -v 2.5.0

❯ rm -rf /tmp/deploy-release.sh

完成以上需求之后,我们将开始执行如下步骤qTu拜客生活常识网

  • 使用 Packer 创建一个基于 Debian 11.5.0 的虚拟机系统模板镜像,该镜像中,将会配置好 SSH 免密登陆密钥。
  • 使用 Terraform 在本地虚拟环境中,创建出需要的虚拟机,并生成后续 ansible 配置虚拟机需要的 inventory 文件。
  • 使用 Ansible 配置虚拟机节点安装 k3s 集群,以及演示应用。

以上所有步骤的代码在 (https://github.com/mengzyou/i...)qTu拜客生活常识网

将代码克隆到本地qTu拜客生活常识网

❯ git clone https://github.com/mengzyou/iac-examples.git

❯ cd iac-example/k3scluster/

创建虚拟机镜像

首先我们需要通过 Packer 创建一个虚拟机系统镜像,后续需要使用该镜像来创建虚拟机实例,需要的代码在 k3scluster/packer/ 目录下qTu拜客生活常识网

❯ cd packer/

❯ tree 
.
|-- Makefile
|-- base.pkr.hcl
`-- preseed
    |-- debian11.txt

这里通过 Makefile 来调用 packer 进行镜像的构建,和上传到虚拟化环境,注意以下变量配置

相关阅读:

  • kubernetes上部署
  • 互联网后端技术大全!建议收藏
  • 1.8亿年前蜉蝣婚飞
  • 我科学家揭示最古老昆虫婚飞行为
  • Java后端大神总结的“造火箭”理论,找工作很有用哦
  • “长不大”的寒武纪:收入1.72亿,亏损6.22亿,市值暴跌800
  • 一图读懂《促进中小企业特色产业集群发展暂行办法》↓
  • hadoop、hbase、zookeeper集成kerberos认证
  • 黄河宿集:打动人的不止风景,还有场景
  • 为何要发展中小企业产业集群?记者调研带你看集群优势→
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。