79 lines
2.9 KiB
HCL
79 lines
2.9 KiB
HCL
# OpenTofu 小王 - onecloud1 配置部署
|
|
terraform {
|
|
required_providers {
|
|
null = {
|
|
source = "registry.opentofu.org/hashicorp/null"
|
|
version = "3.2.4"
|
|
}
|
|
}
|
|
}
|
|
|
|
# 用小王的 local-exec 执行 SSH 命令
|
|
resource "null_resource" "onecloud1_deploy_via_ssh" {
|
|
provisioner "local-exec" {
|
|
command = <<EOF
|
|
echo "=== OpenTofu 小王开始部署 onecloud1 ==="
|
|
echo "开始时间: $(date)"
|
|
|
|
echo "1. 部署 ash1d 服务器配置..."
|
|
echo " - 测试连接 ash1d..."
|
|
ping -c 1 ash1d.tailnet-68f9.ts.net || echo " - ash1d ping 失败"
|
|
|
|
echo " - 上传配置文件..."
|
|
sshpass -p '3131' scp -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
|
|
../nomad-configs-tofu/ash1d-server.hcl \
|
|
ben@ash1d.tailnet-68f9.ts.net:/tmp/nomad-new.hcl && echo " - 文件上传成功" || echo " - 文件上传失败"
|
|
|
|
echo " - 执行配置部署..."
|
|
sshpass -p '3131' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
|
|
ben@ash1d.tailnet-68f9.ts.net \
|
|
"echo '=== ash1d 配置部署开始 ==='; \
|
|
echo '3131' | sudo -S systemctl stop nomad; \
|
|
echo '清理 Raft 数据...'; \
|
|
echo '3131' | sudo -S rm -rf /opt/nomad/data/server/raft/; \
|
|
echo '替换配置文件...'; \
|
|
echo '3131' | sudo -S cp /tmp/nomad-new.hcl /etc/nomad.d/nomad.hcl; \
|
|
echo '启动服务...'; \
|
|
echo '3131' | sudo -S systemctl start nomad; \
|
|
sleep 5; \
|
|
echo '检查服务状态...'; \
|
|
echo '3131' | sudo -S systemctl status nomad --no-pager; \
|
|
echo '=== ash1d 部署完成 ==='" && echo " - ash1d 部署成功" || echo " - ash1d 部署失败"
|
|
|
|
echo "2. 部署 onecloud1 服务器配置..."
|
|
echo " - 测试连接 onecloud1..."
|
|
ping -c 1 onecloud1.tailnet-68f9.ts.net || echo " - onecloud1 ping 失败"
|
|
|
|
echo " - 上传配置文件..."
|
|
sshpass -p '3131' scp -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
|
|
../nomad-configs-tofu/onecloud1-server.hcl \
|
|
ben@onecloud1.tailnet-68f9.ts.net:/tmp/nomad-new.hcl && echo " - 文件上传成功" || echo " - 文件上传失败"
|
|
|
|
echo " - 执行配置部署..."
|
|
sshpass -p '3131' ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 \
|
|
ben@onecloud1.tailnet-68f9.ts.net \
|
|
"echo '=== onecloud1 配置部署开始 ==='; \
|
|
echo '3131' | sudo -S systemctl stop nomad; \
|
|
echo '清理 Raft 数据...'; \
|
|
echo '3131' | sudo -S rm -rf /opt/nomad/data/server/raft/; \
|
|
echo '替换配置文件...'; \
|
|
echo '3131' | sudo -S cp /tmp/nomad-new.hcl /etc/nomad.d/nomad.hcl; \
|
|
echo '启动服务...'; \
|
|
echo '3131' | sudo -S systemctl start nomad; \
|
|
sleep 5; \
|
|
echo '检查服务状态...'; \
|
|
echo '3131' | sudo -S systemctl status nomad --no-pager; \
|
|
echo '=== onecloud1 部署完成 ==='" && echo " - onecloud1 部署成功" || echo " - onecloud1 部署失败"
|
|
|
|
echo "=== 小王部署完成!时间: $(date) ==="
|
|
EOF
|
|
}
|
|
|
|
triggers = {
|
|
deploy_time = timestamp()
|
|
}
|
|
}
|
|
|
|
output "deploy_result" {
|
|
value = "OpenTofu 小王已完成 onecloud1 部署"
|
|
} |