INSTALLING OPENSTACK
USING SALTSTACK

Yazz D. Atlas
A dvanced
T echnology
G roup

© Copyright 2014 Hewlett-Packard Development Company, L.P.

P r i n c i p l e E n g i n e e r,
Hewlett Packard
Januar y 29, 2014
WHO IS THIS GUY?
¡  I’ve been poking at Linux servers back in late 90’s
¡  Actively trying to replace myself with small scripts.
§  Bash
§  Cfengine
§  Puppet
§  Capistrano
§  Chef
§  Salt

© Copyright 2014 Hewlett-Packard Development Company, L.P.
WHY ARE YOU HERE?
¡  You might have tried DevStack to try OpenStack.
¡  You have setup a Salt Master before.
¡  You want to see how I solved some of my headaches
using Salt.
¡  You are want something answered.
¡  The other rooms were full and this one has an open
power outlet.

© Copyright 2014 Hewlett-Packard Development Company, L.P.
THINGS CHANGE.
¡  /etc/keystone
¡  /etc/nova
¡  /etc/glance
¡  /etc/swift
¡  /etc/????

© Copyright 2014 Hewlett-Packard Development Company, L.P.
NOW WHAT?
¡  Look beyond your current infrastructure.
¡  Think about how others have deployed OpenStack.
¡  Make the decision early to keep secrets out of your repos.

© Copyright 2014 Hewlett-Packard Development Company, L.P.
SALT-MASTER

FILE_ROOTS

file_roots:
base:
- /srv/salt/state/formulae
- /srv/salt/state/base
dbaas_ae1_az1:
- /srv/salt/state/dbaas_ae1_az1
dbaas_ae1_az2:
- /srv/salt/state/dbaas_ae1_az2
dbaas_ae1_az3:
- /srv/salt/state/dbaas_ae1_az3

© Copyright 2014 Hewlett-Packard Development Company, L.P.
SALT-MASTER

PILLAR_ROOTS

pillar_roots:
base:
- /srv/salt/pillar/base
dbaas_ae1_az1:
- /srv/salt/pillar/dbaas_ae1_az1
dbaas_ae1_az2:
- /srv/salt/pillar/dbaas_ae1_az2
dbaas_ae1_az3:
- /srv/salt/pillar/dbaas_ae1_az3

© Copyright 2014 Hewlett-Packard Development Company, L.P.
PILLAR
base:
'*':
- users
- groups
- headers
- openstack
- secrets

TOP.SLS

The top.sls is actually a symbolic link to the
file top-ae1.sls
openstack.sls is a symbolic link to
openstack-ae1.sls

dbaas_ae1_az1:
'ps-ae1az1-db*':
- endpoints-ae1az1-v1
- secrets-ae1az1-v1
dbaas_ae1_az2:
'ps-ae1az2-db*':
- endpoints-ae1az2-v1
- secrets-ae1az2-v1

These are links too but
slightly different
© Copyright 2014 Hewlett-Packard Development Company, L.P.
PILLAR

ENVIRONMENTS

/sr v/salt/pillar/dbaas_ae1_az1/endpoints-ae1az1-v1 .sls ->
../base/endpoints-ae1az1-v1 .sls
/sr v/salt/pillar/dbaas_ae1_az1/secrets-ae1az1-v1 .sls ->
../base/secrets-ae1az1-v1 .sls
/sr v/salt/pillar/dbaas_ae1_az2/endpoints-ae1az2-v1 .sls ->
../base/endpoints-ae1az2-v1 .sls
/sr v/salt/pillar/dbaas_ae1_az2/secrets-ae1az2-v1 .sls ->
../base/secrets-ae1az2-v1 .sls

It is much easier to diff two or more files than it is to
search one long file.
© Copyright 2014 Hewlett-Packard Development Company, L.P.
PILLAR

ENVIRONMENTS

© Copyright 2014 Hewlett-Packard Development Company, L.P.
STATES
base:
'*':
- users
- packages
- grains
dbaas_ae1_az1:
'ps-ae1az1-*':
- datadog
- dbaas_networking
'ps-ae1az1-dbcpu*':
- openstack.memcached
- openstack.haproxy
- openstack.nova-compute
'ps-ae1az1-dbhead0002*':
- openstack.memcached
- openstack.haproxy
- openstack.keystone
- openstack.glance
- openstack.nova-controller

TOP.SLS

Notice there is
nothing here about
the MySQL DB
No RabbitMQ
either
© Copyright 2014 Hewlett-Packard Development Company, L.P.
LEAVE IT OUT OF THE TOP.SLS
¡  If you only plan to run it only once you most likely don’t need it
in your top.sls
¡  Installing RabbitMQ
¡  Installing MySQL DB
¡  Creating your OpenStack API Endpoints
¡  Creating your OpenStack users
¡  Modifying the MySQL DB
¡  Create a one-of f state director y for one of f .sls
¡  Use unique names for your .sls files
¡  <project>-<ticket number>.sls
¡  Prevent executions on the wrong host
¡  Use simple lock files and or grain values to prevent second runs
© Copyright 2014 Hewlett-Packard Development Company, L.P.
STILL LEARNING
¡  What new features are out there
¡  Check in on IRC and ask questions
¡  Hangout and answer some questions
¡  Are you alone in your company working with Salt?

© Copyright 2014 Hewlett-Packard Development Company, L.P.
STILL LEARNING

