Skip to content

Instantly share code, notes, and snippets.

@jistr
Last active August 29, 2015 13:56
Show Gist options
  • Save jistr/9228638 to your computer and use it in GitHub Desktop.
Save jistr/9228638 to your computer and use it in GitHub Desktop.
Overcloud deployment using Tuskar CLI

Overcloud deployment using Tuskar CLI

Prerequisites

  • Deployment using Tuskar toolset (regardless if UI or CLI way) requires a fully set up and running undercloud, including the Tuskar API.

  • Authentication environment variables need to be set. E.g. when deploying using Devtest, the authentication info is present in /root/stackrc on undercloud node. Whatever means we'll use to deploy undercloud, we should provide this file too. User can then source /root/stackrc to set the variables. Sample content of /root/stackrc:

    export NOVA_VERSION=1.1
    export OS_PASSWORD=42932436a8956039909b7748fda838c8d4bc8b9b
    export OS_AUTH_URL=http://localhost:5000/v2.0
    export OS_USERNAME=admin
    export OS_TENANT_NAME=admin
    export COMPUTE_API_VERSION=1.1
    export OS_NO_CACHE=True
    
  • No flavors defined in the undercloud. Devtest takes care of deleting the default 'm1.tiny' etc. flavors, our undercloud installer should do that too.

  • Overcloud images available:

    • "Deploy" kernel image + ramdisk

    • Kernel image + ramdisk + main image -- for each Overcloud Role to deploy

Managing overcloud images

glance image-create
glance image-delete
glance image-download
glance image-list
glance image-show
glance image-update

Managing authorized SSH keys

nova keypair-add
nova keypair-delete
nova keypair-list
nova keypair-show

Managing node profiles

nova flavor-create
nova flavor-delete
nova flavor-key
nova flavor-list
nova flavor-show

Managing baremetal nodes

nova baremetal-node-create
nova baremetal-node-delete
nova baremetal-node-list
nova baremetal-node-show
nova baremetal-interface-add
nova baremetal-interface-list
nova baremetal-interface-remove

When using Ironic instead of nova baremetal, the commands will be a bit different, but workflow should be similar.

Managing overcloud roles

tuskar overcloud-role-create
tuskar overcloud-role-delete
tuskar overcloud-role-list
tuskar overcloud-role-show
tuskar overcloud-role-update

Managing overclouds

tuskar overcloud-create
tuskar overcloud-delete
tuskar overcloud-list
tuskar overcloud-show
tuskar overcloud-update

Workflow example

Just one command per type is shown for brevity. (E.g. compute image creation would be analogous to control image creation.)

Load deploy kernel/ramdisk images (currently CLI-only feature):

glance image-create \
    --name bm-deploy-kernel \
    --public \
    --disk-format aki \
    --file ~/tripleo/deploy-ramdisk.kernel
glance image-create \
    --name bm-deploy-ramdisk \
    --public \
    --disk-format ari \
    --file ~/tripleo/deploy-ramdisk.initramfs

Load role images and their kernel/ramdisk images (currently CLI-only feature):

glance image-create \
    --name overcloud-control-vmlinuz \
    --public \
    --disk-format aki \
    --file overcloud-control-vmlinuz
glance image-create \
    --name overcloud-control-initrd \
    --public \
    --disk-format ari \
    --file overcloud-control-initrd
# kernel_id and ramdisk_id are glance ids of these images ^^
glance image-create \
    --name overcloud-control \
    --public \
    --disk-format qcow2 \
    --container-format bare \
    --property kernel_id=874c5c84-afd5-4088-aaff-e32267ca7e04 \
    --property ramdisk_id=6947038f-e574-40e1-8331-57380c427cc9 \
    --file overcloud-control.qcow2

Register public key to add to authorized SSH keys on the overcloud (currently CLI-only feature):

nova keypair-add overcloud_admin --pub-key ~/overcloud_id_rsa.pub

Create node profile and set its parameters:

# positional args: name, id, mem MBs, disk GBs, CPUs
nova flavor-create baremetal auto 4096 20 1
nova flavor-key baremetal set cpu_arch=amd64
nova flavor-key baremetal set baremetal:deploy_kernel_id=38a67e81-0d3c-4ace-bd5d-b986898fa028
nova flavor-key baremetal set baremetal:deploy_ramdisk_id=8d563283-b543-42b4-ac8f-2d3ae0c1a88e

Register the baremetal nodes:

# when using bm_poseur, no need to specify --pm_* options
# positional args: service host, CPUs, mem MB, disk GB, MAC
nova baremetal-node-create \
   --pm_address=192.168.0.1 \
   --pm_user=ipmi \
   --pm_password=password \
   undercloud 1 4096 20 52:54:00:c8:a9:2f

(Service host is a nova-compute host which should control the baremetal node. See the "host" column in nova service-list.)

Create overcloud roles:

tuskar overcloud-role-create \
    control \
    --description "Overcloud controller" \
    --image-name overcloud-control \
    --flavor-id 44705b6b-3884-479e-b40a-5c10d6c1d2ee

Create the overcloud:

# format for --roles option is role_id=count
tuskar overcloud-create \
    overcloud \
    --description "My overcloud" \
    -A KeyName=overcloud_admin
    -A AdminPassword=changeme \
    -A AdminToken=abcdefgh \
    -A CeilometerMeteringSecret=changeme \
    -A CeilometerPassword=changeme \
    -A CinderPassword=changeme \
    -A GlancePassword=changeme \
    -A HeatPassword=changeme \
    -A NeutronPassword=changeme \
    -A NovaPassword=changeme \
    -A NovaComputeLibvirtType=qemu \
    -R control=1 \
    -R compute=1

Notes

@xuhaiwei
Copy link

Hi jistr,

I am new to tripleo, after reading the information on the TripleO wiki, I am a little confused about this article.
Does the 'Overcloud' here means the same thing in the wiki? I feel it points to the undercloud I understood.
I am sorry if I am wrong.

@xuhaiwei
Copy link

Hi jistr,

I think I should paste your answer here to avoid misleading others.

in production environments, both undercloud and overcloud run on baremetal machines, and inside overcloud there are
VMs running. I think you understand it correctly but we're just using the terminology differently.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment