libvirt 的 Terraform 提供程序
这是一个 Terraform 提供程序,允许你通过 Terraform 在 libvirt 主机上配置服务器。
简介与目标
本项目存在的目的:
- 让团队在 Linux 和 KVM 提供的经典且廉价的虚拟化基础设施之上,获得 Terraform 提供的软件定义基础设施的好处。 这有助于非常动态的 DevOps、开发和测试活动。
- 允许将 KVM 资源与 Terraform 能够管理的其他基础设施混合使用
不在范围内的内容:
入门
该提供程序可从 Terraform 注册表 自动安装。
在你的 main.tf
文件中,指定你想使用的版本:
terraform {
required_providers {
libvirt = {
source = "dmacvicar/libvirt"
}
}
}
provider "libvirt" {
# 配置选项
}
现在运行 terraform init:
$ terraform init
创建你的第一个虚拟机
以下是一个示例,将设置以下内容:
- 一个虚拟服务器资源
(将其创建为 main.tf 并从此目录运行 terraform 命令):
provider "libvirt" {
uri = "qemu:///system"
}
你也可以在 LIBVIRT_DEFAULT_URI 环境变量中设置 URI。
现在,定义一个 libvirt 域:
resource "libvirt_domain" "terraform_test" {
name = "terraform_test"
}
现在你可以查看计划,应用它,然后销毁基础设施:
$ terraform init
$ terraform plan
$ terraform apply
$ terraform destroy
手动安装
你也可以从 Github 的发布部分手动下载提供程序。要安装它,请参考 Terraform 文档。
从源代码构建
- 需要 Go 进行构建。
git clone https://github.com/dmacvicar/terraform-provider-libvirt.git
cd terraform-provider-libvirt
make
二进制文件将被命名为 terraform-provider-libvirt
。
使用多个虚拟机监控程序 / 提供程序实例
你可以通过多次实例化提供程序来针对不同的 libvirt 主机。示例。
使用 qemu-agent
根据其文档,qemu-agent:
它是在域内运行的守护程序,旨在帮助管理应用程序执行需要客户操作系统协助的功能。
在 terraform-provider-libvirt 0.4.2 之前,默认使用 qemu-agent 获取网络配置。但是,如果 qemu-agent 未运行,这会导致连接超时的延迟。
在当前版本中,我们默认不尝试连接它,尝试从代理检索网络接口信息需要通过 qemu_agent = true
显式启用,更多详细信息在这里。请注意,你仍然需要确保代理在操作系统中运行,这与此选项无关。
注意:使用桥接网络配置时,你需要启用 qemu_agent = true
。否则你将无法检索域的 IP 地址。
请注意,这些变量在未来版本中可能会再次发生变化。
使用 terraform-libvirt 的上游项目:
-
sumaform sumaform 是一种快速配置、部署、测试 Uyuni 和 SUSE Manager 设置的方法,包括客户端和服务器。
-
ha-cluster-sap 在公有/私有云(包括 Libvirt/KVM)中自动化 HA 和 SAP 部署
-
ceph-open-terrarium ceph-open-terrarium 是一种快速配置、部署、测试 CEPH 集群的方法,可以使用或不使用 Deepsea
-
- kubic-terraform-kvm 使用 KVM/libvirt 的 Kubic Terraform 脚本
-
社区驱动的 Docker 示例 展示如何使用 Libvirt 提供程序的 Docker 示例
-
Openshift 4 安装程序 Openshift 4 安装程序使用 Terraform 进行集群编排,并依赖 terraform-provider-libvirt 用于 libvirt 平台。
-
Kubitect - 一个用于在 libvirt 平台上部署和管理 Kubernetes 集群的 CLI 工具。
作者
- Duncan Mac-Vicar P. duncan@mac-vicar.eu
另请参阅参与本项目的贡献者列表。
结构和样板代码的灵感来自 Softlayer 和 Google Terraform 提供程序源代码。
许可证
- Apache 2.0,请参阅 LICENSE 文件