“Ancora imparo’
(I am still learning.)
(At age 87 in 1562)”
- Michelangelo
© Copyright 2014 Hewlett-Packard Development Company, L.P.
SHOW AND TELL
¡  https://github.com/EntropyWorks/salt-openstack
¡  The “formula” branch eventually will replace the “master”
¡  yazz.atlas@hp.com
¡  @EntropyWorks
¡  (I should have used the HP ppt templates...)

© Copyright 2014 Hewlett-Packard Development Company, L.P.

Salt conf 2014-installing-openstack-using-saltstack-v02

  • 1.
    INSTALLING OPENSTACK USING SALTSTACK YazzD. Atlas A dvanced T echnology G roup © Copyright 2014 Hewlett-Packard Development Company, L.P. P r i n c i p l e E n g i n e e r, Hewlett Packard Januar y 29, 2014
  • 2.
    WHO IS THISGUY? ¡  I’ve been poking at Linux servers back in late 90’s ¡  Actively trying to replace myself with small scripts. §  Bash §  Cfengine §  Puppet §  Capistrano §  Chef §  Salt © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 3.
    WHY ARE YOUHERE? ¡  You might have tried DevStack to try OpenStack. ¡  You have setup a Salt Master before. ¡  You want to see how I solved some of my headaches using Salt. ¡  You are want something answered. ¡  The other rooms were full and this one has an open power outlet. © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 4.
    THINGS CHANGE. ¡  /etc/keystone ¡ /etc/nova ¡  /etc/glance ¡  /etc/swift ¡  /etc/???? © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 5.
    NOW WHAT? ¡  Lookbeyond your current infrastructure. ¡  Think about how others have deployed OpenStack. ¡  Make the decision early to keep secrets out of your repos. © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 6.
    SALT-MASTER FILE_ROOTS file_roots: base: - /srv/salt/state/formulae - /srv/salt/state/base dbaas_ae1_az1: -/srv/salt/state/dbaas_ae1_az1 dbaas_ae1_az2: - /srv/salt/state/dbaas_ae1_az2 dbaas_ae1_az3: - /srv/salt/state/dbaas_ae1_az3 © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 7.
    SALT-MASTER PILLAR_ROOTS pillar_roots: base: - /srv/salt/pillar/base dbaas_ae1_az1: - /srv/salt/pillar/dbaas_ae1_az1 dbaas_ae1_az2: -/srv/salt/pillar/dbaas_ae1_az2 dbaas_ae1_az3: - /srv/salt/pillar/dbaas_ae1_az3 © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 8.
    PILLAR base: '*': - users - groups -headers - openstack - secrets TOP.SLS The top.sls is actually a symbolic link to the file top-ae1.sls openstack.sls is a symbolic link to openstack-ae1.sls dbaas_ae1_az1: 'ps-ae1az1-db*': - endpoints-ae1az1-v1 - secrets-ae1az1-v1 dbaas_ae1_az2: 'ps-ae1az2-db*': - endpoints-ae1az2-v1 - secrets-ae1az2-v1 These are links too but slightly different © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 9.
    PILLAR ENVIRONMENTS /sr v/salt/pillar/dbaas_ae1_az1/endpoints-ae1az1-v1 .sls-> ../base/endpoints-ae1az1-v1 .sls /sr v/salt/pillar/dbaas_ae1_az1/secrets-ae1az1-v1 .sls -> ../base/secrets-ae1az1-v1 .sls /sr v/salt/pillar/dbaas_ae1_az2/endpoints-ae1az2-v1 .sls -> ../base/endpoints-ae1az2-v1 .sls /sr v/salt/pillar/dbaas_ae1_az2/secrets-ae1az2-v1 .sls -> ../base/secrets-ae1az2-v1 .sls It is much easier to diff two or more files than it is to search one long file. © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 10.
    PILLAR ENVIRONMENTS © Copyright 2014Hewlett-Packard Development Company, L.P.
  • 11.
    STATES base: '*': - users - packages -grains dbaas_ae1_az1: 'ps-ae1az1-*': - datadog - dbaas_networking 'ps-ae1az1-dbcpu*': - openstack.memcached - openstack.haproxy - openstack.nova-compute 'ps-ae1az1-dbhead0002*': - openstack.memcached - openstack.haproxy - openstack.keystone - openstack.glance - openstack.nova-controller TOP.SLS Notice there is nothing here about the MySQL DB No RabbitMQ either © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 12.
    LEAVE IT OUTOF THE TOP.SLS ¡  If you only plan to run it only once you most likely don’t need it in your top.sls ¡  Installing RabbitMQ ¡  Installing MySQL DB ¡  Creating your OpenStack API Endpoints ¡  Creating your OpenStack users ¡  Modifying the MySQL DB ¡  Create a one-of f state director y for one of f .sls ¡  Use unique names for your .sls files ¡  <project>-<ticket number>.sls ¡  Prevent executions on the wrong host ¡  Use simple lock files and or grain values to prevent second runs © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 13.
    STILL LEARNING ¡  Whatnew features are out there ¡  Check in on IRC and ask questions ¡  Hangout and answer some questions ¡  Are you alone in your company working with Salt? © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 14.
    STILL LEARNING “Ancora imparo’ (Iam still learning.) (At age 87 in 1562)” - Michelangelo © Copyright 2014 Hewlett-Packard Development Company, L.P.
  • 15.
    SHOW AND TELL ¡ https://github.com/EntropyWorks/salt-openstack ¡  The “formula” branch eventually will replace the “master” ¡  yazz.atlas@hp.com ¡  @EntropyWorks ¡  (I should have used the HP ppt templates...) © Copyright 2014 Hewlett-Packard Development Company, L.P.