| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- # Clean up any existing k3s installation on the master node
- resource "null_resource" "k3s_cleanup_master" {
- # SSH 登录你的 master server
- connection {
- type = "ssh"
- host = var.master_ip
- user = "root"
- password = var.master_password
- }
- # 远程执行清理命令
- provisioner "remote-exec" {
- inline = [
- "echo -e '\\033[32mCleanup start on master node\\033[0m'",
- "systemctl stop k3s 2>/dev/null || true",
- "pkill -f k3s 2>/dev/null || true",
- #"rm -rf /usr/local/bin/k3s",
- "rm -f /etc/systemd/system/k3s.service",
- "rm -rf /var/lib/rancher/k3s",
- "rm -rf /etc/rancher/k3s",
- "rm -rf /root/.kube",
- "echo -e '\\033[32mCleanup completed on master node\\033[0m'"
- ]
- }
- }
- # Install k3s server on the master node
- resource "null_resource" "k3s_install_master" {
- depends_on = [null_resource.k3s_cleanup_master]
-
- # SSH 登录你的 master server
- connection {
- type = "ssh"
- host = var.master_ip
- user = "root"
- password = var.master_password
- }
- # 远程执行命令(你原来的所有逻辑,一模一样)
- provisioner "remote-exec" {
- inline = [
- "if [ ! -f /usr/local/bin/k3s ]; then",
- "wget -O /usr/local/bin/k3s http://download.9981.tech/k3s-v1.35.0%2Bk3s1",
- "chmod +x /usr/local/bin/k3s",
- "else",
- "echo -e '\\033[32m start installing master ... \\033[0m'",
- "chmod +x /usr/local/bin/k3s",
- "nohup /usr/local/bin/k3s server --disable=traefik --disable=servicelb --disable=metrics-server --token=my-secret-token --https-listen-port=6443 --pause-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.6 --system-default-registry=registry.cn-hangzhou.aliyuncs.com > /root/k3s.log 2>&1 &",
- #"/usr/local/bin/k3s server &",
- "disown",
- "echo -e '\\033[32m Done server master! \\033[0m'",
- #"systemctl start k3s",
- #"echo -e '\\033[32m Done installing master ... \\033[0m'",
- "fi"
- ]
- }
- }
- # Wait for k3s server to be ready on master node
- resource "null_resource" "wait_for_k3s_ready" {
- depends_on = [null_resource.k3s_install_master]
- connection {
- type = "ssh"
- host = var.master_ip
- user = "root"
- password = var.master_password
- }
- provisioner "remote-exec" {
- inline = [
- "# 等待 k3s 服务完全启动并生成 token",
- "timeout 300 bash -c 'while [ ! -f /var/lib/rancher/k3s/server/node-token ]; do echo waiting for k3s token...; sleep 10; done' || exit 1",
- " echo 'T----------------'",
- ]
- }
- }
|