Files
Deploy-Laboratory/ansible/playbooks/verify/03-02.yml
jack 8c43761962 feat: 按 doc_id 重组 ansible/files 与验证框架
- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径
- 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml
- 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明
- 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本

Made-with: Cursor
2026-03-26 07:01:14 +08:00

99 lines
3.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
- name: Deploy 03-02 Traefik ACME (gated)
hosts: k3s_server
become: true
run_once: true
vars:
k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml
manifest_src: "{{ playbook_dir }}/../../files/03-02-traefik-acme/traefik-acme.yaml"
manifest_dest: /tmp/traefik-acme.yaml
acme_email: "{{ ACME_EMAIL | default('') }}"
tasks:
- name: "Gate - require ACME_EMAIL and cloudflare-api-token secret"
ansible.builtin.shell: |
set -e
test -n "{{ acme_email }}"
KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system get secret cloudflare-api-token >/dev/null
args:
executable: /bin/bash
register: acme_gate
changed_when: false
failed_when: false
- name: Copy manifest
when: acme_gate.rc == 0
ansible.builtin.copy:
src: "{{ manifest_src }}"
dest: "{{ manifest_dest }}"
mode: "0644"
- name: Replace ACME email placeholder
when: acme_gate.rc == 0
ansible.builtin.shell: |
set -e
sed -i "s/<YOUR_REAL_EMAIL>/{{ acme_email | replace('/', '\\/') }}/g" {{ manifest_dest }}
args:
executable: /bin/bash
changed_when: true
- name: Apply manifest + restart traefik
when: acme_gate.rc == 0
ansible.builtin.shell: |
set -e
KUBECONFIG={{ k3s_kubeconfig }} kubectl apply -f {{ manifest_dest }}
KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system rollout restart deploy/traefik || true
args:
executable: /bin/bash
changed_when: true
- name: Verify 03-02 Traefik ACME (gated)
hosts: k3s_server
become: true
run_once: true
vars:
k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml
acme_email: "{{ ACME_EMAIL | default('') }}"
tasks:
- name: "Gate - require ACME_EMAIL and cloudflare-api-token secret"
ansible.builtin.shell: |
set -e
test -n "{{ acme_email }}"
KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system get secret cloudflare-api-token >/dev/null
args:
executable: /bin/bash
register: acme_gate
changed_when: false
failed_when: false
- name: Wait traefik rollout
when: acme_gate.rc == 0
ansible.builtin.shell: |
set -e
KUBECONFIG={{ k3s_kubeconfig }} kubectl -n kube-system rollout status deploy/traefik --timeout=180s
args:
executable: /bin/bash
changed_when: false
- name: Teardown 03-02 Traefik ACME (optional)
hosts: k3s_server
become: true
run_once: true
vars:
k3s_kubeconfig: /etc/rancher/k3s/k3s.yaml
verify_teardown: "{{ (VERIFY_TEARDOWN | default('1')) | string }}"
manifest_dest: /tmp/traefik-acme.yaml
acme_email: "{{ ACME_EMAIL | default('') }}"
tasks:
- name: Delete resources when VERIFY_TEARDOWN=1
when: verify_teardown == "1"
ansible.builtin.shell: |
set -e
# gated只有在 deploy gate 通过且文件存在时才清理;否则跳过,避免 fail-fast。
test -n "{{ acme_email }}"
test -f "{{ manifest_dest }}"
KUBECONFIG={{ k3s_kubeconfig }} kubectl delete -f {{ manifest_dest }} --ignore-not-found=true
args:
executable: /bin/bash
changed_when: true
failed_when: false