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. cái url thay thế bằng ip address server proxmox của bạn cũng đc. ví dụ: https://192.168.1.12:8006/api2/json
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