Skip to main content

Primary links

  • Home
  • AI
  • Kubernetes
  • Incus
  • Ansible
  • Terraform
  • OpenStack
  • Virtualization
  • Linux
  • SmartHome
  • HowTo

Misc

  • Linux
  • Hardware
  • Programming
  • Databases
  • Multimedia
  • Windows

Cloud

  • OpenStack
    • Application credentials
    • Authentificaton
    • Barbican (Secret)
    • CLI client (OSC)
    • Cleanup OpenStack
    • Cloud images
    • Designate (DNSaaS)
    • DevStack
    • Gerrit / OpenDev
    • Glance (image)
    • Heat
    • Horizon
    • Ironic / Bifrost
    • Magnum
    • MicroStack
    • Mistral
    • Neutron (network)
    • Object storage
    • Octavia (loadbalancer)
      • Amphora SSH login
      • Fix Octavia / Amphora VMs
      • Octavia / Amphora LB check
      • Proxy protocol
      • Recreate OVS octavia port
    • OpenStack GPU passthrough
    • OpenvSwitch (OVS)
    • Quota
    • RabbitMQ
    • VPN
    • block storage volume (cinder)
    • compute (nova)
    • control
    • diskimage-builder
    • flavor
    • gnocchi
    • kolla-ansible
    • project
    • resource provider
    • server (VM)
    • user
  • cloud-config
  • nextcloud

Virtualization

  • Virtualization
  • Incus
  • Docker
  • KVM
  • Kubernetes
  • LXC
  • LXD
  • QEMU
  • VMware
  • VirtualBox
  • multipass
  • podman
  • vagrant
  • XEN

Network

  • DNS
  • Firewall
  • Linux
  • OpenvSwitch
  • SSL
  • VLAN
  • VPN
  • iPXE
  • namespaces
  • nmcli
  • tcpdump

Storage

  • CEPH
  • DRBD
  • LVM
  • S3
  • ZFS
  • btrfs

Automation / CI/CD

  • Install
  • Ansible
  • GitLab
  • LLM
  • Preseed
  • Puppet
  • Terraform
  • Ubuntu autoinstall

Monitoring / Visualisation

  • Grafana
  • Icinga
  • Prometheus
  • Monitoring
  • ELK
  • mermaid
  • rundeck
  • openstack
  • octavia
#!/bin/bash

source /etc/kolla/admin-openrc.sh


function show_lb_owner() {
    LB_ID=$1

    # show project
    PROJECT_ID=$(openstack loadbalancer show -c project_id -f value ${LB_ID})
    PROJECT_NAME=$(openstack project show -c name -f value ${PROJECT_ID})

    # show domain
    DOMAIN_ID=$(openstack project show -c domain_id -f value ${PROJECT_ID})
    DOMAIN_NAME=$(openstack domain show -c name -f value ${DOMAIN_ID})

    echo "Domain: ${DOMAIN_NAME}"
    echo "Project: ${PROJECT_NAME}"
}


EXIT_CODE=0


# list broken LB
OUTPUT="$(openstack loadbalancer amphora list --provisioning-status ERROR)"
if [ -n "${OUTPUT}" ]; then
    echo "${OUTPUT}"

    EXIT_CODE=1
fi

# search for broken LB
for LB_ID in $(openstack loadbalancer amphora list --provisioning-status ERROR -c loadbalancer_id -f value | uniq | grep -v None); do
    # show LB details
    CMD="openstack loadbalancer show ${LB_ID}"
    echo "${CMD}"
    ${CMD}

    # show LB VMs details
    CMD="openstack loadbalancer amphora list --loadbalancer ${LB_ID}"
    echo "${CMD}"
    ${CMD}

    # show LB owner
    show_lb_owner ${LB_ID}

    echo

    EXIT_CODE=1
done

# search for single amphora VMs
for LB_ID in $(openstack loadbalancer list -c id -f value); do
    if [ $(openstack loadbalancer amphora list --loadbalancer ${LB_ID} -f value | wc -l) -ne 2 ]; then
        # openstack loadbalancer amphora list --provisioning-status ERROR
        # openstack loadbalancer amphora list --role STANDALONE

        echo "Single amphora VM:"
        CMD="openstack loadbalancer amphora list --loadbalancer ${LB_ID}"
        echo "${CMD}"
        ${CMD}

        # show LB details
        CMD="openstack loadbalancer show ${LB_ID}"
        echo "${CMD}"
        ${CMD}

        # show LB owner
        show_lb_owner ${LB_ID}

        echo

        EXIT_CODE=1
    fi
done

# check amphora VM count
LB_COUNT=$(openstack loadbalancer list -f value | wc -l)
LB_AMPHORA_COUNT=$(openstack loadbalancer amphora list --status ALLOCATED -f value | wc -l)
if [ $((LB_COUNT*2)) -ne ${LB_AMPHORA_COUNT} ]; then
    echo "Wrong Amphora VM count: expected: $((LB_COUNT*2)), found: ${LB_AMPHORA_COUNT}"

    echo

    EXIT_CODE=1
fi

# Check running amphora VMs
openstack server list --all-projects --name amphora -c Name -f value | cut -d "-" -f2- | sort > /tmp/amphora_vms
openstack loadbalancer amphora list -f json | jq -r '.[] | select(.status == "READY" or .status == "ALLOCATED").id' | sort > /tmp/amphora_lb
OUTPUT="$(diff /tmp/amphora_vms /tmp/amphora_lb)"
if [ -n "${OUTPUT}" ]; then
    echo "${OUTPUT}"

    EXIT_CODE=1
fi

# show pending update
# openstack loadbalancer list --provisioning-status PENDING_UPDATE -c id -f value | xargs -L1 openstack loadbalancer show -c updated_at -c provisioning_status -c id -c name

# send notification
echo
exit ${EXIT_CODE}
Profiles GitHub StackOverflow LinkedIn Xing
Contact Imprint
© panticz 2026

Cookie-Einstellungen

Diese Website nutzt eingebettete Inhalte von Drittanbietern (z.B. YouTube, SoundCloud). Beim Laden dieser Inhalte werden Daten an die jeweiligen Anbieter übermittelt. Datenverarbeitungserklärung