首页 > 社交 > 科普中国

IaC示例:Terraform

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

LIBVIRT_HYPERVISOR_URI := "qemu:///system"
LIBVIRT_TEMPLATES_IMAGES_POOL := "templates"
LIBVIRT_TEMPLATES_IMAGES_POOL_DIR := "/var/lib/libvirt/images/templates"
LIBVIRT_IMAGE_NAME := "debian11-5.qcow2"
ROOT_PASSWORD := "rootPassword"
$(eval SSH_IDENTITY=$(shell find ~/.ssh/ -name 'id_*' -not -name '*.pub' | head -n 1))

默认使用 ${HOME}/.ssh/id_rsa 的密钥对作为 SSH 免密访问的密钥,如果没有,请先创建一个。qTu拜客生活常识网

执行 make image 进行镜像的构建,以及在本地虚拟化环境创建名为 templates 的存储池,并将镜像上传到该存储池中,命名为 debian11-5.qcow2 的卷,具体的代码,请查看 MakefileqTu拜客生活常识网

❯ make image
...

完成之后,我们可以通过 virsh 命令查看镜像卷qTu拜客生活常识网

❯ sudo virsh vol-list --pool templates
 名称               路径
------------------------------------------------------------------------
 debian11-5.qcow2   /var/lib/libvirt/images/templates/debian11-5.qcow2

补充: 在文件 base.pkr.hcl 中,对 iso 文件源的配置qTu拜客生活常识网

  iso_url           = "https://mirrors.ustc.edu.cn/debian-cd/current/amd64/iso-cd/debian-11.5.0-amd64-netinst.iso"

配置网络地址时,在 packer 进行构建时,可能会下载 iso 文件超时而导致构建失败。可通过预先下载对应的 iso 文件到本地文件系统,然后将 iso_url 配置为本地路径,例如qTu拜客生活常识网

  iso_url           = "/data/debian-11.5.0-amd64-netinst.iso"

这样可以避免由于网络问题导致构建失败。qTu拜客生活常识网

创建虚拟机实例

接下来,我们将使用 Terraform 创建并初始化集群所需要的虚拟机实例,进入 k3scluster/terraform/ 目录qTu拜客生活常识网

❯ cd ../terraform/

该目录下包含了创建集群所需虚拟机资源的定义,首先看 provider.tf 文件qTu拜客生活常识网

terraform {
  required_providers {
    libvirt = {
      source  = "dmacvicar/libvirt"
      version = "0.7.0"
    }
  }
  required_version = ">= 0.13"
}

provider "libvirt" {
  uri = var.libvirt_uri
}

因为我们需要通过 libvirt 创建虚拟机,因此这里需要 dmacvicar/libvirt 的 Provider,该 Provider 的 uri 配置为变量 var.libvirt_uri,默认为 qemu:///system,也就是本地虚拟环境。qTu拜客生活常识网

其他需要的变量定义都放在 variables.tf 文件中。资源文件 vms.tf 定义了需要创建的资源,其中包括qTu拜客生活常识网

resource "libvirt_network" "network" {
  name      = var.net_name
  mode      = "nat"
  domain    = var.net_domain
  addresses = [var.subnet]
  dhcp {
    enabled = true
  }
  dns {
    enabled    = true
    local_only = true
  }
}    

相关阅读:

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