Tạo VM với Terraform và Proxmox
Step 1: Tạo API Token và Lưu lại Token ID , Secret
- Login vào proxmox ve server
- Chọn Datacenter ở cột trái
- Nhìn qua phải thì section Permissions > chọn API Token
- Chọn Add để tạo Api Token
- Add Token theo user root
- Privilege Seperation: Unchecked (bỏ check)
- Token Id: Điền tên terraform
- Nhấn Add Button
Lưu lại các thông tin sau vì nó chỉ hiện một lần:
- Token ID: root@pam!teraform
- Secret: 8ac5928a-9f2f-49e0-90d4-7542f87b9361
Step 2: Tạo Folder và các files terraform-proxmox
Sau khi lưu xong token id và secret thì bạn mở webstorm hay vscode lên, tạo project trống tên là terraform-proxmox ở ổ đĩa nào tùy bạn, mình chọn ổ đĩa F:
- Install plugin hổ trợ terraform language
Tạo 3 file, provider.tf, credentials.auto.tfvars, srv-demo-1.tf
file provider.tf
terraform {
required_version = ">= 0.13.0"
required_providers {
proxmox = {
source = "telmate/proxmox"
version = ">= 2.9.3"
}
}
}
variable "proxmox_api_url" {
type = string
}
variable "proxmox_api_token_id" {
type = string
sensitive = true
}
variable "proxmox_api_token_secret" {
type = string
sensitive = true
}
provider "proxmox" {
pm_api_url = var.proxmox_api_url
pm_token_id = var.proxmox_api_token_id
pm_token_secret = var.proxmox_api_token_secret
pm_tls_insecure = true
}
file: credentials.auto.tfvars
proxmox_api_url = "https://gray.kyluat.lan:8006/api2/json"
proxmox_api_token_id = "root@pam!teraform2"
proxmox_api_token_secret = "8ac5928a-9f2f-49e0-90d4-7542f87b9361"
Nhớ chỉnh sửa lại thông tin url, token id và token secret của bạn đã tạo.
file: srv-demo-1.tf
resource "proxmox_vm_qemu" "srv_demo_1" {
name = "srv-demo-1"
desc = "Demo Server 1"
vmid = "201"
target_node = "gray"
agent = 1
clone = "ubuntu-cloud"
cores = 2
sockets = 1
cpu = "host"
memory = 2048
network {
model = "virtio"
bridge = "vmbr0"
}
disk {
type = "virtio"
storage = "local-lvm"
size = "2252M"
}
os_type = "cloud-init"
ipconfig0 = "ip=dhcp"
nameserver = "192.168.1.11"
ciuser = "USERNAMEABC"
sshkeys = <<EOF
ssh-rsa AAAAB3NzaC1yc2EAAABKDJhkashdkahsdahdkhasd.35c2EAAABKDJhkashdkahsdahdkhasd.35c2EAAABKDJhkashdkahsdahdkhasd.35c2EAAABKDJhkashdkahsdahdkhasd.3590Y
EOF
}
Cài đặt terraform lên máy và cd tới folder project đó, sau đó đánh command
cd f:/terraform-proxmox/
terraform init
sau đó đánh command sau để check xem terraform plan success hết variables hay không:
terraform plan
Nếu thấy mọi thứ xanh lè hết thì đúng rồi, trừ phi copy and paste mấy cái thông số sai. Kế tiếp nhấn command sau để apply:
terraform apply --auto-approve