Ctrl K
ComunidadGuías…

kafka-rm.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/usr/bin/env ansible-playbook
---
#==============================================================#
# File      :   kafka-rm.yml
# Desc      :   remove kafka cluster / instance from hosts
# Ctime     :   2024-01-01
# Mtime     :   2026-08-06
# Path      :   kafka-rm.yml
# Docs      :   https://pigsty.io/docs/kafka/playbook
# License   :   Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright :   2018-2026  Ruohang Feng / Vonng (rh@vonng.com)
#==============================================================#
- name: KAFKA REMOVE
  hosts: all
  become: true
  gather_facts: no
  ignore_errors: true
  ignore_unreachable: true    # a dead member is retired via surviving members
  vars:
    #kafka_safeguard: false            # set true to halt removal (safety switch)
    #kafka_rm_data: true               # remove data dir & /etc/kafka recovery state? true by default
    kafka_rm_pkg: false                # uninstall kafka packages? false by default, explicit override required
  pre_tasks:
    - name: require an explicit kafka remove limit
      connection: local
      run_once: true
      tags: always
      any_errors_fatal: true
      ignore_errors: false
      assert:
        that:
          - ansible_limit is defined
          - ansible_limit | trim | length > 0
        fail_msg: kafka-rm.yml requires an explicit -l/--limit target
    - name: skip non-kafka hosts
      meta: end_host
      when: kafka_cluster is not defined
      tags: always
  roles:
    - { role: node_id      ,when: kafka_cluster is defined }
    - { role: kafka_remove ,when: kafka_cluster is defined }


#--------------------------------------------------------------#
# Usage
#--------------------------------------------------------------#
#  Remove kafka cluster `kf-main` (always with an exact full-cluster -l limit)
#     ./kafka-rm.yml -l kf-main
#         -e kafka_rm_data=true      # remove data dir & /etc/kafka recovery state (default)
#         -e kafka_rm_data=false     # keep data and recovery state; remove service integration only
#         -e kafka_rm_pkg=true       # also uninstall the kafka-stack packages
#         -e kafka_safeguard=true    # abort: refuse to remove anything
#  It will abort if `kafka_safeguard` is set to `true` explicitly.
#
#  Retire a member (shrink, or clean up after a dead node):
#     ./kafka-rm.yml -l 10.10.10.13  # remove a single member from its cluster
#  Selecting a strict subset of a cluster also retires the leaving kraft voter
#  entry and broker registration through a surviving member, so this works
#  even when the node itself is unreachable. Keep an odd controller count, and
#  note that partition replicas still assigned to the retired broker stay
#  under-replicated until a replacement with the same kafka_seq rejoins via
#  ./kafka.yml (it re-inherits the assignment and resyncs automatically), or
#  until you reassign them explicitly.
#
#--------------------------------------------------------------#
# Tasks
#--------------------------------------------------------------#
# kafka_safeguard  : abort when kafka_safeguard=true
# kafka_deregister : remove kafka / kafka_exporter victoria targets from infra
# kafka            : stop & disable kafka and kafka_exporter services
# kafka_retire     : retire voter entry & broker registration via a survivor
# kafka_config     : stop services; remove config, systemd units, and helper scripts
# kafka_data       : stop services; remove data and /etc/kafka state (disable with kafka_rm_data=false)
# kafka_pkg        : uninstall kafka-stack packages         (enable  with kafka_rm_pkg=true)
#--------------------------------------------------------------#
...