Weitere ähnliche Inhalte Ähnlich wie Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments (20) Kürzlich hochgeladen (20) Aligning Continuous Integration Deployment: Automated Validation of OpenStack Deployments2. Puppet & Openstack:
Building and Testing Community Puppet Modules
Teyo Tyree
Co-Founder
Dan Bode
Integration Specialist
Monday, June 18, 12
6. Declarative
Idempotent
Model Driven
Monday, June 18, 12
7. Puppetized infrastucture is awesome. Using
someone else’s puppetized infrastructure is
even more awesome.
Teyo Tyree
Atlassian Conf 2012
Monday, June 18, 12
13. OpenStack is an
opensource cloud
controlling software
that is comprised of
three components
called Compute,
Object Storage, and
Image Service.
Monday, June 18, 12
15. repos:
repo_paths:
# openstack git repos
git://github.com/puppetlabs/puppetlabs-nova: nova
git://github.com/puppetlabs/puppetlabs-glance: glance
git://github.com/puppetlabs/puppetlabs-swift: swift
git://github.com/puppetlabs/puppetlabs-keystone: keystone
git://github.com/puppetlabs/puppetlabs-horizon: horizon
# openstack middleware
git://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmq
Nerd 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 deps
git://github.com/ghoneycutt/puppet-xinetd: xinetd
git://github.com/saz/puppet-ssh: ssh
git://github.com/puppetlabs/puppetlabs-stdlib: stdlib
git://github.com/puppetlabs/puppetlabs-apt: apt
git://github.com/ripienaar/puppet-concat: concat
git://github.com/duritong/puppet-sysctl.git: sysctl
Monday, June 18, 12
16. repos:
repo_paths:
# openstack git repos
git://github.com/puppetlabs/puppetlabs-nova: nova
git://github.com/puppetlabs/puppetlabs-glance: glance
git://github.com/puppetlabs/puppetlabs-swift: swift
git://github.com/puppetlabs/puppetlabs-keystone: keystone
git://github.com/puppetlabs/puppetlabs-horizon: horizon
# openstack middleware
git://github.com/puppetlabs/puppetlabs-rabbitmq: rabbitmq
Lego 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 deps
git://github.com/ghoneycutt/puppet-xinetd: xinetd
git://github.com/saz/puppet-ssh: ssh
git://github.com/puppetlabs/puppetlabs-stdlib: stdlib
git://github.com/puppetlabs/puppetlabs-apt: apt
git://github.com/ripienaar/puppet-concat: concat
git://github.com/duritong/puppet-sysctl.git: sysctl
Monday, 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
19. Puppetized infrastucture is awesome. Using
someone else’s Puppetized infrastructure is
even more awesome!
Teyo Tyree
Atlassian Conf 2012
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
27. Data
Puppet
Rspec-Puppet Facts Model
Monday, June 18, 12
28. let :facts do
Data
{:operatingsystem => ‘RedHat’}
end
Puppet
Facts Model
Monday, June 18, 12
29. Data
let :params do
{:rabbit_host => ‘10.0.0.42’}
end
Puppet
Facts Model
Monday, June 18, 12
30. it do
Data
should contain_file (‘/etc/nova.conf’).
with_content (‘rabbit_host = 10.0.0.42’)
end
Puppet
Facts Model
Monday, June 18, 12
34. Puppet
defines
deployments
Monday, June 18, 12
36. Git
Tempest
Puppet
Monday, June 18, 12