| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # 1. 安装 K3S Server(正确官方安装法)
- resource "null_resource" "k3s_server" {
- connection {
- type = "ssh"
- host = "101.201.78.54"
- user = "root"
- password = "Xs261617"
- }
- provisioner "remote-exec" {
- inline = [
- "curl -sfL https://get.k3s.io | sh -",
- "sleep 20"
- ]
- }
- # 每次都重新执行,确保拿最新token
- triggers = {
- always = timestamp()
- }
- }
- # 2. 从 Server 下载 Token 到本地
- resource "null_resource" "get_token" {
- depends_on = [null_resource.k3s_server]
- connection {
- type = "ssh"
- host = "101.201.78.54"
- user = "root"
- password = "Xs261617"
- }
- provisioner "file" {
- source = "/var/lib/rancher/k3s/server/node-token"
- destination = "node-token"
- }
- }
- # 3. 读取本地 Token
- data "local_file" "k3s_token" {
- filename = "node-token"
- depends_on = [null_resource.get_token]
- }
- # 4. 自动安装 Worker 并加入集群
- resource "null_resource" "k3s_worker" {
- depends_on = [data.local_file.k3s_token]
- connection {
- type = "ssh"
- host = "47.120.61.39"
- user = "root"
- password = "Xs261617"
- }
- provisioner "remote-exec" {
- inline = [
- "curl -sfL https://get.k3s.io | K3S_URL=https://101.201.78.54:6443 K3S_TOKEN=${trimspace(data.local_file.k3s_token.content)} sh -"
- ]
- }
- }
- output "status" {
- value = "✅ K3s 一主一从集群安装完成!"
- }
|