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
  • 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

Fix Octavia / Amphora VMs

List Amphora VMs

openstack server list --project service

Fix broken/out Amphora VMs / Ports
http://eavesdrop.openstack.org/irclogs/%23openstack-lbaas/%23openstack-lbaas.2019-05-17.log.html

OpenStack: flavor

List all flavors

openstack flavor list --sort-column Name --all

Formated output

for FLAVOR in $(openstack flavor list --sort-column Name -c Name -f value); do
    echo ${FLAVOR}
    openstack flavor show ${FLAVOR}
    echo
done

Delete all flavors

openstack flavor list --all -c ID -f value | xargs openstack flavor delete

Resize / switch flavor
https://docs.openstack.org/mitaka/user-guide/cli_change_the_size_of_your_server.html

nova resize ${SERVER_ID} 4

nova resize-confirm ${SERVER_ID}
# or
nova resize-revert ${SERVER_ID}

OpenStack: Allow user access to tanent projects

Get mgmt user data

USER_ID=$(openstack user list -c ID -c Name -f value | grep ${OS_USERNAME} | cut -d" " -f1)
echo ${USER_ID}

# grep project ID by VM
openstack server show -c project_id -f value ${SERVER_ID}

# get projects
openstack project list --long | grep safyievOokEgavUtdytPeurmebKowEff

# get assignments
openstack role assignment list --user JekUvyeijHaDrithWianvestUtevLiUk --project e72c94c20b4d40e3b971bc510d536e87 --names

# get Domain name
openstack domain list | grep safyievOokEgavUtdytPeurmebKowEff

Search tanent data

# get user domain ID
openstack domain list | grep yrgsonova

# get user id
openstack user list --long  | grep 6dac5139fa41465e89766746cec640e4

# get project id
openstack project list --long | grep 6dac5139fa41465e89766746cec640e4

# get assignments
openstack role assignment list --user 0749e19d1af349509c7941fd2d60a358  --project odWejBicHajIvtakeytPiUsGeJajyood --names

Add user to tanent project

USER_ID=x0a10xb0aafa4e8aax50caa04b0afxb0
PROJECT_ID=2435bbb1ec5d40b08254ce11382b178d

ROLES="
creator
heat_stack_owner
load-balancer_member
member
_member_
"

for ROLE in ${ROLES}; do
    openstack role add --user ${USER_ID} --project ${PROJECT_ID} ${ROLE}
done

# list existing role
openstack role assignment list --user ${USER_ID} --project ${PROJECT_ID} --names

Remove user access from tanent project

OpenStack: Magnum

Documentation
https://docs.openstack.org/magnum/latest/user/

Pre-requirements

# install OSC magnum client to fix "a bytes-like object is required, not 'str'"
echo "deb http://archive.ubuntu.com/ubuntu hirsute main restricted" > /etc/apt/sources.list.d/hirsute.list
apt update
apt install -y python3-magnumclient

# install kubectl
snap install kubectl --classic

CLI

openstack stack list
openstack stack show d8a1c3af-7993-4493-91be-19cfce38a870
openstack coe cluster update k8s-cluster replace node_count=2

Configure deployment kolla-ansible

# cat /etc/kolla/config/magnum.conf 
[cinder]
default_docker_volume_type = VT1

[trust]
cluster_user_trust = True

/etc/kolla/config/heat.conf 
[DEFAULT]
#region_name = ch-zh1
region_name_for_services = RegionOne

# /etc/kolla/globals.yml 
# magnum_tag: "7.0.0.1"
enable_magnum: "yes"

Redeploy / Reconfigure container

kolla-ansible -i /etc/kolla/inventory-hosts deploy -t magnum

Get Fedora AtomicHost images
https://dl.fedoraproject.org/pub/alt/atomic/stable/?C=M;O=D

OpenStack: Application credentials

List application credentials

openstack application credential list

Create application credentials (with pre-formated output for clouds.yaml)

openstack application credential create foo-dev-admin \
  --role admin \
  --expiration $(date -I -d '+3 month')T23:59:59  \
  --description "Test application credentials" \
  --unrestricted \
  -c id \
  -c secret \
  -f json \
  | jq -r '"application_credential_id: \"" + .id + "\"", "application_credential_secret: \"" + .secret + "\""'

