You are on page 1of 36

TripleO

No longer considered an Epic Spell of Transformation:


IN-PLACE UPGRADE!
TripleO
"I am looking for someone to share in an adventure"
Gandalf the Grey
TripleO is a project aimed at
installing, upgrading and operating
OpenStack clouds using OpenStack’s
own cloud facilities as the foundation -
building on Nova, Ironic, Neutron and
Heat to automate cloud management
at datacenter scale.
● Product vs Service

● Beyond cookie cutter

● Maturity

● Features

● In-place Upgrades
● OpenStack Foreman Installer (OFI)

● RHEL OSP installer (Codename Staypuft)

● Packstack

● Ansible-based homebrew

● SpinalStack (via acquisition of eNovance)

● Bashstack
Deployment
"Toto, I've a feeling we're not in Kansas any more."
Dorothy
[stack@undercloud-new ~]$ grep -v "^#\|^$" undercloud.conf
[DEFAULT]
local_ip = 192.0.2.4/24
network_gateway = 192.0.2.4
undercloud_public_vip = 192.168.102.4
undercloud_admin_vip = 192.0.2.5
local_interface = eth0
network_cidr = 192.0.2.0/24
masquerade_network = 192.0.2.0/24
dhcp_start = 192.0.2.10
dhcp_end = 192.0.2.29
inspection_interface = br-ctlplane
inspection_iprange = 192.0.2.100,192.0.2.120
inspection_runbench = false
undercloud_debug = false
store_events = true

[stack@undercloud-new ~]$ openstack undercloud install


Upstream RDO:
https://buildlogs.centos.org/centos/7/cloud/x86_64/tripleo_images/

Red Hat OpenStack Platform


[stack@undercloud-new ~]$ sudo yum install rhosp-director-images
rhosp-director-images-ipa

[stack@undercloud-new ~]$ openstack overcloud image upload

[stack@undercloud-new ~]$ openstack image list


+--------------------------------------+------------------------+--------+
| ID | Name | Status |
+--------------------------------------+------------------------+--------+
| 73dece24-dc1d-4884-9feb-4f1f8b9c9432 | bm-deploy-ramdisk | active |
| 29c6be7e-934c-47dd-ada2-ffc7671a2ce2 | bm-deploy-kernel | active |
| 8801c499-cfb9-4d7d-b603-2df3c348e261 | overcloud-full | active |
| cd3339cc-8742-4b1c-8db7-5fc592de6daa | overcloud-full-vmlinuz | active |
| b665cc2b-2fea-464c-8da9-23559964933a | overcloud-full-initrd | active |
+--------------------------------------+------------------------+--------+
TripleO UI
CLI – instackenv.json
{
"nodes":[
{
"mac":[
"bb:bb:bb:bb:bb:bb"
],
"cpu":"4",
"memory":"6144",
"disk":"40",
"arch":"x86_64",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"p@55w0rd!",
"pm_addr":"192.0.2.205"
},
]
}

[stack@undercloud-new ~]$ openstack baremetal import --json


~/instackenv.json
[stack@undercloud-new ~]$ openstack baremetal introspection
bulk start
Deploy vanilla Overcloud

[stack@undercloud-new ~]$ openstack overcloud deploy –templates --compute-scale 1


--control-scale 1 --ntp-server pool.ntp.org

PROFIT!
Customization
"You’re a wizard Harry"
Hagrid
Core: Advanced:
Advance Networking Composable roles
Network Isolation Big Data (Sahara)
Storage backends Baremetal (Ironic)
Security Filesystem (Manila)
Metering RadosGW
HyperConverged
SDN
NFV
LbaaS
Monitoring
More ..
[stack@chrisj-undercloud environments]$ cat neutron-sriov.yaml
## A Heat environment that can be used to deploy SR-IOV
resource_registry:
OS::TripleO::Services::NeutronSriovAgent: ../puppet/services/neutron-sriov-agent.yaml

parameter_defaults:
NeutronMechanismDrivers: ['openvswitch','sriovnicswitch']

# Add PciPassthroughFilter to the scheduler default filters


