From 3eddea8bf8ed3b94bbc4320dabaa23b750293503 Mon Sep 17 00:00:00 2001 From: Derek Noble Date: Thu, 5 Sep 2024 15:55:05 -0500 Subject: [PATCH] DOC: Update Cloud Onboarding pages --- docs/openstack-floating-ips.md | 58 +++++++++++++++---------------- docs/openstack-images.md | 10 +++--- docs/openstack-keypairs.md | 10 +++--- docs/openstack-router.md | 34 +++++++++++++----- docs/openstack-security-groups.md | 28 +++++++-------- docs/openstack-servers.md | 28 +++++++-------- docs/openstack-snapshot.md | 14 ++++---- docs/openstack-volumes.md | 14 ++++---- 8 files changed, 107 insertions(+), 89 deletions(-) diff --git a/docs/openstack-floating-ips.md b/docs/openstack-floating-ips.md index b4eeb5b7..f3796150 100644 --- a/docs/openstack-floating-ips.md +++ b/docs/openstack-floating-ips.md @@ -5,7 +5,7 @@ To read more about Openstack Floating Ips using the [upstream docs](https://docs #### List and view floating ips ``` shell -openstack floating ip list +openstack --os-cloud={cloud name} floating ip list [--network ] [--port ] [--fixed-ip-address ] @@ -18,7 +18,7 @@ openstack floating ip list #### Create a floating ip ``` shell -openstack floating ip create +openstack --os-cloud={cloud name} floating ip create [--subnet ] [--port ] [--floating-ip-address ] @@ -36,7 +36,7 @@ openstack floating ip create ``` shell -openstack floating ip delete [ ...] +openstack --os-cloud={cloud name} floating ip delete [ ...] ``` #### Floating ip set @@ -44,7 +44,7 @@ openstack floating ip delete [ ...] Set floating IP properties ``` shell -openstack floating ip set +openstack --os-cloud={cloud name} floating ip set --port [--fixed-ip-address ] @@ -53,13 +53,13 @@ openstack floating ip set #### Display floating ip details ``` shell -openstack floating ip show $VIP +openstack --os-cloud={cloud name} floating ip show $VIP ``` #### Unset floating IP Properties ``` shell -openstack floating ip unset --port $VIP +openstack --os-cloud={cloud name} floating ip unset --port $VIP ``` #### Associate floating IP addresses @@ -69,7 +69,7 @@ You can assign a floating IP address to a project and to an instance. Associate an IP address with an instance in the project, as follows: ``` shell -openstack server add floating ip $INSTANCE_UUID $VIP +openstack --os-cloud={cloud name} server add floating ip $INSTANCE_UUID $VIP ``` #### Disassociate floating IP addresses @@ -77,13 +77,13 @@ openstack server add floating ip $INSTANCE_UUID $VIP To disassociate a floating IP address from an instance: ``` shell -openstack server remove floating ip $INSTANCE_UUID $VIP +openstack --os-cloud={cloud name} server remove floating ip $INSTANCE_UUID $VIP ``` To remove the floating IP address from a project: ``` shell -openstack floating ip delete $VIP +openstack --os-cloud={cloud name} floating ip delete $VIP ``` #### Floating Ip Example @@ -95,19 +95,19 @@ You will need to get your cloud name from your `clouds.yaml`. More information o First create a floating ip either from PUBLICNET or the public ip pool. ``` shell -openstack --os-cloud $CLOUD floating ip create PUBLICNET +openstack --os-cloud={cloud name} floating ip create PUBLICNET ``` Second get the cloud server UUID. ``` shell -openstack --os-cloud $CLOUD server list +openstack --os-cloud={cloud name} server list ``` Third add the floating ip to the server ``` shell -openstack --os-cloud $CLOUD server add floating ip $UUID $VIP +openstack --os-cloud={cloud name} server add floating ip $UUID $VIP ``` #### Shared floating IP and virtual IP @@ -133,13 +133,13 @@ With that caveat, you can set up a shared floating IP like this: 1. Create a Neutron network ``` shell - openstack network create tester-network + openstack --os-cloud={cloud name} network create tester-network ``` 2. Create a subnet for the network ``` shell - openstack subnet create --network tester-network \ + openstack --os-cloud={cloud name} subnet create --network tester-network \ --subnet-range $CIDR \ tester-subnet ``` @@ -149,7 +149,7 @@ With that caveat, you can set up a shared floating IP like this: Create `tester1` server. ``` shell - openstack server create tester1 --flavor m1.tiny \ + openstack --os-cloud={cloud name} server create tester1 --flavor m1.tiny \ --key-name keypair \ --network tester-network \ --image $IMAGE_UUID @@ -158,7 +158,7 @@ With that caveat, you can set up a shared floating IP like this: Create `tester2` server. ``` shell - openstack server create tester2 --flavor m1.tiny \ + openstack --os-cloud={cloud name} server create tester2 --flavor m1.tiny \ --key-name keypair \ --network tester-network \ --image $IMAGE_UUID @@ -167,7 +167,7 @@ With that caveat, you can set up a shared floating IP like this: 4. Create a port with a fixed IP for the VIP. ``` shell - openstack port create --fixed-ip subnet=tester-subnet \ + openstack --os-cloud={cloud name} port create --fixed-ip subnet=tester-subnet \ --network tester-network \ --no-security-group tester-vip-port ``` @@ -180,7 +180,7 @@ With that caveat, you can set up a shared floating IP like this: public IP, depending on your configuration. ``` shell - openstack router create tester-router + openstack --os-cloud={cloud name} router create tester-router ``` 6. Add at external Internet gateway to the router @@ -190,13 +190,13 @@ With that caveat, you can set up a shared floating IP like this: for your own installation. ``` shell - openstack router set --external-gateway PUBLICNET tester-router + openstack --os-cloud={cloud name} router set --external-gateway PUBLICNET tester-router ``` 7. Add the subnet to the router ``` shell - openstack router add subnet tester-router tester-subnet + openstack --os-cloud={cloud name} router add subnet tester-router tester-subnet ``` 8. Create a floating IP for the port @@ -207,7 +207,7 @@ With that caveat, you can set up a shared floating IP like this: here. ``` shell - openstack floating ip create --port tester-vip-port PUBLICNET + openstack --os-cloud={cloud name} floating ip create --port tester-vip-port PUBLICNET ``` Note and retain the ID and/or IP returned, since you will need it for the @@ -225,13 +225,13 @@ With that caveat, you can set up a shared floating IP like this: instances. ``` shell - openstack port list server tester1 # retrieve port UUID - openstack port set --allowed-address ip-address= + openstack --os-cloud={cloud name} port list server tester1 # retrieve port UUID + openstack --os-cloud={cloud name} port set --allowed-address ip-address= ``` ``` shell - openstack port list server tester2 # retrieve port UUID - openstack port set --allowed-address ip-address= + openstack --os-cloud={cloud name} port list server tester2 # retrieve port UUID + openstack --os-cloud={cloud name} port set --allowed-address ip-address= ``` The steps above complete creating the shared floating IP and VIP. The following @@ -246,7 +246,7 @@ steps allow you to test it. shows only a test. ``` shell - openstack server create tester-bastion --flavor m1.tiny \ + openstack --os-cloud={cloud name} server create tester-bastion --flavor m1.tiny \ --key-name keypair \ --network tester-network \ --image $IMAGE_UUID @@ -257,7 +257,7 @@ steps allow you to test it. You can specify the UUID or IP of the floating IP. ``` shell - openstack server add floating ip tester-bastion $UUID + openstack --os-cloud={cloud name} server add floating ip tester-bastion $UUID ``` 3. Alter security group rules to allow SSH and ICMP: @@ -267,7 +267,7 @@ steps allow you to test it. steps because the default security group will prevent all ingress traffic. ``` shell - openstack security group rule create --proto tcp \ + openstack --os-cloud={cloud name} security group rule create --proto tcp \ --dst-port 22 \ --remote-ip 0.0.0.0/0 default ``` @@ -275,7 +275,7 @@ steps allow you to test it. Now enable ICMP. ``` shell - openstack security group rule create --proto icmp \ + openstack --os-cloud={cloud name} security group rule create --proto icmp \ --dst-port -1 default ``` diff --git a/docs/openstack-images.md b/docs/openstack-images.md index 6cc09e9f..ec5c3b77 100644 --- a/docs/openstack-images.md +++ b/docs/openstack-images.md @@ -5,7 +5,7 @@ To read more about Openstack images please visit the [upstream docs](https://doc #### List and view images ``` shell -openstack image list +openstack --os-cloud={cloud name} image list [--sort-column SORT_COLUMN] [--sort-ascending | --sort-descending] [--public | --private] @@ -17,13 +17,13 @@ openstack image list #### View image details ``` shell -openstack image show +openstack --os-cloud={cloud name} image show ``` #### Create a image ``` shell -openstack image create +openstack --os-cloud={cloud name} image create [--id ] [--store ] [--container-format ] @@ -46,7 +46,7 @@ openstack image create #### Delete a image ``` shell -openstack image delete [ ...] +openstack --os-cloud={cloud name} image delete [ ...] ``` #### Retrieving Images @@ -58,7 +58,7 @@ Please visit this page for examples of retrieving images [here](https://docs.ope Specify the server name, flavor ID, and image ID. ``` shell -openstack server create --flavor FLAVOR_ID --image IMAGE_ID --key-name KEY_NAME \ +openstack --os-cloud={cloud name} server create --flavor FLAVOR_ID --image IMAGE_ID --key-name KEY_NAME \ --user-data USER_DATA_FILE --security-group SEC_GROUP_NAME --property KEY=VALUE \ INSTANCE_NAME ``` diff --git a/docs/openstack-keypairs.md b/docs/openstack-keypairs.md index 7c01742c..020266ff 100644 --- a/docs/openstack-keypairs.md +++ b/docs/openstack-keypairs.md @@ -5,7 +5,7 @@ Read more about Openstack keypairs using the [upstream docs](https://docs.openst #### List and view Keypairs ``` shell -openstack keypair list +openstack --os-cloud={cloud name} keypair list [--sort-column SORT_COLUMN] [--sort-ascending | --sort-descending] [--user ] @@ -21,7 +21,7 @@ openstack keypair list Before launching an instance, you must add a public key to the Compute service. ``` shell -openstack keypair create +openstack --os-cloud={cloud name} keypair create [--public-key | --private-key ] [--type ] [--user ] @@ -40,7 +40,7 @@ This command generates a key pair with the name that you specify for KEY_NAME, w If you have already generated a key pair and the public key is located at ~/.ssh/id_rsa.pub, run the following command to upload the public key. ``` shell -openstack keypair create --public-key ~/.ssh/id_rsa.pub KEY_NAME +openstack --os-cloud={cloud name} keypair create --public-key ~/.ssh/id_rsa.pub KEY_NAME ``` This command registers the public key at the Nova database and names the key pair the name that you specify for KEY_NAME @@ -48,7 +48,7 @@ This command registers the public key at the Nova database and names the key pai #### Delete a Keypair ``` shell -openstack keypair delete +openstack --os-cloud={cloud name} keypair delete [--user ] [--user-domain ] @@ -58,7 +58,7 @@ openstack keypair delete #### Show Keypair Details ``` shell -openstack keypair show +openstack --os-cloud={cloud name} keypair show [--public-key] [--user ] [--user-domain ] diff --git a/docs/openstack-router.md b/docs/openstack-router.md index 9a650e20..581624ba 100644 --- a/docs/openstack-router.md +++ b/docs/openstack-router.md @@ -5,7 +5,7 @@ Read more about Openstack Routers using the [upstream docs](https://docs.opensta #### Get List of Routers ``` shell -openstack --os-cloud {user cloud name router list +openstack --os-cloud={user cloud name router list [--sort-column SORT_COLUMN] [--sort-ascending | --sort-descending] [--name ] @@ -23,7 +23,7 @@ openstack --os-cloud {user cloud name router list #### Create a Router ``` shell -openstack --os-cloud {user cloud name router create +openstack --os-cloud={user cloud name router create [--extra-property type=,name=,value=] [--enable | --disable] [--distributed | --centralized] @@ -48,7 +48,7 @@ openstack --os-cloud {user cloud name router create #### Add a Gateway to Router ``` shell -openstack --os-cloud {user cloud name router add gateway +openstack --os-cloud={user cloud name router add gateway [--fixed-ip subnet=,ip-address=] @@ -57,19 +57,19 @@ openstack --os-cloud {user cloud name router add gateway #### Add a Subnet to Router ``` shell -openstack --os-cloud {user cloud name router add subnet +openstack --os-cloud={user cloud name router add subnet ``` #### Add a Port to Router ``` shell -openstack --os-cloud {user cloud name router add port +openstack --os-cloud={user cloud name router add port ``` #### Set Router Properties ``` shell -openstack --os-cloud {user cloud name router set +openstack --os-cloud={user cloud name router set [--extra-property type=,name=,value=] [--name ] [--description ] @@ -95,14 +95,14 @@ openstack --os-cloud {user cloud name router set #### Delete Router ``` shell -openstack --os-cloud {user cloud name router add subnet +openstack --os-cloud={user cloud name router add subnet ``` #### Create Router Port ``` shell -openstack --os-cloud {user cloud name port create [-h] [-f {json,shell,table,value,yaml}] +openstack --os-cloud={user cloud name port create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN] [--noindent] [--prefix PREFIX] [--max-width ] [--fit-width] [--print-empty] --network @@ -126,3 +126,21 @@ openstack --os-cloud {user cloud name port create [-h] [-f {json,shell,table,val [--tag | --no-tag] ``` + +#### Creating a Router with Subnets Example + +``` shell +openstack --os-cloud=$CLOUD router create {router_name} +``` + +Add subnet to the router and set the router's external gateway using PUBLICNET to allow outbound network access. + +``` shell +openstack --os-cloud=$CLOUD router add subnet {router_name} {subnet_name} +``` + +Set the external gateway + +``` shell +openstack --os-cloud=$CLOUD router set --external-gateway PUBLICNET {router_name} +``` \ No newline at end of file diff --git a/docs/openstack-security-groups.md b/docs/openstack-security-groups.md index cfe61b4e..a13cbf6b 100644 --- a/docs/openstack-security-groups.md +++ b/docs/openstack-security-groups.md @@ -5,19 +5,19 @@ To read more about Openstack Security Groups using the [upstream docs](https://d #### List and view current security groups ``` shell -openstack security group list +openstack --os-cloud={cloud name} security group list ``` #### Create Security Groups ``` shell -openstack security group create SECURITY_GROUP_NAME --description GROUP_DESCRIPTION +openstack --os-cloud={cloud name} security group create SECURITY_GROUP_NAME --description GROUP_DESCRIPTION ``` #### Delete a specific Security Group ``` shell -openstack security group delete SECURITY_GROUP_NAME +openstack --os-cloud={cloud name} security group delete SECURITY_GROUP_NAME ``` #### Create and manage security group rules @@ -25,13 +25,13 @@ openstack security group delete SECURITY_GROUP_NAME To list the rules for a security group, run the following command: ``` shell -openstack security group rule list SECURITY_GROUP_NAME +openstack --os-cloud={cloud name} security group rule list SECURITY_GROUP_NAME ``` Add a new group rule: ``` shell -openstack security group rule create SEC_GROUP_NAME \ +openstack --os-cloud={cloud name} security group rule create SEC_GROUP_NAME \ --protocol PROTOCOL --dst-port FROM_PORT:TO_PORT --remote-ip CIDR ``` @@ -40,7 +40,7 @@ The arguments are positional, and the from-port and to-port arguments specify th #### To allow both HTTP and HTTPS traffic: ``` shell -openstack security group rule create global_http \ +openstack --os-cloud={cloud name} security group rule create global_http \ --protocol tcp --dst-port 443:443 --remote-ip 0.0.0.0/0 ``` @@ -49,13 +49,13 @@ openstack security group rule create global_http \ 1. Allow access from all IP addresses, specified as IP subnet 0.0.0.0/0 in CIDR notation: ``` shell - openstack security group rule create SECURITY_GROUP_NAME \ + openstack --os-cloud={cloud name} security group rule create SECURITY_GROUP_NAME \ --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0 ``` 2. Allow access only from IP addresses from other security groups (source groups) to access the specified port: ``` shell - openstack security group rule create SECURITY_GROUP_NAME \ + openstack --os-cloud={cloud name} security group rule create SECURITY_GROUP_NAME \ --protocol tcp --dst-port 22:22 --remote-group SOURCE_GROUP_NAME ``` #### To allow pinging of the instances, choose one of the following options: @@ -63,7 +63,7 @@ openstack security group rule create global_http \ 1. Allow pinging from all IP addresses, specified as IP subnet 0.0.0.0/0 in CIDR notation ``` shell - openstack security group rule create --protocol icmp \ + openstack --os-cloud={cloud name} security group rule create --protocol icmp \ SECURITY_GROUP_NAME ``` @@ -72,7 +72,7 @@ openstack security group rule create global_http \ 2. Allow only members of other security groups (source groups) to ping instances. ``` shell - openstack security group rule create --protocol icmp \ + openstack --os-cloud={cloud name} security group rule create --protocol icmp \ --remote-group SOURCE_GROUP_NAME SECURITY_GROUP ``` @@ -81,26 +81,26 @@ openstack security group rule create global_http \ 1. Allow UDP access from IP addresses, specified as IP subnet 0.0.0.0/0 in CIDR notation. ``` shell - openstack security group rule create --protocol udp \ + openstack --os-cloud={cloud name} security group rule create --protocol udp \ --dst-port 53:53 SECURITY_GROUP ``` 2. Allow only IP addresses from other security groups (source groups) to access the specified port. ``` shell - openstack security group rule create --protocol udp \ + openstack --os-cloud={cloud name} security group rule create --protocol udp \ --dst-port 53:53 --remote-group SOURCE_GROUP_NAME SECURITY_GROUP ``` #### Allow RDP access only from IP addresses from other security groups ``` shell - openstack security group rule create SECURITY_GROUP_NAME \ + openstack --os-cloud={cloud name} security group rule create SECURITY_GROUP_NAME \ --protocol tcp --dst-port 33:89 --remote-group SOURCE_GROUP_NAME ``` #### Delete a security group rule ``` shell -openstack security group rule delete RULE_ID +openstack --os-cloud={cloud name} security group rule delete RULE_ID ``` diff --git a/docs/openstack-servers.md b/docs/openstack-servers.md index 78290f9f..4b118d80 100644 --- a/docs/openstack-servers.md +++ b/docs/openstack-servers.md @@ -5,7 +5,7 @@ To read more about Openstack Servers using the [upstream docs](https://docs.open #### List and view servers ``` shell -openstack server list +openstack --os-cloud={cloud name} server list [--quote {all,minimal,none,nonnumeric}] [--reservation-id ] [--ip ] @@ -32,7 +32,7 @@ openstack server list #### Create a new server ``` shell -openstack server create +openstack --os-cloud={cloud name} server create (--image | --volume ) --flavor [--security-group ] @@ -58,7 +58,7 @@ openstack server create You can place user data in a local file and pass it through the --user-data parameter at instance creation. ``` shell -openstack server create --image ubuntu-cloudimage \ +openstack --os-cloud={cloud name} server create --image ubuntu-cloudimage \ --flavor 1 \ --user-data mydata.file \ $INSTANCE_UUID @@ -73,7 +73,7 @@ To enable the config drive for an instance, pass the --config-drive true paramet The following example enables the config drive and passes a user data file and two key/value metadata pairs, all of which are accessible from the config drive: ``` shell -openstack server create --config-drive true \ +openstack --os-cloud={cloud name} server create --config-drive true \ --image my-image-name \ --flavor 1 \ --key-name mykey \ @@ -88,7 +88,7 @@ Read more about Openstack Config drives using the [upstream docs](https://docs.o #### Delete a server ``` shell -openstack server delete [--wait] [ ...] +openstack --os-cloud={cloud name} server delete [--wait] [ ...] ``` # Launch a server from a snapshot @@ -108,13 +108,13 @@ You will need to get your cloud name from your `clouds.yaml`. More information o First we are going to create our network "my_network" ``` shell -openstack --os-cloud $CLOUD network create my_network +openstack --os-cloud=$CLOUD network create my_network ``` Second create the subnet "my_subnet" ``` shell -openstack --os-cloud $CLOUD subnet create --ip-version 4 \ +openstack --os-cloud=$CLOUD subnet create --ip-version 4 \ --subnet-range $CIDR \ --network $NETWORK_NAME \ $CIDR @@ -123,33 +123,33 @@ openstack --os-cloud $CLOUD subnet create --ip-version 4 \ Third create the router "my_router" ``` shell -openstack --os-cloud $CLOUD router create my_router +openstack --os-cloud=$CLOUD router create my_router ``` Fourth add "my_subnet" to "my_router" and set the router's external gateway using PUBLICNET to allow outbound network access. ``` shell -openstack --os-cloud $CLOUD router add subnet my_router my_dmz_subnet +openstack --os-cloud=$CLOUD router add subnet my_router my_dmz_subnet ``` Set the external gateway ``` shell -openstack --os-cloud $CLOUD router set --external-gateway PUBLICNET my_router +openstack --os-cloud=$CLOUD router set --external-gateway PUBLICNET my_router ``` Fifth gather the UUIDS for our image, flavor and network to create our server. ``` shell -openstack --os-cloud $CLOUD image list -openstack --os-cloud $CLOUD flavor list -openstack --os-cloud $CLOUD network list +openstack --os-cloud=$CLOUD image list +openstack --os-cloud=$CLOUD flavor list +openstack --os-cloud=$CLOUD network list ``` Lastly create your server! ``` shell -openstack --os-cloud $CLOUD server create --flavor $FLAVOR_NAME \ +openstack --os-cloud=$CLOUD server create --flavor $FLAVOR_NAME \ --image $IMAGE_NAME \ --boot-from-volume 25 \ --network $NETWORK_NAME \ diff --git a/docs/openstack-snapshot.md b/docs/openstack-snapshot.md index c6c5c786..090e651d 100644 --- a/docs/openstack-snapshot.md +++ b/docs/openstack-snapshot.md @@ -9,7 +9,7 @@ 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 + openstack --os-cloud={cloud name} server stop myInstance ``` 2. Use the openstack server list command to confirm that the instance shows a SHUTOFF status. @@ -17,7 +17,7 @@ 3. Use the openstack server image create command to take a snapshot: ``` shell - openstack server image create myInstance --name myInstanceSnapshot + openstack --os-cloud={cloud name} server image create myInstance --name myInstanceSnapshot ``` The above command creates the image myInstance by taking a snapshot of a running server. @@ -25,13 +25,13 @@ 4. Use the openstack image list command to check the status until the status is active: ``` shell - openstack image list + openstack --os-cloud={cloud name} image list ``` #### Show Image Details ``` shell -openstack image show [--human-readable] +openstack --os-cloud={cloud name} image show [--human-readable] ``` #### Download the snapshot @@ -43,7 +43,7 @@ openstack image show [--human-readable] Download the snapshot by using the image ID: ``` shell -openstack image save --file snapshot.raw {Image ID} +openstack --os-cloud={cloud name} 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). @@ -53,7 +53,7 @@ Make the image available to the new environment, either through HTTP or direct u In the new project or cloud environment, import the snapshot: ``` shell -openstack image create NEW_IMAGE_NAME \ +openstack --os-cloud={cloud name} image create NEW_IMAGE_NAME \ --container-format bare --disk-format qcow2 --file IMAGE_URL ``` @@ -62,5 +62,5 @@ openstack image create NEW_IMAGE_NAME \ 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 +openstack --os-cloud={cloud name} server create --flavor m1.tiny --image myInstanceSnapshot myNewInstance ``` diff --git a/docs/openstack-volumes.md b/docs/openstack-volumes.md index 74f5d060..7590a21b 100644 --- a/docs/openstack-volumes.md +++ b/docs/openstack-volumes.md @@ -7,13 +7,13 @@ You can create a bootable volume from an existing image, volume, or snapshot. Th 1. List available images, noting the ID of the image that you wish to use. ``` shell - openstack image list + openstack --os-cloud={cloud name} image list ``` 2. Create a bootable volume from the chosen image. ``` shell - openstack volume create \ + openstack --os-cloud={cloud name} volume create \ --image {Image ID} --size 10 \ test-volume ``` @@ -21,7 +21,7 @@ You can create a bootable volume from an existing image, volume, or snapshot. Th 3. Create a server, specifying the volume as the boot device. ``` shell - openstack server create \ + openstack --os-cloud={cloud name} server create \ --flavor $FLAVOR --network $NETWORK \ --volume {Volume ID}\ --wait test-server @@ -30,18 +30,18 @@ You can create a bootable volume from an existing image, volume, or snapshot. Th 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 --os-cloud={cloud name} volume list ``` ``` shell - openstack server volume list test-server + openstack --os-cloud={cloud name} server volume list test-server ``` # Additional Server Volume Commands #### Add Volume to Server ``` shell -openstack server add volume +openstack --os-cloud={cloud name} server add volume [--device ] [--tag ] [--enable-delete-on-termination | --disable-delete-on-termination] @@ -52,5 +52,5 @@ openstack server add volume #### Remove Volume from Server ``` shell -openstack server remove volume +openstack --os-cloud={cloud name} server remove volume ```