openstacksummit2015-tokyo-deployment



openstacksummit2015-tokyo-deployment

2 0


openstacksummit2015-tokyo-deployment


On Github fghaas / openstacksummit2015-tokyo-deployment

Automated

OpenStack

deployment:

A comparison

florian.haas@hastexo.com

@xahteiwi | @hastexo

Let's get one thing out of the way.

Do not

deploy OpenStack

manually.

Just don't.

Please.

Let's get another thing out of the way.

There is

no

one true way

of deploying OpenStack.

Deployment automation is a

key differentiator

for OpenStack vendors.

Which means you must ask

two

questions

for your organization:

Which is our preferred

distro vendor?

Which is our preferred

deployment automation

system?

Also...

This is an

overview

Not a

technical deep dive

And finally:

(Strong opinions)

With that,

let's get

rolling

Default deployment stack

Packstack

Puppet

Nope

Default deployment stack

Foreman

Puppet

Nope

Default deployment stack

OSP Director

TripleO

Maybe?

Deployment checklist

1

Install Director node

Create

Director user

Create

image

and

template

directories

Register

with RHSM

Enable software

repositories

Install

Director packages

sudo yum install -y python-rdomanager-oscplugin
this is actually pretty neat. Your installer is just a plugin for the generic openstack client.

Configure Undercloud

Fetch & install

Overcloud images

Deployment checklist

2

Install Overcloud

Overcloud

Installation options

Test Overcloud

Web UI (Tuskar)

Basic Overcloud

CLI only

CLI is openstack baremetal or ironic.

Advanced Overcloud

CLI only

Advanced overcloud includes Ceph storage, and HA node fencing.

Default deployment stack

Landscape

MAAS

Juju

Reference: http://www.ubuntu.com/download/cloud/install-ubuntu-openstack

Deployment checklist

1

Install MAAS server

add-apt-repository ppa:maas-maintainers/stable
add-apt-repository ppa:cloud-installer/stable
add-apt-repository ppa:juju/stable
apt update
apt install maas

Deployment checklist

2

Wire MAAS up with Landscape

apt install openstack
openstack-install

Choose Landscape OpenStack Autopilot

Deployment checklist

3

Install OpenStack from Landscape

Don't like Landscape?

Ubuntu OpenStack

Multi Installer

apt install openstack
openstack-install

Choose Multi-system

This still requires MAAS. The Single system option does not, but it also assumes that everything runs on the same node (in LXC containers). References: - http://ubuntu-cloud-installer.readthedocs.org/en/latest/single-installer.guide.html - http://ubuntu-cloud-installer.readthedocs.org/en/latest/multi-installer.guide.html

Don't like MAAS?

Juju manual environment

juju bootstrap
juju deploy [...]

Default deployment stack

Crowbar

Chef

Reference: https://www.suse.com/documentation/suse-cloud-5/singlehtml/book_cloud_deploy/book_cloud_deploy.html

Deployment checklist

1

Install Admin node

screen install-suse-cloud

Don't like that?

Enter

SUSE Studio

Deployment checklist

2

Install cloud nodes

crowbar_register

Registers existing nodes for SUSE Cloud deployment

Deployment checklist

3

Deploy OpenStack services

Example deployment with Crowbar, showing Nova barclamps
Example deployment with Crowbar, showing Pacemaker clusters
RPC v10 is based on Juno; RPC v11 on Kilo. Most documentation on docs.rackspace.com is currently available for v10; the v11 documentation is only available from GitHub at https://github.com/stackforge/os-ansible-deployment/.

Default deployment stack

Ansible

Reference: http://docs.rackspace.com/rpc/api/v10/bk-rpc-installation/content/index.html It's important to understand that RPC is geared towards Ubuntu only; more specifically Ubuntu Trusty (see http://docs.rackspace.com/rpc/api/v10/bk-rpc-installation/content/sec-hosts-deployment-os.html).

Deployment checklist

1

Install deployment host

git clone https://github.com/openstack/openstack-ansible.git /opt/openstack-ansible
cd /opt/openstack-ansible
scripts/bootstrap-ansible.sh

Deployment checklist

2

Configure target hosts

This effectively comprises editing a bunch of YAML configuration files for Ansible to describe your target host topology.

Deployment checklist

3

Run Ansible playbooks

Foundation playbook

setup-hosts.yml

Infrastructure playbook

setup-infrastructure.yml

This installs - Memcached - Galera - RabbitMQ - rsyslog - ELK (ElasticSearch, Logstash, Kibana)

OpenStack playbook

setup-openstack.yml

http://hastexo.github.io/openstack-dach-2015-deployment

https://github.com/hastexo/openstack-dach-2015-deployment

Trademarks or registered trademarks used in this presentation are the property of their respective owners.

https://www.hastexo.com/openstack

What about

upgrades?

Upgrades supported

juju set

(Almost) fully automatic

openstack-origin: cloud:trusty-liberty/updates

Staggered service updates

Control services first, then compute

Upgrades supported

Semi-automatic

suse-cloud-upgrade

"Stop the world"

For SUSE Cloud 4 to 5 upgrades, caveats apply: - All instances must be suspended - All API services are down for the upgrade - Ceph nodes must migrate to SLES 12 - Hyper-V nodes must be reinstalled (meaning Hyper-V instances are lost and must be recreated) - If suse-cloud-upgrade fails, support intervention is required Reference: https://www.suse.com/documentation/suse-cloud-5/book_cloud_deploy/data/sec_depl_maintenance_upgrade.html

Upgrades supported

Fully automatic

run-upgrade.sh

No impact on VMs

What about

Mirantis?

Default deployment stack

Fuel

Puppet

Deployment checklist

1

Install Fuel Master node

Download ISO, install to bare metal from ISO, boot up, set certain settings in a BIOS-like interface. Some settings like DHCP, DNS, NTP "should not be changed during the entire lifecycle of Fuel.

Deployment checklist

2

Boot node servers

"Node servers" is Fuel lingo for OpenStack nodes. They PXE-boot, and install Ubuntu 14.04. Support for CentOS 6 OpenStack nodes was removed in Fuel 7.

Plugins

Mirantis provides extended functionality via the use of plugins, which can be community-contributed.
Functionality exposed via plugins includes - FWaaS - Juniper Contrail L2 support - Mellanox ConnectX-3 SR-IOV support - ELK - SolidFire Cinder support

Upgrades

Supported from 6.1 (plus all upgrades) to 7.0. Upgrade process: - download upgrade tarball, - unpack manually (lrzuntar, needs 2GB RAM) - run upgrade shell script (30-60 minutes) - brief API outages during upgrade - then deploy new OpenStack release
Automated OpenStack deployment: A comparison florian.haas@hastexo.com @xahteiwi | @hastexo