feat(ansible): ansible 初步稳定
这个提交包含在:
+24
-12
@@ -7,12 +7,15 @@
|
||||
```
|
||||
ansible/
|
||||
├── ansible.cfg # Ansible 配置
|
||||
├── inventory/hosts.yml # 主机清单 ⭐ 需修改
|
||||
├── group_vars/all.yml # 全局变量
|
||||
├── .env.example # 环境变量模板
|
||||
├── .ansible-lint # Lint 规则配置
|
||||
├── requirements.yml # Ansible Galaxy 依赖
|
||||
├── inventory/
|
||||
│ ├── hosts.yml # 主机清单 ⭐ 需修改
|
||||
│ └── group_vars/all.yml # 全局变量
|
||||
├── roles/
|
||||
│ ├── ssh/ # SSH 安全加固
|
||||
│ │ ├── tasks/main.yml
|
||||
│ │ ├── handlers/main.yml
|
||||
│ │ └── templates/sshd_config.j2
|
||||
│ ├── common/ # 基础配置 (hostname, sysctl, tailscale)
|
||||
│ │ ├── tasks/main.yml
|
||||
@@ -24,9 +27,7 @@ ansible/
|
||||
│ ├── k3s-agent.yaml.j2 # Agent 配置
|
||||
│ └── registries.yaml.j2 # 镜像加速
|
||||
└── playbooks/
|
||||
├── site.yml # 完整安装
|
||||
├── init.yml # 首次安装 (含 SSH 加固)
|
||||
└── add-node.yml # 添加节点
|
||||
└── site.yml # 完整安装
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
@@ -57,8 +58,7 @@ export TAILSCALE_AUTH_KEY="tskey-auth-xxx"
|
||||
# 首次安装 (SSH 加固)
|
||||
export SSH_PASSWORD="your-root-password"
|
||||
|
||||
# 添加节点时 (从首节点安装输出获取)
|
||||
export K3S_TOKEN="K10xxx::server:xxx"
|
||||
# 单独添加节点时 (完整安装时自动获取)
|
||||
export K3S_SERVER_URL="https://10.0.0.1:6443"
|
||||
```
|
||||
|
||||
@@ -74,10 +74,10 @@ ansible-playbook playbooks/site.yml --tags ssh,common,k3s,status
|
||||
ansible-playbook playbooks/site.yml
|
||||
|
||||
# 方式三: 仅安装首个 master
|
||||
ansible-playbook playbooks/site.yml -l master1
|
||||
ansible-playbook playbooks/site.yml -l first-master-name
|
||||
|
||||
# 方式四: 添加新节点
|
||||
ansible-playbook playbooks/add-node.yml -l agent1
|
||||
ansible-playbook playbooks/site.yml -l new-node-name
|
||||
```
|
||||
|
||||
### 4. 获取 kubeconfig
|
||||
@@ -108,8 +108,8 @@ kubectl get nodes
|
||||
| 变量 | 必须 | 说明 |
|
||||
|------|------|------|
|
||||
| `TAILSCALE_AUTH_KEY` | ✅ | Tailscale Auth Key |
|
||||
| `K3S_TOKEN` | 加入节点时 | 集群 Token |
|
||||
| `K3S_SERVER_URL` | 加入节点时 | API Server 地址 |
|
||||
| `K3S_TOKEN` | 单独添加节点时 | 集群 Token (完整安装时自动获取) |
|
||||
| `K3S_SERVER_URL` | 单独添加节点时 | API Server 地址 (完整安装时自动设置) |
|
||||
| `SSH_PASSWORD` | 首次安装 | SSH 密码 |
|
||||
| `SSH_PUBKEY` | - | SSH 公钥 (默认 ~/.ssh/id_rsa.pub) |
|
||||
|
||||
@@ -129,6 +129,18 @@ kubectl get nodes
|
||||
3. 启用密钥认证
|
||||
4. 自动添加本地公钥
|
||||
|
||||
## 集群安装流程
|
||||
|
||||
Playbook 按以下顺序执行:
|
||||
|
||||
1. **初始化节点安装**: 安装 `cluster_init: true` 的第一个 master 节点
|
||||
2. **动态获取 Token**: 从初始化节点读取 `/var/lib/rancher/k3s/server/node-token`
|
||||
3. **Token 注入**: 将 K3S_TOKEN 和 K3S_SERVER_URL 设置为所有节点的 fact
|
||||
4. **其他 Master 节点**: 使用动态获取的 Token 加入集群
|
||||
5. **Agent 节点**: 使用动态获取的 Token 加入集群
|
||||
|
||||
这样在一次性安装整个集群时,无需手动设置 `K3S_TOKEN` 环境变量。
|
||||
|
||||
## 常用命令
|
||||
|
||||
```bash
|
||||
|
||||
在新议题中引用
屏蔽一个用户