From 9cd633cf88f6c55d21f098932040f6a0ec0beea2 Mon Sep 17 00:00:00 2001 From: Derek Noble Date: Fri, 15 Mar 2024 15:34:25 -0500 Subject: [PATCH] DOC: Openstack server cli tools --- docs/openstack-servers.md | 155 ++++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 2 files changed, 156 insertions(+) create mode 100644 docs/openstack-servers.md diff --git a/docs/openstack-servers.md b/docs/openstack-servers.md new file mode 100644 index 00000000..35a0998c --- /dev/null +++ b/docs/openstack-servers.md @@ -0,0 +1,155 @@ +# Openstack Servers + +To read more about Openstack Servers using the [upstream docs](https://docs.openstack.org/python-openstackclient/pike/cli/command-objects/server.html). + +#### List and view servers + +``` shell +$ openstack server list + [--quote {all,minimal,none,nonnumeric}] + [--reservation-id ] + [--ip ] + [--ip6 ] + [--name ] + [--instance-name ] + [--status ] + [--flavor ] + [--image ] + [--host ] + [--all-projects] + [--project ] + [--project-domain ] + [--user ] + [--user-domain ] + [--long] + [-n] + [--marker ] + [--limit ] + [--deleted] + [--changes-since ] +``` + +#### Create a new server + +``` shell +$ openstack server create + (--image | --volume ) + --flavor + [--security-group ] + [--key-name ] + [--property ] + [--file ] + [--user-data ] + [--availability-zone ] + [--block-device-mapping ] + [--nic ] + [--network ] + [--port ] + [--hint ] + [--config-drive |True] + [--min ] + [--max ] + [--wait] + +``` + +#### Delete a server + +``` shell +$ openstack server delete [--wait] [ ...] +``` + +# Launch a server from a snapshot + +#### Create a snapshot of the instance + +!!! note + + If necessary, list the instances to view the instance name with the list server command above. + +1. Shut down the source VM before you take the snapshot to ensure that all data is flushed to disk. Use the openstack server stop command to shut down the instance: + + ``` shell + $ openstack server stop myInstance + ``` +2. Use the openstack server list command to confirm that the instance shows a SHUTOFF status. + +3. Use the openstack server image create command to take a snapshot: + + ``` shell + $ openstack server image create myInstance --name myInstanceSnapshot + ``` + The above command creates the image myInstance by taking a snapshot of a running server. + +4. Use the openstack image list command to check the status until the status is active: + + ``` shell + $ openstack image list + ``` + +#### Download the snapshot + +!!! note + + Get the image id from the image list command (seen above). + +Download the snapshot by using the image ID: + +``` shell +$ openstack image save --file snapshot.raw {Image ID} +``` + +Make the image available to the new environment, either through HTTP or direct upload to a machine (scp). + +#### Import the snapshot to the new env + +In the new project or cloud environment, import the snapshot: + +``` shell +$ openstack image create NEW_IMAGE_NAME \ + --container-format bare --disk-format qcow2 --file IMAGE_URL +``` + +#### Boot a new sever from the snapshot + +In the new project or cloud environment, use the snapshot to create the new instance: + +``` shell +$ openstack server create --flavor m1.tiny --image myInstanceSnapshot myNewInstance +``` + +# Launch a server from a volume + +#### Boot instance from volume + +You can create a bootable volume from an existing image, volume, or snapshot. This procedure shows you how to create a volume from an image and use the volume to boot an instance. + +1. List available images, noting the ID of the image that you wish to use. + + ``` shell + $ openstack image list + ``` + +2. Create a bootable volume from the chosen image. + + ``` shell + $ openstack volume create \ + --image {Image ID} --size 10 \ + test-volume + ``` +3. Create a server, specifying the volume as the boot device. + + ``` shell + $ openstack server create \ + --flavor $FLAVOR --network $NETWORK \ + --volume {Volume ID}\ + --wait test-server + ``` +4. List volumes once again to ensure the status has changed to in-use and the volume is correctly reporting the attachment. + + ``` shell + $ openstack volume list + + $ openstack server volume list test-server + ``` + \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index 0c30a84a..58ff1f0b 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -209,3 +209,4 @@ nav: - Cloud Onboarding: - Openstack Security Groups: openstack-security-groups.md - Openstack Floating Ips: openstack-floating-ips.md + - Openstack Servers: openstack-servers.md