Your SlideShare is downloading. ×
0
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Making a Robust Installer for Linux Server Applications with Puppet Modules
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Making a Robust Installer for Linux Server Applications with Puppet Modules

3,339

Published on

This session will describe how puppet is used in Packstack, where we are using puppet as part of a run once installer, to deploy OpenStack in a distributed environment. During this talk we will …

This session will describe how puppet is used in Packstack, where we are using puppet as part of a run once installer, to deploy OpenStack in a distributed environment. During this talk we will discuss the benefits and pitfalls of applying puppet manifests to deploy OpenStack.

Derek Higgins
Senior Software Engineer, Red Hat
Working in Red Hat Derek's main focus has been on OpenStack Deployments, where he uses Puppet and Foreman to deploy OpenStack. Derek also started the packstack install utility which applies puppet manifests to setup OpenStack in a multi host environment. Derek is still relatively new to puppet but is eager to learn all of the features it has to offer.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,339
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Packstack Derek Higgins Senior Software Engineer Red Hat
  • 2. Packstack A utility that uses Puppet modules to deploy various parts of OpenStack on multiple pre- installed servers over SSH.
  • 3. RDO a freely-available, community-supported distribution of OpenStack that runs on Red Hat Enterprise Linux, Fedora, and their derivatives.
  • 4. RDO ● Makes it easy to install and deploy the most up- to-date OpenStack components. ● Packages Openstack components and versions of their dependencies that are known to work together. ● Provides you with installation tools to simplify Openstack installation
  • 5. Packstack 1. sudo yum install -y http://... 2. sudo yum install -y openstack-packstack 3. packstack --allinone or 3. packstack --gen-answer-file
  • 6. Overview ● Python user interactions parsing answerfile generate puppet manifests coordinate puppet tasks ● ssh (multiple hosts) ● puppet puppet apply - in series on each host - multiple hosts done in parallel (where possible) ● RDO Openstack packages
  • 7. Packstack Plugins ● One per component ● Responsible for ● Registering config directives ● Minimal script on hosts ● Generating puppet manifest
  • 8. Nova plugin : Config Directives {"CMD_OPTION": "novaconductor-host", "USAGE" : "The IP address of the server on which to install the Nova Conductor service", "PROMPT": "Enter the IP address of the Nova Conductor service", "OPTION_LIST" : [], "VALIDATORS": [validators.validate_ip, validators.validate_ssh], "DEFAULT_VALUE" : utils.get_localhost_ip(), "MASK_INPUT": False, "LOOSE_VALIDATION": True, "CONF_NAME" : "CONFIG_NOVA_CONDUCTOR_HOST", "USE_DEFAULT" : False, "NEED_CONFIRM": False, "CONDITION" : False },
  • 9. Nova plugin : Config Directives {"CMD_OPTION": "nova-db-passwd", "USAGE" : "The password to use for the Nova to access DB", "PROMPT": "Enter the password for the Nova DB access", "OPTION_LIST" : [], "VALIDATORS": [validators.validate_not_empty], "DEFAULT_VALUE" : uuid.uuid4().hex[:16], "MASK_INPUT": True, "LOOSE_VALIDATION": False, "CONF_NAME" : "CONFIG_NOVA_DB_PW", "USE_DEFAULT" : True, "NEED_CONFIRM": True, "CONDITION" : False },
  • 10. Nova plugin : script server = utils.ScriptRunner(host) cmd = "ip addr show dev %s" server.append(cmd % (device, device)) server.execute()
  • 11. Nova plugin : puppet manifest def createkeystonemanifest(config): manifestfile = "%s_keystone.pp"%controller.CONF['CONFIG_KEYSTONE_HOST'] manifestdata = getManifestTemplate("keystone_nova.pp") appendManifestFile(manifestfile, manifestdata) class {"nova::keystone::auth": password => "%(CONFIG_NOVA_KS_PW)s", public_address => "%(CONFIG_NOVA_API_HOST)s", admin_address => "%(CONFIG_NOVA_API_HOST)s", internal_address => "%(CONFIG_NOVA_API_HOST)s", cinder => true, } keystone_nova.pp
  • 12. Puppet plugin : applying modules ● Copy modules and manifests to all hosts ● Apply groups of manifests in parallel ● Don't run in parallel on same hosts ● Monitor for log file ● Search log file for errors ● Continue to next group of manifests
  • 13. Puppet modules used ● Stackforge Modules ● cinder glance horizon keystone neutron nova openstack swift ● Other ● apache concat firewall inifile memcached mysql qpid rsync ssh stdlib sysctl vlan xinetd
  • 14. MySQL ● Create Users ● Create Databases ● Configure Access
  • 15. Keystone ● PKI default token format ● Admin / Demo / Per Service users ● Services / Endpoints created ● Compulsory Service
  • 16. Glance ● Api / Registry same host ● Populated with cirros image
  • 17. Nova ● Controller / Service per Host ● 1+ nova compute hosts ● libvirt kvm / qemu ● tunes compute nodes (virtual-host profile)
  • 18. Networking ● nova FlatDHCP ● nova VLAN ● Neutron ● L2 plugins ● Linuxbridge ● openvswitch ● Namespace enabled kernel
  • 19. Cinder ● Backends : ● lvm/iscsi ● gluster (havana) ● nfs ● Lvm/iscsi Creates Sample 20G cinder- volumes VG ● Volume/Scheduler/API same host only
  • 20. Swift ● Single proxy ● Multiple storage hosts ● Multiple storage devices ● Configurable ring
  • 21. Horizon ● Http / Https options os-client ● Client libraries / cli's installed ● Admin and demo rc files
  • 22. Nagios ● Nrpe ● Monitors ● Load ● disk usage (/var) ● Keystone ● Glance ● Nova ● Cinder ● Swift
  • 23. Other ● Iptables Filters ● sebools Coming Soon ● Heat ● Ceilometer
  • 24. More Info ● Packstack --help ● http://openstack.redhat.com/ ● http://openstack.redhat.com/Quickstart ● https://github.com/stackforge/packstack ● Me ● Email : derekh@redhat.com ● Twitter : @bethehokie ● Freenode : derekh

×