Playbook
How to use built-in Ansible playbooks to manage NODE clusters, with a quick reference for common commands.
Pigsty provides two playbooks related to the NODE module:
node.yml : Add nodes to Pigsty and configure them to the desired state
node-rm.yml : Remove managed nodes from Pigsty
Two wrapper scripts are also provided: bin/node-add and bin/node-rm, for quickly invoking these playbooks.
node.yml
The node.yml playbook for adding nodes to Pigsty contains the following subtasks:
node-id : generate node identity
node_name : setup hostname
node_hosts : setup /etc/hosts records
node_resolv : setup DNS resolver /etc/resolv.conf
node_firewall : setup firewall & selinux
node_ca : add & trust CA certificate
node_repo : add upstream software repository
node_pkg : install rpm/deb packages
node_uv : setup uv Python virtual environment
node_feature : setup numa, grub, static network
node_kernel : enable kernel modules
node_tune : setup tuned profile
node_sysctl : setup additional sysctl parameters
node_profile : write /etc/profile.d/node.sh
node_alias : write /etc/profile.d/node.alias.sh
node_ulimit : setup resource limits
node_data : setup data directory
node_admin : setup admin user and ssh key
node_timezone : setup timezone
node_ntp : setup NTP server/client
node_crontab : add/overwrite crontab tasks
node_vip : setup optional L2 VIP for node cluster
haproxy : setup haproxy on node to expose services
monitor : setup node monitoring: node_exporter & vector
node-rm.yml
The node-rm.yml playbook for removing nodes from Pigsty contains the following subtasks:
register : remove registration from prometheus & nginx
- prometheus : remove registered prometheus monitoring target
- nginx : remove nginx proxy record for haproxy admin
vip : remove keepalived & L2 VIP (if VIP enabled)
haproxy : remove haproxy load balancer
node_exporter : remove node monitoring: Node Exporter
vip_exporter : remove keepalived_exporter (if VIP enabled)
vector : remove log collection agent vector
node_crontab : restore default /etc/crontab (if node_crontab_overwrite=true)
profile : remove /etc/profile.d/node.sh
node-rm.yml removes Pigsty management and stops NODE-related services; it is not an operating-system teardown or full uninstall:
It deregisters Node, Docker, Ping, VIP, and other monitoring targets, plus the HAProxy administration portal.
It stops and disables HAProxy, Node Exporter, Vector, and Keepalived/Exporter when enabled.
It removes HAProxy configuration and NODE Vector configuration, and deletes vector_data (default: /data/vector).
It does not uninstall packages, remove the admin user, delete node_data, stop Docker, or delete Docker data.
The current removal role deletes vector_data directly and does not use the installation role’s vector_clean switch. Confirm that no Vector buffer data must be retained before running it.
Quick Reference
# Basic node management
./node.yml -l <cls| ip| group> # Add node to Pigsty
./node-rm.yml -l <cls| ip| group> --check # Preflight; execute after exact-target confirmation
# Node management shortcuts
bin/node-add node-test # Initialize node cluster 'node-test'
bin/node-add 10.10.10.10 # Initialize node '10.10.10.10'
./node-rm.yml -l node-test --check # Preflight before bin/node-rm node-test
./node-rm.yml -l 10.10.10.10 --check # Preflight before bin/node-rm 10.10.10.10
# Node main initialization
./node.yml -t node # Complete node main init (excludes haproxy, monitor)
./node.yml -t haproxy # Setup haproxy on node
./node.yml -t monitor # Setup node monitoring: node_exporter & vector
# VIP management
./node.yml -t node_vip # Setup optional L2 VIP for node cluster
./node.yml -t vip_config,vip_reload # Refresh node L2 VIP configuration
# HAProxy management
./node.yml -t haproxy_config,haproxy_reload # Refresh service definitions on node
# Registration management
./node.yml -t register_prometheus # Re-register node to Prometheus
./node.yml -t register_nginx # Re-register node haproxy admin to Nginx
# Specific tasks
./node.yml -t node-id # Generate node identity
./node.yml -t node_name # Setup hostname
./node.yml -t node_hosts # Setup node /etc/hosts records
./node.yml -t node_resolv # Setup node DNS resolver /etc/resolv.conf
./node.yml -t node_firewall # Setup firewall & selinux
./node.yml -t node_ca # Setup node CA certificate
./node.yml -t node_repo # Setup node upstream software repository
./node.yml -t node_pkg # Install yum packages on node
./node.yml -t node_uv # Setup uv Python virtual environment
./node.yml -t node_feature # Setup numa, grub, static network
./node.yml -t node_kernel # Enable kernel modules
./node.yml -t node_tune # Setup tuned profile
./node.yml -t node_sysctl # Setup additional sysctl parameters
./node.yml -t node_profile # Setup node environment: /etc/profile.d/node.sh
./node.yml -t node_alias # Setup command aliases: /etc/profile.d/node.alias.sh
./node.yml -t node_ulimit # Setup node resource limits
./node.yml -t node_data # Setup node primary data directory
./node.yml -t node_admin # Setup admin user and ssh key
./node.yml -t node_timezone # Setup node timezone
./node.yml -t node_ntp # Setup node NTP server/client
./node.yml -t node_crontab # Add/overwrite crontab tasks