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 activeList the images
openstack image listDelete 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}
doneDeploy ISO image
openstack image create grml \
--file grml64-small_2018.12.iso \
--disk-format iso \
--container-format bareFind 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
doneGet 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 nameShared images
openstack image list --shared
glance member-list --image-id ${IMAGE_ID}
cloudbase-Init (Windows)
https://cloudbase.it/openstack-windows-nano-server/
Find image usage by volume
Fix: The image cannot be deleted because it is in use through the backend store outside of Glance
IMAGE_ID=d9ccd517-da5a-493e-b56c-6968d7d650ea
echo "Image:"
openstack image show ${IMAGE_ID} -c id -c name
IMAGE_PROJECT_ID=$(openstack image show ${IMAGE_ID} -c owner -f value)
VOLUME_IDS=$(openstack volume list --project ${IMAGE_PROJECT_ID} -c ID -f value)
for VOLUME_ID in ${VOLUME_IDS}; do
VOLUME_IMAGE_METADATA_JSON=$(openstack volume show ${VOLUME_ID} -c volume_image_metadata -f json 2>/dev/null)
if [ ! -z "${VOLUME_IMAGE_METADATA_JSON}" ]; then
VOLUME_IMAGE_ID=$(echo ${VOLUME_IMAGE_METADATA_JSON} | jq -r '.volume_image_metadata.image_id')
if [ "${VOLUME_IMAGE_ID}" == "${IMAGE_ID}" ]; then
echo "Used by Volume:"
openstack volume show ${VOLUME_ID} -c id -c name -c status
echo "Server:"
SERVER_ID=$(openstack volume show ${VOLUME_ID} -c attachments -f json | jq -r '.attachments[].server_id')
openstack server show ${SERVER_ID} -c id -c name
fi
fi
doneShow image available in AZs
openstack image show ubuntu2404 -fjson | egrep "store|az|import"
"os_glance_failed_import": "",
"os_glance_importing_to_stores": "",
"stores": "az1,az2,az3",
"store": "az1,az2,az3",
"store": "az1"
"store": "az2"
"store": "az3"
glance image-list --include-stores | grep ubuntu2404
Links
https://docs.openstack.org/python-openstackclient/latest/cli/command-objects/image.html
https://docs.openstack.org/glance/latest/admin/manage-images.html