Senlin Basics¶
Note
This tutorial assumes that you are working on the master branch of the senlin source code which contains the latest profile samples and policy samples. To clone the latest code base:
$ git clone https://git.openstack.org/openstack/senlin.git
Follow the Installation Guide to install the senlin service.
Creating Your First Profile¶
A profile captures the necessary elements you need to create a node. The
following is a profile specification (spec
for short) that can be used
to create a nova server:
type: os.nova.server
version: 1.0
properties:
name: cirros_server
flavor: 1
image: "cirros-0.4.0-x86_64-disk"
key_name: oskey
networks:
- network: private
metadata:
test_key: test_value
user_data: |
#!/bin/sh
echo 'hello, world' > /tmp/test_file
Note
The above source file can be found in senlin source tree at
/examples/profiles/nova_server/cirros_basic.yaml
.
The spec assumes that:
you have a nova keypair named
oskey
, andyou have a neutron network named
private
, andthere is a glance image named
cirros-0.3.5-x86_64-disk
You may have to change the values based on your environment setup before using this file to create a profile. After the spec file is modified properly, you can use the following command to create a profile object:
$ cd $SENLIN_ROOT/examples/profiles/nova_server
$ openstack cluster profile create --spec-file cirros_basic.yaml myserver
Check the Profiles section in the 3 User References documentation for more details.
Creating Your First Cluster¶
With a profile created, we can proceed to create a cluster by specifying the profile and a cluster name.
$ openstack cluster create --profile myserver mycluster
If you don’t explicitly specify a number as the desired capacity of the cluster, senlin won’t create nodes in the cluster. That means the newly created cluster is empty. If you do provide a number as the desired capacity for the cluster as shown below, senlin will create the specified number of nodes in the cluster.
$ openstack cluster create --profile myserver --desired-capacity 1 mycluster
$ openstack cluster show mycluster
For more details, check the Creating a Cluster section in the 3 User References documentation.
Scaling a Cluster¶
Now you can try to change the size of your cluster. To increase the size, use the following command:
$ openstack cluster expand mycluster
$ openstack cluster show mycluster
To decrease the size of the cluster, use the following command:
$ openstack cluster shrink mycluster
$ openstack cluster show mycluster
For more details, please check the Resizing a Cluster section in the 3 User References section.
Resizing a Cluster¶
Yet another way to change the size of a cluster is to use the command
cluster-resize
:
$ openstack cluster resize --capacity 2 mycluster
$ openstack cluster show mycluster
The cluster-resize
command supports more flexible options to control how
a cluster is resized. For more details, please check the
Resizing a Cluster section in the
3 User References section.
Creating a Node¶
Another way to manage cluster node membership is to create a standalone node then add it to a cluster. To create a node using a given profile:
$ openstack cluster node create --profile myserver newnode
$ openstack cluster node show newnode
For other options supported by the node-create
command, please check the
Creating a Node subsection in the
3 User References documentation.
Adding a Node to a Cluster¶
If a node has the same profile type as that of a cluster, you can add the node
to the cluster using the cluster-node-add
command:
$ openstack cluster members add --nodes newnode mycluster
$ openstack cluster members list mycluster
$ openstack cluster show mycluster
$ openstack cluster node show newnode
After the operation is completed, you will see that the node becomes a member of the target cluster, with an index value assigned.
Removing a Node from a Cluster¶
You can also remove a node from a cluster using the cluster-node-del
command:
$ openstack cluster members del --nodes newnode mycluster
$ openstack cluster members list mycluster
$ openstack cluster show mycluster
$ openstack cluster node show newnode
For other cluster membership management commands and options, please check the Cluster Membership section in the 3 User References section.