Our running Stack is based on templates, so this allows us to modify our application stack by altering the inputs. If we wanted to change the size of a flavor, or the key used, you can trigger a rebuild of the instances in the stack by altering the inputs and issuing the stack update
command.
Ensure that you are logged on to a correctly configured OpenStack client and can access the OpenStack environment. Refer to Chapter 2, The OpenStack Client, for details of setting up your environment to use OpenStack.
In this section, we'll modify the environment file to change a flavor from m1.tiny
to m1.large
. (Ensure that you have a valid flavor with this name before continuing!)
cookbook-env.yaml
, to show the changes we want to make to our running stack:parameters:
key_name: demokey
image: xenial-image
flavor: m1.large
public_net_id: 2da8979e-dcf8-4eb8-b207-f33bfce4a15a
private_net_id: 78a5a119-c27a-41c4-8310-5c04d3a6bc31
private_subnet_id: 3cee2bb9-5673-4a6e-bb1e-8cb66be066b2
openstack stack show myStack
This will bring back an output like the following:
openstack stack update myStack --existing
This will bring back an output like the following, showing the update has started:
openstack stack show myStack
This will bring back an output like the following (note that the flavor has changed from m1.tiny
to m1.large
). Also note that the IP addresses have not changed:
The OpenStack Orchestration service, Heat, is designed to follow a template to provide a running service to end users. Everything is automated from start to finish. This crucial feature allows us to update a running stack, effectively redeploying the stack with updates, which runs through the fully automated routine to restore the service, on the same IP addresses, but with the required changes.
The syntax for updating the stack is as follows:
openstack stack update nameOfStack --environment updatedEnvironmentFile.yaml --template originalStackTemplate.yml
In our example, we omitted the --environment
and --template
parameters as we made the required change to our stack directly in the environment file used originally. This allowed for a simpler syntax:
openstack stack update nameOfStack --existing
18.219.111.195