Configure clouds.yml

# ~/.config/openstack/clouds.yaml
clouds:
  dev-foo-unrestricted:
    auth_type: "v3applicationcredential"
    auth:
      auth_url: https://keystone.example.com/v3
      application_credential_id: "b9275fc5b3aadceeb407fbe941427425"
      application_credential_secret: "HqfdfKk3q63xrnIZgdkizePfv1s27aYPBTrbiMKFNdrOU1JpdjfR0KSyomS4A01vSdxjkE9MzPuM4dVG7emWuA"

Test application credentials

openstack --os-cloud=dev-foo-unrestricted image list

Delete application credentials

openstack application credential delete ${APPLICATION_CREDENTIAL_ID}

Links
https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/application-credentials.html

Open vSwitch (OVS)

Install

apt install -y openvswitch-switch

List

# list interfaces
docker exec openvswitch_vswitchd ovs-vsctl list-ifaces br-int

# show bridges
docker exec openvswitch_vswitchd ovs-vsctl list-br

# show ports
docker exec openvswitch_vswitchd ovs-vsctl list-ports br-int

Create interface
https://docs.openstack.org/octavia/latest/install/install-ubuntu.html

# create bridge
ovs-vsctl add-br mybridge
# ifconfig mybridge up
ip link set mybridge up
ovs-vsctl show
ovs-dpctl show

# create
echo docker exec openvswitch_vswitchd ovs-vsctl -- --may-exist add-port br-int my-if1 -- \
set Interface my-if1 type=internal -- \
set Interface my-if1 external-ids:iface-status=active -- \
set Interface my-if1 external-ids:attached-mac=${CTL_HOST_MAC} -- \
set Interface my-if1 external-ids:iface-id=${PORT_ID} -- \
set Interface my-if1 external-ids:skip_cleanup=true

# Create port
openvswitch_vswitchd ovs-vsctl -- --may-exist add-port br-int my-port1 -- \
    set Interface o-hm0 type=internal -- \
    set Interface o-hm0 mac="${PORT_MAC}" -- \
    set Interface o-hm0 external-ids:iface-status=active -- \
    set Interface o-hm0 external-ids:iface-id=${PORT_ID} -- \
    set Interface o-hm0 external-ids:skip_cleanup=true -- \
    set Interface o-hm0 external-ids:attached-mac=${PORT_MAC}

# create vlan
ovs-vsctl add-port br0 vlan10 tag=10 -- set Interface vlan10 type=internal
ip addr add 192.168.0.123/24 dev vlan10

Show / List

ovs-vsctl show

ovs-vsctl list bridge
ovs-vsctl list port
ovs-vsctl list interface

Create

ovs-vsctl -- --may-exist add-port br-int o-hm0 -- \
set Interface o-hm0 type=internal -- \
set Interface o-hm0 external-ids:iface-status=active -- \
set Interface o-hm0 external-ids:attached-mac=${CTL_HOST_MAC} -- \
set Interface o-hm0 external-ids:iface-id=${PORT_ID} -- \
set Interface o-hm0 external-ids:skip_cleanup=true

Delete

# delete port
ovs-vsctl del-port br-int o-hm0

# delete ovs-tcpdump port
ovs-vsctl del-port br-tun ovsmiXXXXXX

# delete bridge
ovs-vsctl del-br mybridge

CLI
http://www.sznote.net/?p=1032

OpenStack: Glance (Image)

Deaktivate image

IMAGE_NAME="Ubuntu 14.04"
openstack image list --status active --name "${IMAGE_NAME}" -c ID -f value | \
  xargs openstack image set --deactivate --private

openstack image list --status active

List the images

openstack image list

Delete image

IMAGE_NAME="Ubuntu 16.04"
openstack image set --unprotected ${IMAGE_NAME}
openstack image delete ${IMAGE_NAME}

# delete all images
for IMAGE in $(openstack image list -c ID -f value); do
    openstack image set --unprotected ${IMAGE}
    openstack image delete ${IMAGE}
done

Deploy ISO image

openstack image create grml \
  --file grml64-small_2018.12.iso \
  --disk-format iso \
  --container-format bare