NovaSchedulerDefaultFilters:
['RetryFilter','AvailabilityZoneFilter','RamFilter','ComputeFilter','ComputeCapabilitiesFilter','ImagePropertiesFilter','ServerGroupAntiA
ffinityFilter','ServerGroupAffinityFilter','PciPassthroughFilter']
NovaSchedulerAvailableFilters:
["nova.scheduler.filters.all_filters","nova.scheduler.filters.pci_passthrough_filter.PciPassthroughFilter"]

# Provide the vendorid:productid of the VFs


NeutronSupportedPCIVendorDevs: ['8086:154c','8086:10ca','8086:1520']

NeutronPhysicalDevMappings: "datacentre:ens20f2"

# Number of VFs that needs to be configured for a physical interface


NeutronSriovNumVFs: "ens20f2:5"

NovaPCIPassthrough:
- devname: "ens20f2"
physical_network: "datacentre"
heat_template_version: 2014-10-16

description: >
Extra hostname configuration
resources:
userdata:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: nameserver_config}
nameserver_config:
type: OS::Heat::SoftwareConfig
properties:
config: |
#!/bin/bash
echo "nameserver 192.168.1.1" >> /etc/resolv.conf
outputs:
OS::stack_id:
value: {get_resource: userdata}
#########################################

resource_registry:
OS::TripleO::NodeUserData: /home/stack/templates/nameserver.yaml

#########################################

openstack overcloud deploy --templates -e /home/stack/templates/firstboot.yaml


- name: Uber-Hyperconvered
CountDefault: 1
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::CephRgw
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackup
- OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume
- OS::TripleO::Services::Core
- OS::TripleO::Services::ComputeCeilometerAgent
- OS::TripleO::Services::ComputeNeutronL3Agent
- OS::TripleO::Services::ComputeNeutronMetadataAgent
- OS::TripleO::Services::Kernel
- OS::TripleO::Services::Keystone
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::GlanceRegistry
- OS::TripleO::Services::HeatApi
- OS::TripleO::Services::HeatApiCfn
- OS::TripleO::Services::HeatApiCloudwatch
- OS::TripleO::Services::HeatEngine
- OS::TripleO::Services::MySQL
- OS::TripleO::Services::NeutronDhcpAgent
decouple resource hungry service from the stack

merge 2 or more roles together → compute + storage

accommodate different hardware for the same roles (snow flakes)

create custom configurations on per server basis


time openstack overcloud deploy --templates --stack tigerlab \
--ntp-server 10.9.71.7 \
--control-flavor control --control-scale 1 --compute-flavor compute --compute-scale 4
--ceph-storage-scale 0 \
--neutron-tunnel-types vxlan --neutron-network-type vxlan \
-e templates/network-environment.yaml \
-e templates/environments/network-isolation.yaml \
-e templates/ceilometer.yaml \
-e templates/logging-environment.yaml \
-e templates/monitoring-environment.yaml \
-e templates/environments/services/sahara.yaml \
-e templates/environments/enable-tls.yaml \
-e templates/environments/inject-trust-anchor.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/tls-endpoints-public-ip.yaml \
-e templates/environments/manila-cephfsnative-config.yaml \
-e templates/fernet.yaml \
-e templates/deployment-artifacts.yaml \
-e templates/puppet-ceph-external.yaml
Features
"What about your sword? I heard witchers carry two - a silver
blade for monsters and steel for humans... ?

Both are for monsters"


Geralt of Rivia
Fluentd client

Sensu client

Collectd client

Ansible validations

Rally
OVS DPDK Big Data & Analytics
SRIOV Convergence Engine
OpenDaylight Bare Metal Provisioning
Hyper-converged Integration Test
Manila Benchmarking
Metadata injections UI
Volume encryption Independent Deployment Phases
Composable Roles Ops Tools
Erasure Coding Simplified HA
DVR Red Hat Storage
VLAN aware VMs RGW for Swift
Telemetry VirtualBMC
Fernet Tokens Dashboard
Upgrades
"See this acorn? I'll throw it at you and turn you to stone!"
Willow
● Minor – Mitaka → Mitaka++

● Major – Mitaka→ Newton

● Backup

● Dev/Test

● Production

● Undercloud
$ sudo systemctl stop 'openstack-*'
$ sudo systemctl stop 'neutron-*'
$ yum update python-tripleoclient
$ openstack undercloud upgrade

● Overcloud
$ openstack overcloud deploy --update-plan-only \
--templates \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/templates/network-environment.yaml \
-e /home/stack/templates/storage-environment.yaml
$ openstack overcloud update stack -i overcloud

Time for the Demo...
Question ?
Well, here at last, dear friends, on the shores of the Sea comes the end of our fellowship in
Middle-earth. Go in peace! I will not say: do not weep; for not all tears are an evil.

You might also like