Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments

  • Published on
    13-Jan-2015

  • View
    3.959

  • Download
    2

DESCRIPTION

Ever think to yourself...how can my team automate the processes for my complex system? How does Continuous integration and Continuous Deployment fit in? In this talk by Teyo and Dan you will dive into world of automation using Puppet and OpenStack. Start off with brief overview of Puppet and OpenStack, then dive into examples of how you model complex deployments of OpenStack using Puppet.

Transcript

  • 1. Monday, June 18, 12

2. Puppet & Openstack:Building and Testing Community Puppet ModulesTeyo TyreeCo-FounderDan BodeIntegration SpecialistMonday, June 18, 12 3. Monday, June 18, 12 4. Laziness...Impatience...Hubris... Larry Wall The InternetMonday, June 18, 12 5. Puppet automates computers.Monday, June 18, 12 6. DeclarativeIdempotentModel DrivenMonday, June 18, 12 7. Puppetized infrastucture is awesome. Usingsomeone elses puppetized infrastructure iseven more awesome.Teyo TyreeAtlassian Conf 2012Monday, June 18, 12 8. Build Reusable InfrastructureMonday, June 18, 12 9. Monday, June 18, 12 10. New GoalMonday, June 18, 12 11. Build reusable models for complex applications.Monday, June 18, 12 12. Model OpenstackMonday, June 18, 12 13. OpenStack is anopensource cloudcontrolling softwarethat is comprised ofthree componentscalled Compute,Object Storage, andImage Service.Monday, June 18, 12 14. Monday, June 18, 12 15. repos:repo_paths:# openstack git reposgit://github.com/puppetlabs/puppetlabs-nova: novagit://github.com/puppetlabs/puppetlabs-glance: glancegit://github.com/puppetlabs/puppetlabs-swift:swiftgit://github.com/puppetlabs/puppetlabs-keystone: keystonegit://github.com/puppetlabs/puppetlabs-horizon:horizon# openstack middlewaregit://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmqNerd Sniped git://github.com/puppetlabs/puppetlabs-mysql:git://github.com/puppetlabs/puppetlabs-git:git://github.com/puppetlabs/puppetlabs-vcsrepo:git://github.com/saz/puppet-memcached:git://github.com/puppetlabs/puppetlabs-rsync: mysql git vcsrepo memcached rsync# other depsgit://github.com/ghoneycutt/puppet-xinetd: xinetdgit://github.com/saz/puppet-ssh: sshgit://github.com/puppetlabs/puppetlabs-stdlib: stdlibgit://github.com/puppetlabs/puppetlabs-apt:aptgit://github.com/ripienaar/puppet-concat:concatgit://github.com/duritong/puppet-sysctl.git: sysctlMonday, June 18, 12 16. repos:repo_paths:# openstack git reposgit://github.com/puppetlabs/puppetlabs-nova: novagit://github.com/puppetlabs/puppetlabs-glance: glancegit://github.com/puppetlabs/puppetlabs-swift:swiftgit://github.com/puppetlabs/puppetlabs-keystone: keystonegit://github.com/puppetlabs/puppetlabs-horizon:horizon# openstack middlewaregit://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmqLego Blocks git://github.com/puppetlabs/puppetlabs-mysql:git://github.com/puppetlabs/puppetlabs-git:git://github.com/puppetlabs/puppetlabs-vcsrepo:git://github.com/saz/puppet-memcached:git://github.com/puppetlabs/puppetlabs-rsync: mysql git vcsrepo memcached rsync# other depsgit://github.com/ghoneycutt/puppet-xinetd: xinetdgit://github.com/saz/puppet-ssh: sshgit://github.com/puppetlabs/puppetlabs-stdlib: stdlibgit://github.com/puppetlabs/puppetlabs-apt:aptgit://github.com/ripienaar/puppet-concat:concatgit://github.com/duritong/puppet-sysctl.git: sysctlMonday, June 18, 12 17. class nova($nova_cluster_id=localcluster,$sql_connection = false,$image_service = nova.image.glance.GlanceImageService,$glance_api_servers = localhost:9292,$rabbit_host = localhost,$rabbit_password=guest,$rabbit_port=5672,$rabbit_userid=guest,Flexible$rabbit_virtual_host=/,$auth_strategy = keystone,$service_down_time = 60,$logdir = /var/log/nova,$state_path = /var/lib/nova,$lock_path = $::nova::params::lock_path,$verbose = false,$periodic_interval = 60,$report_interval = 10,$root_helper = $::nova::params::root_helper){...}Monday, June 18, 12 18. We arent Openstack experts.We need the community.Monday, June 18, 12 19. Puppetized infrastucture is awesome. Usingsomeone elses Puppetized infrastructure iseven more awesome!Teyo TyreeAtlassian Conf 2012Monday, June 18, 12 20. EngagementMonday, June 18, 12 21. Fear the Fork!Monday, June 18, 12 22. Monday, June 18, 12 23. 300+ merged pull requests!Monday, June 18, 12 24. class nova($nova_cluster_id=localcluster,$sql_connection = false,$image_service = nova.image.glance.GlanceImageService,$glance_api_servers = localhost:9292,$rabbit_host = localhost,$rabbit_password=guest,$rabbit_port=5672,$rabbit_userid=guest,Flexible$rabbit_virtual_host=/,$auth_strategy = keystone,$service_down_time = 60,$logdir = /var/log/nova,$state_path = /var/lib/nova,$lock_path = $::nova::params::lock_path,$verbose = false,$periodic_interval = 60,$report_interval = 10,$root_helper = $::nova::params::root_helper){...}Monday, June 18, 12 25. class nova::params {case $::osfamily {RedHat: {# package names$api_package_name = false$cert_package_name= false$common_package_name= openstack-nova Multi-platform$compute_package_name = false...}Debian: {# package names$api_package_name = nova-api$cert_package_name= nova-cert$common_package_name= nova-common$compute_package_name = nova-compute...}Monday, June 18, 12 26. Whoa, we need tests!Monday, June 18, 12 27. DataPuppet Rspec-Puppet FactsModelMonday, June 18, 12 28. let :facts do Data{:operatingsystem => RedHat}end Puppet FactsModelMonday, June 18, 12 29. Data let :params do {:rabbit_host => 10.0.0.42} endPuppetFactsModelMonday, June 18, 12 30. it doDatashould contain_file (/etc/nova.conf). with_content (rabbit_host = 10.0.0.42) endPuppet Facts ModelMonday, June 18, 12 31. Openstack DevopsMonday, June 18, 12 32. Openstack is not static!Monday, June 18, 12 33. TempestMonday, June 18, 12 34. Puppet denes deploymentsMonday, June 18, 12 35. Testing Openstack?Monday, June 18, 12 36. Git TempestPuppetMonday, June 18, 12 37. https://github.com/puppetlabs/puppetlabs-openstackhttp://rspec-puppet.com/https://github.com/openstack/tempestMonday, June 18, 12 38. Questions?Monday, June 18, 12

Recommended

View more >