Find images used by server

for IMAGE in $(openstack image list | grep ubuntu | cut -d" " -f2); do
    echo "IMAGE: ${IMAGE}"
    openstack server list --all-projects --image ${IMAGE}
    echo
done

Get server image project relation

export OS_CLOUD=dev
echo SERVER_ID IMAGE PROJECT_ID
for IMAGE in $(openstack image list -c ID -c Name -f value | grep -i "Windows Server" | cut -d" " -f1); do
    for SERVER in $(openstack server list --all-projects --image ${IMAGE} -c ID -f value); do
        openstack server show ${SERVER} -f value -c id -c image -c project_id | paste - - -
        # openstack project show sd32sd0fsdfj9sdf9sdf0sda7fsda -f value -c name 
    done
done

openstack project show XXX --os-cloud=dev  -f value -c name
openstack server show XXX --os-cloud=dev -f value -c name

Shared images

OpenStack: Live migrate VM to another OpenStack hypervisor

show migrate state / log

nova migration-list --instance-uuid  ${SERVER_ID}

# show multiple migrations by date
nova migration-list | grep 2020-02-20 | awk -F"|" '{ print $8}' | sort | uniq -dc

CLI

OpenStack: Octavia LoadBalancer (LBaaS)

Releasenotes
https://docs.openstack.org/releasenotes/octavia/

CLI
https://docs.openstack.org/octavia/latest/user/guides/basic-cookbook.html
https://clouddocs.web.cern.ch/networking/load_balancing.html

openstack loadbalancer list --project ${PROJECT_ID}
openstack floating ip list --project ${PROJECT_ID} --fixed-ip-address 10.1.2.13

# show loadbalancer listener
openstack loadbalancer listener list --loadbalancer ${LB_NAME} -c id -f value | \
    xargs -L1 openstack loadbalancer listener show -c name -c id -c protocol -c default_tls_container_ref -c sni_container_refs

# get for HTTPS listener ID
openstack loadbalancer listener list --loadbalancer ${LB_NAME} -f json | jq -r '.[] | select(.protocol_port == 443) | .id'

Create Amphora image

sudo apt install -y python3-pip git qemu qemu-utils debootstrap kpartx
sudo pip3 install diskimage-builder

git clone https://github.com/openstack/octavia.git -b stable/stein
cd octavia
sudo ./diskimage-create/diskimage-create.sh -d bionic -t raw
chmod a+r ./amphora-x64-haproxy.raw

Upload Amphora image

#openstack image create --container-format bare --disk-format qcow2 --private --file amphora-x64-haproxy.qcow2 --tag amphora amphora
openstack image create --container-format bare --disk-format raw --public --file amphora-x64-haproxy.raw --tag amphora amphora --os-cloud=dev-admin
openstack image set --protected amphora --os-cloud=dev-admin
openstack image list --long

Configure OpenStack

OpenStack: Cleanup project objects

# Delete VMs
openstack server list --project=test-project --os-cloud=prod-user1
openstack server delete ${VM_ID}

# Delete floating ip
openstack floating ip list --project=test-project --os-cloud=prod-user1
openstack floating ip delete ${FLOATING_IP_1} 1.2.3.4

# Delete router
openstack router list --project=test-project --os-cloud=prod-user1
openstack subnet list --project=test-project --os-cloud=prod-user1
openstack router remove subnet ${ROUTER_ID} ${SUBNET_ID}
openstack router delete ${ROUTER_ID}

# Delete subnet
openstack subnet list --project=test-project --os-cloud=prod-user1
openstack subnet delete ${SUBNET_ID}

# Delete network
openstack network list --project=test-project --os-cloud=prod-user1
openstack network delete ${NETWORK_ID}

# Delete security group
openstack security group list --project=test-project --os-cloud=prod-user1
openstack security group delete ${SECURITY_GROUP_ID}

# Delete keypair
openstack keypair list
openstack keypair delete ${KEYPAIR_ID}

# Delete project (admin only)
openstack project list --domain everyware --os-cloud=prod-user1
openstack project delete ${PROJECT_ID}

Optional

Pagination

  • Previous page
  • 8
  • Next page
openstack
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