SlideShare a Scribd company logo
Understanding OpenStack 
Deployments 
Chris Hoge 
@hogepodge 
! 
Interop Engineer 
OpenStack Foundation
Who is this guy?
! 
What is OpenStack?
• Identity - Keystone 
• Network - Neutron 
• Compute - Nova 
• Block Storage - Cinder 
• Image Service - Glance 
• Dashboard - Horizon 
• Object Storage - Swift 
• Telemetry - Ceilometer 
• Orchestration - Heat 
• Database - Trove 
• Map Reduce - Sahara 
• More and growing…
What does Puppet 
have to do with this?
A Cartoon View of OpenStack Architecture 
Control 
Database 
Message 
Queue 
Horizon 
Keystone 
Neutron API 
Nova API 
Glance API 
Cinder API 
Network 
Neutron 
Agents 
Neutron 
Agents 
Neutron 
Agents 
Nova 
Scheduler 
Glance 
Registry 
Cinder 
Scheduler 
Compute 
Compute 
Compute 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Network 
Agent 
Network 
Agent 
Network 
Agent 
Network 
Agent 
Storage 
Storage 
Storage 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage
Network 
Neutron 
Agents 
Neutron 
Agents 
Neutron 
Agents 
Control 
Database 
Message 
Queue 
Horizon 
Keystone 
Neutron 
API 
Nova API 
Glance 
API 
Cinder 
API 
Nova 
Scheduler 
Glance 
Registry 
Cinder 
Scheduler 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Network 
Network 
Network 
Network 
Agent 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
API Network External Network 
Data Network 
Administrative Network
“Le Grand Tour” of the puppet-openstack Modules 
• 1:1 correspondence with 
OpenStack projects. 
• Community developed in 
StackForge! 
• Builds on Canonical and Red Hat 
packaging. 
• Tracks the major 6-month 
OpenStack releases. 
• Modules available on Puppet Forge.
OpenStack Composition Modules 
• stackforge/packstack 
• theforeman/staypuft 
• stackforge/fuel-library 
• stackforge/puppet-openstack_builder 
• enovance/puppet-openstack-cloud 
• puppetlabs/puppetlabs-openstack
! 
class openstack::profile::base { 
! 
# make sure the parameters are initialized 
include ::openstack 
! 
# everyone also needs to be on the same clock 
class { '::ntp': } 
! 
# all nodes need the OpenStack repository 
class { '::openstack::resources::repo': } 
! 
# database connectors 
class { '::openstack::resources::connectors': } 
! 
$management_network = $::openstack::config::network_management 
$management_address = ip_for_network($management_network) 
$controller_management_address = $::openstack::config::controller_address_management 
$storage_management_address = $::openstack::config::storage_address_management 
$management_matches = ($management_address == $controller_management_address) 
$storage_management_matches = ($management_address == $storage_management_address) 
! 
$api_network = $::openstack::config::network_api 
$api_address = ip_for_network($api_network) 
$controller_api_address = $::openstack::config::controller_address_api 
$storage_api_address = $::openstack::config::storage_address_api 
! 
$api_matches = ($api_address == $controller_api_address) 
$storage_api_matches = ($api_address == $storage_api_address) 
! 
$is_controller = ($management_matches and $api_matches) 
$is_storage = ($storage_management_matches and $storage_api_matches) 
}
Network 
Neutron 
Agents 
Neutron 
Agents 
Neutron 
Agents 
Control 
Database 
Message 
Queue 
Horizon 
Keystone 
Neutron 
API 
Nova API 
Glance 
API 
Cinder 
API 
Nova 
Scheduler 
Glance 
Registry 
Cinder 
Scheduler 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Network 
Network 
Network 
Network 
Agent 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
API Network External Network 
Data Network 
Administrative Network
# The profile to install rabbitmq 
! 
class openstack::profile::rabbitmq { 
! 
$management_address = $::openstack::config::controller_address_management 
! 
class { '::nova::rabbitmq': 
userid => $::openstack::config::rabbitmq_user, 
password => $::openstack::config::rabbitmq_password, 
cluster_disk_nodes => [$management_address], 
rabbitmq_class => '::rabbitmq', 
} 
! 
if $::osfamily == 'RedHat' { 
package { 'erlang': 
ensure => installed, 
before => Package['rabbitmq-server'], 
require => Yumrepo['erlang-solutions'], 
} 
} 
}
# The profile to install an OpenStack specific mysql server 
! 
class openstack::profile::mysql { 
! 
class { '::mysql::server': 
root_password => $::openstack::config::mysql_root_password, 
restart => true, 
override_options => { 
'mysqld' => { 
'bind_address' => 
$::openstack::config::controller_address_management, 
'default-storage-engine' => 'innodb', 
} 
} 
} 
! 
! 
class { '::mysql::bindings': 
python_enable => true, 
ruby_enable => true, 
} 
! 
class { 'mysql::server::account_security': } 
! 
}
define openstack::resources::database () { 
class { "::${title}::db::mysql": 
user => $title, 
password => $::openstack::config::mysql_service_password, 
dbname => $title, 
allowed_hosts => $::openstack::config::mysql_allowed_hosts, 
mysql_module => '2.2', 
require => Anchor['database-service'], 
} 
}
Network 
Neutron 
Agents 
Neutron 
Agents 
Neutron 
Agents 
Control 
Database 
Message 
Queue 
Horizon 
Keystone 
Neutron 
API 
Nova API 
Glance 
API 
Cinder 
API 
Nova 
Scheduler 
Glance 
Registry 
Cinder 
Scheduler 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Network 
Network 
Network 
Network 
Agent 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
API Network External Network 
Data Network 
Administrative Network
# The profile to install the Keystone service 
class openstack::profile::keystone { 
openstack::resources::controller { 'keystone': } 
openstack::resources::database { 'keystone': } 
openstack::resources::firewall { 'Keystone API': port => '5000', } 
! 
include ::openstack::common::keystone 
! 
class { 'keystone::endpoint': 
public_address => $::openstack::config::controller_address_api, 
admin_address => $::openstack::config::controller_address_management, 
internal_address => $::openstack::config::controller_address_management, 
region => $::openstack::config::region, 
} 
! 
$tenants = $::openstack::config::keystone_tenants 
$users = $::openstack::config::keystone_users 
create_resources('openstack::resources::tenant', $tenants) 
create_resources('openstack::resources::user', $users) 
}
define openstack::resources::user ( 
$password, 
$tenant, 
$email, 
$admin = false, 
$enabled = true, 
) { 
keystone_user { "$name": 
ensure => present, 
enabled => $enabled, 
password => $password, 
tenant => $tenant, 
email => $email, 
} 
! 
if $admin == true { 
keystone_user_role { "$name@$tenant": 
roles => ['_member_', 'admin'], 
ensure => present, 
} 
} else { 
keystone_user_role { "$name@$tenant": 
roles => ['_member_'], 
ensure => present, 
} 
} 
}
class openstack::common::keystone { 
if $::openstack::profile::base::is_controller { 
$admin_bind_host = '0.0.0.0' 
} else { 
$admin_bind_host = $::openstack::config::controller_address_management 
} 
! 
class { '::keystone': 
admin_token => $::openstack::config::keystone_admin_token, 
sql_connection => $::openstack::resources::connectors::keystone, 
verbose => $::openstack::config::verbose, 
debug => $::openstack::config::debug, 
enabled => $::openstack::profile::base::is_controller, 
admin_bind_host => $admin_bind_host, 
mysql_module => '2.2', 
} 
! 
class { '::keystone::roles::admin': 
email => $::openstack::config::keystone_admin_email, 
password => $::openstack::config::keystone_admin_password, 
admin_tenant => 'admin', 
} 
}
# The profile to set up the Nova controller (several services) 
class openstack::profile::nova::api { 
openstack::resources::controller { 'nova': } 
openstack::resources::database { 'nova': } 
openstack::resources::firewall { 'Nova API': port => '8774', } 
openstack::resources::firewall { 'Nova Metadata': port => '8775', } 
openstack::resources::firewall { 'Nova EC2': port => '8773', } 
openstack::resources::firewall { 'Nova S3': port => '3333', } 
openstack::resources::firewall { 'Nova novnc': port => '6080', } 
! 
class { '::nova::keystone::auth': 
password => $::openstack::config::nova_password, 
public_address => $::openstack::config::controller_address_api, 
admin_address => $::openstack::config::controller_address_management, 
internal_address => $::openstack::config::controller_address_management, 
region => $::openstack::config::region, 
cinder => true, 
} 
! 
include ::openstack::common::nova 
}
class openstack::common::nova ($is_compute = false) { 
$is_controller = $::openstack::profile::base::is_controller 
$management_network = $::openstack::config::network_management 
$management_address = ip_for_network($management_network) 
$storage_management_address = $::openstack::config::storage_address_management 
$controller_management_address = 
$::openstack::config::controller_address_management 
! 
class { '::nova': 
sql_connection => $::openstack::resources::connectors::nova, 
glance_api_servers => "http://${storage_management_address}:9292", 
memcached_servers => ["${controller_management_address}:11211"], 
rabbit_hosts => [$controller_management_address], 
rabbit_userid => $::openstack::config::rabbitmq_user, 
rabbit_password => $::openstack::config::rabbitmq_password, 
debug => $::openstack::config::debug, 
verbose => $::openstack::config::verbose, 
mysql_module => '2.2', 
} 
! 
nova_config { 'DEFAULT/default_floating_pool': value => 'public' } 
! 
class { '::nova::api': 
admin_password => $::openstack::config::nova_password, 
auth_host => $controller_management_address, 
enabled => $is_controller, 
neutron_metadata_proxy_shared_secret => 
$::openstack::config::neutron_shared_secret, 
} 
! 
class { '::nova::vncproxy': 
host => $::openstack::config::controller_address_api, 
enabled => $is_controller, 
} 
! 
class { [ 
'nova::scheduler', 
'nova::objectstore', 
'nova::cert', 
'nova::consoleauth', 
'nova::conductor' 
]: 
enabled => $is_controller, 
} 
! 
class { '::nova::compute': 
enabled => $is_compute, 
vnc_enabled => true, 
vncserver_proxyclient_address => $management_address, 
vncproxy_host => $::openstack::config::controller_address_api, 
} 
! 
class { '::nova::compute::neutron': } 
! 
class { '::nova::network::neutron': 
neutron_admin_password => $::openstack::config::neutron_password, 
neutron_region_name => $::openstack::config::region, 
neutron_admin_auth_url => "http://${controller_management_address}:35357/v2.0", 
neutron_url => "http://${controller_management_address}:9696", 
vif_plugging_is_fatal => false, 
vif_plugging_timeout => '0', 
}
Network 
Neutron 
Agents 
Neutron 
Agents 
Neutron 
Agents 
Control 
Database 
Message 
Queue 
Horizon 
Keystone 
Neutron 
API 
Nova API 
Glance 
API 
Cinder 
API 
Nova 
Scheduler 
Glance 
Registry 
Cinder 
Scheduler 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Nova 
Compute 
Network 
Network 
Network 
Network 
Agent 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
Cinder 
Storage 
API Network External Network 
Data Network 
Administrative Network
# The puppet module to set up a Nova Compute node 
! 
class openstack::profile::nova::compute { 
$management_network = $::openstack::config::network_management 
$management_address = ip_for_network($management_network) 
! 
class { 'openstack::common::nova': 
is_compute => true, 
} 
! 
class { '::nova::compute::libvirt': 
libvirt_type => $::openstack::config::nova_libvirt_type, 
vncserver_listen => $management_address, 
} 
! 
file { '/etc/libvirt/qemu.conf': 
ensure => present, 
source => 'puppet:///modules/openstack/qemu.conf', 
mode => '0644', 
notify => Service['libvirt'], 
} 
! 
Package['libvirt'] -> File['/etc/libvirt/qemu.conf'] 
}
class openstack::profile::neutron::agent { 
include ::openstack::common::neutron 
include ::openstack::common::ovs 
} 
!
class openstack::common::neutron { 
$controller_management_address = $::openstack::config::controller_address_management 
$data_network = $::openstack::config::network_data 
$data_address = ip_for_network($data_network) 
# neutron auth depends upon a keystone configuration 
include ::openstack::common::keystone 
! 
class { '::neutron': 
rabbit_host => $controller_management_address, 
core_plugin => 'neutron.plugins.ml2.plugin.Ml2Plugin', 
allow_overlapping_ips => true, 
rabbit_user => $::openstack::config::rabbitmq_user, 
rabbit_password => $::openstack::config::rabbitmq_password, 
debug => $::openstack::config::debug, 
verbose => $::openstack::config::verbose, 
service_plugins => ['neutron.services.l3_router.l3_router_plugin.L3RouterPlugin', 
'neutron.services.loadbalancer.plugin.LoadBalancerPlugin', 
'neutron.services.vpn.plugin.VPNDriverPlugin', 
'neutron.services.firewall.fwaas_plugin.FirewallPlugin', 
'neutron.services.metering.metering_plugin.MeteringPlugin'], 
} 
! 
class { '::neutron::keystone::auth': 
password => $::openstack::config::neutron_password, 
public_address => $::openstack::config::controller_address_api, 
admin_address => $::openstack::config::controller_address_management, 
internal_address => $::openstack::config::controller_address_management, 
region => $::openstack::config::region, 
} 
! 
class { '::neutron::server': 
auth_host => $::openstack::config::controller_address_management, 
auth_password => $::openstack::config::neutron_password, 
database_connection => $::openstack::resources::connectors::neutron, 
enabled => $::openstack::profile::base::is_controller, 
sync_db => $::openstack::profile::base::is_controller, 
mysql_module => '2.2', 
} 
! 
class { '::neutron::server::notifications': 
nova_url => "http://${controller_management_address}:8774/v2/", 
nova_admin_auth_url => "http://${controller_management_address}:35357/v2.0/", 
nova_admin_password => $::openstack::config::nova_password, 
nova_region_name => $::openstack::config::region, 
} 
}
class openstack::common::ovs { 
$data_network = $::openstack::config::network_data 
$data_address = ip_for_network($data_network) 
$enable_tunneling = $::openstack::config::neutron_tunneling # true 
$tunnel_types = $::openstack::config::neutron_tunnel_types #['gre'] 
$tenant_network_type = $::openstack::config::neutron_tenant_network_type # ['gre'] 
$type_drivers = $::openstack::config::neutron_type_drivers # ['gre'] 
$mechanism_drivers = $::openstack::config::neutron_mechanism_drivers # ['openvswitch'] 
$tunnel_id_ranges = $::openstack::config::neutron_tunnel_id_ranges # ['1:1000'] 
! 
class { '::neutron::agents::ml2::ovs': 
enable_tunneling => $enable_tunneling, 
local_ip => $data_address, 
enabled => true, 
tunnel_types => $tunnel_types, 
} 
! 
class { '::neutron::plugins::ml2': 
type_drivers => $type_drivers, 
tenant_network_types => $tenant_network_type, 
mechanism_drivers => $mechanism_drivers, 
tunnel_id_ranges => $tunnel_id_ranges 
} 
}
How You Can Get Involved 
• Sign up to be an OpenStack Contributor! 
https://wiki.openstack.org/wiki/How_To_Contribute 
• Review the Code! 
https://review.openstack.org 
• Write the Code! 
https://wiki.openstack.org/wiki/Gerrit_Workflow 
• Hang out with the Amazing Devs! 
#puppet-openstack on Freenode 
• Share and learn! 
puppet-openstack mailing list on Google Groups.
QuTehasnkt iyooun! s?

More Related Content

What's hot

Deploying OpenStack with Chef
Deploying OpenStack with ChefDeploying OpenStack with Chef
Deploying OpenStack with Chef
Matt Ray
 
Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013
Matt Ray
 
Extending TripleO for OpenStack Management
Extending TripleO for OpenStack ManagementExtending TripleO for OpenStack Management
Extending TripleO for OpenStack Management
Keith Basil
 
TripleO Lightning Talk
TripleO Lightning TalkTripleO Lightning Talk
TripleO Lightning Talk
cmsj1
 
Designing and Building Multi-Region Swift Deployment
Designing and Building Multi-Region Swift DeploymentDesigning and Building Multi-Region Swift Deployment
Designing and Building Multi-Region Swift Deployment
Siheon Kim
 
How to use TripleO tools for your own project
How to use TripleO tools for your own projectHow to use TripleO tools for your own project
How to use TripleO tools for your own project
Gonéri Le Bouder
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
Mike Pittaro
 
distributed tracing in 5 minutes
distributed tracing in 5 minutesdistributed tracing in 5 minutes
distributed tracing in 5 minutes
Dan Kuebrich
 
OpenStack with OpenDaylight
OpenStack with OpenDaylightOpenStack with OpenDaylight
OpenStack with OpenDaylight
Vikram G Hosakote
 
Python WSGI introduction
Python WSGI introductionPython WSGI introduction
Python WSGI introduction
Ageeleshwar K
 
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Vikram G Hosakote
 
Openstack grizzley puppet_talk
Openstack grizzley puppet_talkOpenstack grizzley puppet_talk
Openstack grizzley puppet_talk
bodepd
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUp
Stacy Véronneau
 
NYC Cassandra Day - Java Intro
NYC Cassandra Day - Java IntroNYC Cassandra Day - Java Intro
NYC Cassandra Day - Java Intro
Christopher Batey
 
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on DockerRunning High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Sematext Group, Inc.
 
使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡
Lawrence Huang
 
Open stack Austin meetup January 15, 2015
Open stack Austin meetup January 15, 2015Open stack Austin meetup January 15, 2015
Open stack Austin meetup January 15, 2015
Tesora
 
Docker in OpenStack
Docker in OpenStackDocker in OpenStack
Docker in OpenStack
Thanassis Parathyras
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
Kiran Murari
 

What's hot (20)

Deploying OpenStack with Chef
Deploying OpenStack with ChefDeploying OpenStack with Chef
Deploying OpenStack with Chef
 
OpenStack and Puppet
OpenStack and PuppetOpenStack and Puppet
OpenStack and Puppet
 
Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013Chef for OpenStack: OpenStack Spring Summit 2013
Chef for OpenStack: OpenStack Spring Summit 2013
 
Extending TripleO for OpenStack Management
Extending TripleO for OpenStack ManagementExtending TripleO for OpenStack Management
Extending TripleO for OpenStack Management
 
TripleO Lightning Talk
TripleO Lightning TalkTripleO Lightning Talk
TripleO Lightning Talk
 
Designing and Building Multi-Region Swift Deployment
Designing and Building Multi-Region Swift DeploymentDesigning and Building Multi-Region Swift Deployment
Designing and Building Multi-Region Swift Deployment
 
How to use TripleO tools for your own project
How to use TripleO tools for your own projectHow to use TripleO tools for your own project
How to use TripleO tools for your own project
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGI
 
distributed tracing in 5 minutes
distributed tracing in 5 minutesdistributed tracing in 5 minutes
distributed tracing in 5 minutes
 
OpenStack with OpenDaylight
OpenStack with OpenDaylightOpenStack with OpenDaylight
OpenStack with OpenDaylight
 
Python WSGI introduction
Python WSGI introductionPython WSGI introduction
Python WSGI introduction
 
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack KollaCisco UCS loves Kubernetes, Docker and OpenStack Kolla
Cisco UCS loves Kubernetes, Docker and OpenStack Kolla
 
Openstack grizzley puppet_talk
Openstack grizzley puppet_talkOpenstack grizzley puppet_talk
Openstack grizzley puppet_talk
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUp
 
NYC Cassandra Day - Java Intro
NYC Cassandra Day - Java IntroNYC Cassandra Day - Java Intro
NYC Cassandra Day - Java Intro
 
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on DockerRunning High Performance & Fault-tolerant Elasticsearch Clusters on Docker
Running High Performance & Fault-tolerant Elasticsearch Clusters on Docker
 
使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡使用ZooKeeper打造軟體式負載平衡
使用ZooKeeper打造軟體式負載平衡
 
Open stack Austin meetup January 15, 2015
Open stack Austin meetup January 15, 2015Open stack Austin meetup January 15, 2015
Open stack Austin meetup January 15, 2015
 
Docker in OpenStack
Docker in OpenStackDocker in OpenStack
Docker in OpenStack
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds up
 

Viewers also liked

What's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with PuppetWhat's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with Puppet
Mark Voelker
 
Tebmàtica número 14
Tebmàtica número 14Tebmàtica número 14
Tebmàtica número 14
Pepa Muñoz
 
Highlights of OpenStack Mitaka and the OpenStack Summit
Highlights of OpenStack Mitaka and the OpenStack SummitHighlights of OpenStack Mitaka and the OpenStack Summit
Highlights of OpenStack Mitaka and the OpenStack Summit
Cloud Standards Customer Council
 
Cloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackCloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackAnimesh Singh
 
From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture
Claude Riousset
 
OpenStack Murano introduction
OpenStack Murano introductionOpenStack Murano introduction
OpenStack Murano introduction
Victor Zhang
 
OpenStack Automation Overview
OpenStack Automation OverviewOpenStack Automation Overview
OpenStack Automation Overview
Dmitri Zimine
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAnimesh Singh
 
Fuel, Puppet and OpenStack
Fuel, Puppet and OpenStackFuel, Puppet and OpenStack
Fuel, Puppet and OpenStack
aedocw
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
Jimi Chen
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Krishna-Kumar
 
Automating OpenStack Deployment with Fuel
Automating OpenStack Deployment with FuelAutomating OpenStack Deployment with Fuel
Automating OpenStack Deployment with Fuel
Tomasz Zen Napierala
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStack
openstackindia
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
Mirantis
 
Openstack Cloud Management and Automation Using Red Hat Cloudforms 4.0
Openstack Cloud  Management and Automation Using Red Hat Cloudforms 4.0Openstack Cloud  Management and Automation Using Red Hat Cloudforms 4.0
Openstack Cloud Management and Automation Using Red Hat Cloudforms 4.0
Prasad Mukhedkar
 
Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)
rhirschfeld
 
Crowbar2 update
Crowbar2 updateCrowbar2 update
Crowbar2 updateosonoi
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a Service
Tesora
 
A Deep Dive Into Trove
A Deep Dive Into TroveA Deep Dive Into Trove
A Deep Dive Into Trove
Tesora
 
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
Giuseppe Paterno'
 

Viewers also liked (20)

What's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with PuppetWhat's New in Grizzly & Deploying OpenStack with Puppet
What's New in Grizzly & Deploying OpenStack with Puppet
 
Tebmàtica número 14
Tebmàtica número 14Tebmàtica número 14
Tebmàtica número 14
 
Highlights of OpenStack Mitaka and the OpenStack Summit
Highlights of OpenStack Mitaka and the OpenStack SummitHighlights of OpenStack Mitaka and the OpenStack Summit
Highlights of OpenStack Mitaka and the OpenStack Summit
 
Cloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStackCloud Foundry BOSH CPI for OpenStack
Cloud Foundry BOSH CPI for OpenStack
 
From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture
 
OpenStack Murano introduction
OpenStack Murano introductionOpenStack Murano introduction
OpenStack Murano introduction
 
OpenStack Automation Overview
OpenStack Automation OverviewOpenStack Automation Overview
OpenStack Automation Overview
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStack
 
Fuel, Puppet and OpenStack
Fuel, Puppet and OpenStackFuel, Puppet and OpenStack
Fuel, Puppet and OpenStack
 
OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)OpenStack Orchestration (Heat)
OpenStack Orchestration (Heat)
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
 
Automating OpenStack Deployment with Fuel
Automating OpenStack Deployment with FuelAutomating OpenStack Deployment with Fuel
Automating OpenStack Deployment with Fuel
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStack
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack Heat
 
Openstack Cloud Management and Automation Using Red Hat Cloudforms 4.0
Openstack Cloud  Management and Automation Using Red Hat Cloudforms 4.0Openstack Cloud  Management and Automation Using Red Hat Cloudforms 4.0
Openstack Cloud Management and Automation Using Red Hat Cloudforms 4.0
 
Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)Joint OpenStack Kubernetes Environment (OpenStack Summit)
Joint OpenStack Kubernetes Environment (OpenStack Summit)
 
Crowbar2 update
Crowbar2 updateCrowbar2 update
Crowbar2 update
 
Introduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a ServiceIntroduction to OpenStack Trove & Database as a Service
Introduction to OpenStack Trove & Database as a Service
 
A Deep Dive Into Trove
A Deep Dive Into TroveA Deep Dive Into Trove
A Deep Dive Into Trove
 
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...OpenStack Explained: Learn OpenStack architecture and the secret of a success...
OpenStack Explained: Learn OpenStack architecture and the secret of a success...
 

Similar to Understanding OpenStack Deployments - PuppetConf 2014

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
The Zen of Lithium
The Zen of LithiumThe Zen of Lithium
The Zen of Lithium
Nate Abele
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统yiditushe
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
Joe Stein
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebookguoqing75
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
SV Ruby on Rails Meetup
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
Carlos Sanchez
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Simon McCartney
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
Wesley Beary
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
Kyle Rames
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
Wesley Beary
 
Streamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache AmbariStreamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache Ambari
Alejandro Fernandez
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
SmartLogic
 
Intro to fog and openstack jp
Intro to fog and openstack jpIntro to fog and openstack jp
Intro to fog and openstack jp
Satoshi Konno
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express
Jeetendra singh
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
Prajal Kulkarni
 
Apache Kafka, HDFS, Accumulo and more on Mesos
Apache Kafka, HDFS, Accumulo and more on MesosApache Kafka, HDFS, Accumulo and more on Mesos
Apache Kafka, HDFS, Accumulo and more on Mesos
Joe Stein
 
Service discovery and configuration provisioning
Service discovery and configuration provisioningService discovery and configuration provisioning
Service discovery and configuration provisioning
Source Ministry
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Carlos Sanchez
 
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteIntegrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 

Similar to Understanding OpenStack Deployments - PuppetConf 2014 (20)

Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
The Zen of Lithium
The Zen of LithiumThe Zen of Lithium
The Zen of Lithium
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
 
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine YardHow I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
How I Learned to Stop Worrying and Love the Cloud - Wesley Beary, Engine Yard
 
Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012Puppet for Java developers - JavaZone NO 2012
Puppet for Java developers - JavaZone NO 2012
 
Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013Stack kicker devopsdays-london-2013
Stack kicker devopsdays-london-2013
 
fog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloudfog or: How I Learned to Stop Worrying and Love the Cloud
fog or: How I Learned to Stop Worrying and Love the Cloud
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
fog or: How I Learned to Stop Worrying and Love the Cloud (OpenStack Edition)
 
Streamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache AmbariStreamline Hadoop DevOps with Apache Ambari
Streamline Hadoop DevOps with Apache Ambari
 
Practical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails AppPractical Chef and Capistrano for Your Rails App
Practical Chef and Capistrano for Your Rails App
 
Intro to fog and openstack jp
Intro to fog and openstack jpIntro to fog and openstack jp
Intro to fog and openstack jp
 
RESTful API In Node Js using Express
RESTful API In Node Js using Express RESTful API In Node Js using Express
RESTful API In Node Js using Express
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
 
Apache Kafka, HDFS, Accumulo and more on Mesos
Apache Kafka, HDFS, Accumulo and more on MesosApache Kafka, HDFS, Accumulo and more on Mesos
Apache Kafka, HDFS, Accumulo and more on Mesos
 
Service discovery and configuration provisioning
Service discovery and configuration provisioningService discovery and configuration provisioning
Service discovery and configuration provisioning
 
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
Continuous Delivery with Maven, Puppet and Tomcat - ApacheCon NA 2013
 
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteIntegrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suite
 

More from Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
Puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
Puppet
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
Puppet
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
Puppet
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
Puppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
Puppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
Puppet
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
Puppet
 

More from Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Recently uploaded

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

Understanding OpenStack Deployments - PuppetConf 2014

  • 1. Understanding OpenStack Deployments Chris Hoge @hogepodge ! Interop Engineer OpenStack Foundation
  • 2. Who is this guy?
  • 3. ! What is OpenStack?
  • 4. • Identity - Keystone • Network - Neutron • Compute - Nova • Block Storage - Cinder • Image Service - Glance • Dashboard - Horizon • Object Storage - Swift • Telemetry - Ceilometer • Orchestration - Heat • Database - Trove • Map Reduce - Sahara • More and growing…
  • 5. What does Puppet have to do with this?
  • 6. A Cartoon View of OpenStack Architecture Control Database Message Queue Horizon Keystone Neutron API Nova API Glance API Cinder API Network Neutron Agents Neutron Agents Neutron Agents Nova Scheduler Glance Registry Cinder Scheduler Compute Compute Compute Compute Nova Compute Nova Compute Nova Compute Nova Compute Network Agent Network Agent Network Agent Network Agent Storage Storage Storage Storage Cinder Storage Cinder Storage Cinder Storage Cinder Storage
  • 7. Network Neutron Agents Neutron Agents Neutron Agents Control Database Message Queue Horizon Keystone Neutron API Nova API Glance API Cinder API Nova Scheduler Glance Registry Cinder Scheduler Compute Nova Compute Nova Compute Nova Compute Nova Compute Network Network Network Network Agent Storage Cinder Storage Cinder Storage Cinder Storage Cinder Storage API Network External Network Data Network Administrative Network
  • 8. “Le Grand Tour” of the puppet-openstack Modules • 1:1 correspondence with OpenStack projects. • Community developed in StackForge! • Builds on Canonical and Red Hat packaging. • Tracks the major 6-month OpenStack releases. • Modules available on Puppet Forge.
  • 9. OpenStack Composition Modules • stackforge/packstack • theforeman/staypuft • stackforge/fuel-library • stackforge/puppet-openstack_builder • enovance/puppet-openstack-cloud • puppetlabs/puppetlabs-openstack
  • 10. ! class openstack::profile::base { ! # make sure the parameters are initialized include ::openstack ! # everyone also needs to be on the same clock class { '::ntp': } ! # all nodes need the OpenStack repository class { '::openstack::resources::repo': } ! # database connectors class { '::openstack::resources::connectors': } ! $management_network = $::openstack::config::network_management $management_address = ip_for_network($management_network) $controller_management_address = $::openstack::config::controller_address_management $storage_management_address = $::openstack::config::storage_address_management $management_matches = ($management_address == $controller_management_address) $storage_management_matches = ($management_address == $storage_management_address) ! $api_network = $::openstack::config::network_api $api_address = ip_for_network($api_network) $controller_api_address = $::openstack::config::controller_address_api $storage_api_address = $::openstack::config::storage_address_api ! $api_matches = ($api_address == $controller_api_address) $storage_api_matches = ($api_address == $storage_api_address) ! $is_controller = ($management_matches and $api_matches) $is_storage = ($storage_management_matches and $storage_api_matches) }
  • 11. Network Neutron Agents Neutron Agents Neutron Agents Control Database Message Queue Horizon Keystone Neutron API Nova API Glance API Cinder API Nova Scheduler Glance Registry Cinder Scheduler Compute Nova Compute Nova Compute Nova Compute Nova Compute Network Network Network Network Agent Storage Cinder Storage Cinder Storage Cinder Storage Cinder Storage API Network External Network Data Network Administrative Network
  • 12. # The profile to install rabbitmq ! class openstack::profile::rabbitmq { ! $management_address = $::openstack::config::controller_address_management ! class { '::nova::rabbitmq': userid => $::openstack::config::rabbitmq_user, password => $::openstack::config::rabbitmq_password, cluster_disk_nodes => [$management_address], rabbitmq_class => '::rabbitmq', } ! if $::osfamily == 'RedHat' { package { 'erlang': ensure => installed, before => Package['rabbitmq-server'], require => Yumrepo['erlang-solutions'], } } }
  • 13. # The profile to install an OpenStack specific mysql server ! class openstack::profile::mysql { ! class { '::mysql::server': root_password => $::openstack::config::mysql_root_password, restart => true, override_options => { 'mysqld' => { 'bind_address' => $::openstack::config::controller_address_management, 'default-storage-engine' => 'innodb', } } } ! ! class { '::mysql::bindings': python_enable => true, ruby_enable => true, } ! class { 'mysql::server::account_security': } ! }
  • 14. define openstack::resources::database () { class { "::${title}::db::mysql": user => $title, password => $::openstack::config::mysql_service_password, dbname => $title, allowed_hosts => $::openstack::config::mysql_allowed_hosts, mysql_module => '2.2', require => Anchor['database-service'], } }
  • 15. Network Neutron Agents Neutron Agents Neutron Agents Control Database Message Queue Horizon Keystone Neutron API Nova API Glance API Cinder API Nova Scheduler Glance Registry Cinder Scheduler Compute Nova Compute Nova Compute Nova Compute Nova Compute Network Network Network Network Agent Storage Cinder Storage Cinder Storage Cinder Storage Cinder Storage API Network External Network Data Network Administrative Network
  • 16. # The profile to install the Keystone service class openstack::profile::keystone { openstack::resources::controller { 'keystone': } openstack::resources::database { 'keystone': } openstack::resources::firewall { 'Keystone API': port => '5000', } ! include ::openstack::common::keystone ! class { 'keystone::endpoint': public_address => $::openstack::config::controller_address_api, admin_address => $::openstack::config::controller_address_management, internal_address => $::openstack::config::controller_address_management, region => $::openstack::config::region, } ! $tenants = $::openstack::config::keystone_tenants $users = $::openstack::config::keystone_users create_resources('openstack::resources::tenant', $tenants) create_resources('openstack::resources::user', $users) }
  • 17. define openstack::resources::user ( $password, $tenant, $email, $admin = false, $enabled = true, ) { keystone_user { "$name": ensure => present, enabled => $enabled, password => $password, tenant => $tenant, email => $email, } ! if $admin == true { keystone_user_role { "$name@$tenant": roles => ['_member_', 'admin'], ensure => present, } } else { keystone_user_role { "$name@$tenant": roles => ['_member_'], ensure => present, } } }
  • 18. class openstack::common::keystone { if $::openstack::profile::base::is_controller { $admin_bind_host = '0.0.0.0' } else { $admin_bind_host = $::openstack::config::controller_address_management } ! class { '::keystone': admin_token => $::openstack::config::keystone_admin_token, sql_connection => $::openstack::resources::connectors::keystone, verbose => $::openstack::config::verbose, debug => $::openstack::config::debug, enabled => $::openstack::profile::base::is_controller, admin_bind_host => $admin_bind_host, mysql_module => '2.2', } ! class { '::keystone::roles::admin': email => $::openstack::config::keystone_admin_email, password => $::openstack::config::keystone_admin_password, admin_tenant => 'admin', } }
  • 19. # The profile to set up the Nova controller (several services) class openstack::profile::nova::api { openstack::resources::controller { 'nova': } openstack::resources::database { 'nova': } openstack::resources::firewall { 'Nova API': port => '8774', } openstack::resources::firewall { 'Nova Metadata': port => '8775', } openstack::resources::firewall { 'Nova EC2': port => '8773', } openstack::resources::firewall { 'Nova S3': port => '3333', } openstack::resources::firewall { 'Nova novnc': port => '6080', } ! class { '::nova::keystone::auth': password => $::openstack::config::nova_password, public_address => $::openstack::config::controller_address_api, admin_address => $::openstack::config::controller_address_management, internal_address => $::openstack::config::controller_address_management, region => $::openstack::config::region, cinder => true, } ! include ::openstack::common::nova }
  • 20. class openstack::common::nova ($is_compute = false) { $is_controller = $::openstack::profile::base::is_controller $management_network = $::openstack::config::network_management $management_address = ip_for_network($management_network) $storage_management_address = $::openstack::config::storage_address_management $controller_management_address = $::openstack::config::controller_address_management ! class { '::nova': sql_connection => $::openstack::resources::connectors::nova, glance_api_servers => "http://${storage_management_address}:9292", memcached_servers => ["${controller_management_address}:11211"], rabbit_hosts => [$controller_management_address], rabbit_userid => $::openstack::config::rabbitmq_user, rabbit_password => $::openstack::config::rabbitmq_password, debug => $::openstack::config::debug, verbose => $::openstack::config::verbose, mysql_module => '2.2', } ! nova_config { 'DEFAULT/default_floating_pool': value => 'public' } ! class { '::nova::api': admin_password => $::openstack::config::nova_password, auth_host => $controller_management_address, enabled => $is_controller, neutron_metadata_proxy_shared_secret => $::openstack::config::neutron_shared_secret, } ! class { '::nova::vncproxy': host => $::openstack::config::controller_address_api, enabled => $is_controller, } ! class { [ 'nova::scheduler', 'nova::objectstore', 'nova::cert', 'nova::consoleauth', 'nova::conductor' ]: enabled => $is_controller, } ! class { '::nova::compute': enabled => $is_compute, vnc_enabled => true, vncserver_proxyclient_address => $management_address, vncproxy_host => $::openstack::config::controller_address_api, } ! class { '::nova::compute::neutron': } ! class { '::nova::network::neutron': neutron_admin_password => $::openstack::config::neutron_password, neutron_region_name => $::openstack::config::region, neutron_admin_auth_url => "http://${controller_management_address}:35357/v2.0", neutron_url => "http://${controller_management_address}:9696", vif_plugging_is_fatal => false, vif_plugging_timeout => '0', }
  • 21. Network Neutron Agents Neutron Agents Neutron Agents Control Database Message Queue Horizon Keystone Neutron API Nova API Glance API Cinder API Nova Scheduler Glance Registry Cinder Scheduler Compute Nova Compute Nova Compute Nova Compute Nova Compute Network Network Network Network Agent Storage Cinder Storage Cinder Storage Cinder Storage Cinder Storage API Network External Network Data Network Administrative Network
  • 22. # The puppet module to set up a Nova Compute node ! class openstack::profile::nova::compute { $management_network = $::openstack::config::network_management $management_address = ip_for_network($management_network) ! class { 'openstack::common::nova': is_compute => true, } ! class { '::nova::compute::libvirt': libvirt_type => $::openstack::config::nova_libvirt_type, vncserver_listen => $management_address, } ! file { '/etc/libvirt/qemu.conf': ensure => present, source => 'puppet:///modules/openstack/qemu.conf', mode => '0644', notify => Service['libvirt'], } ! Package['libvirt'] -> File['/etc/libvirt/qemu.conf'] }
  • 23. class openstack::profile::neutron::agent { include ::openstack::common::neutron include ::openstack::common::ovs } !
  • 24. class openstack::common::neutron { $controller_management_address = $::openstack::config::controller_address_management $data_network = $::openstack::config::network_data $data_address = ip_for_network($data_network) # neutron auth depends upon a keystone configuration include ::openstack::common::keystone ! class { '::neutron': rabbit_host => $controller_management_address, core_plugin => 'neutron.plugins.ml2.plugin.Ml2Plugin', allow_overlapping_ips => true, rabbit_user => $::openstack::config::rabbitmq_user, rabbit_password => $::openstack::config::rabbitmq_password, debug => $::openstack::config::debug, verbose => $::openstack::config::verbose, service_plugins => ['neutron.services.l3_router.l3_router_plugin.L3RouterPlugin', 'neutron.services.loadbalancer.plugin.LoadBalancerPlugin', 'neutron.services.vpn.plugin.VPNDriverPlugin', 'neutron.services.firewall.fwaas_plugin.FirewallPlugin', 'neutron.services.metering.metering_plugin.MeteringPlugin'], } ! class { '::neutron::keystone::auth': password => $::openstack::config::neutron_password, public_address => $::openstack::config::controller_address_api, admin_address => $::openstack::config::controller_address_management, internal_address => $::openstack::config::controller_address_management, region => $::openstack::config::region, } ! class { '::neutron::server': auth_host => $::openstack::config::controller_address_management, auth_password => $::openstack::config::neutron_password, database_connection => $::openstack::resources::connectors::neutron, enabled => $::openstack::profile::base::is_controller, sync_db => $::openstack::profile::base::is_controller, mysql_module => '2.2', } ! class { '::neutron::server::notifications': nova_url => "http://${controller_management_address}:8774/v2/", nova_admin_auth_url => "http://${controller_management_address}:35357/v2.0/", nova_admin_password => $::openstack::config::nova_password, nova_region_name => $::openstack::config::region, } }
  • 25. class openstack::common::ovs { $data_network = $::openstack::config::network_data $data_address = ip_for_network($data_network) $enable_tunneling = $::openstack::config::neutron_tunneling # true $tunnel_types = $::openstack::config::neutron_tunnel_types #['gre'] $tenant_network_type = $::openstack::config::neutron_tenant_network_type # ['gre'] $type_drivers = $::openstack::config::neutron_type_drivers # ['gre'] $mechanism_drivers = $::openstack::config::neutron_mechanism_drivers # ['openvswitch'] $tunnel_id_ranges = $::openstack::config::neutron_tunnel_id_ranges # ['1:1000'] ! class { '::neutron::agents::ml2::ovs': enable_tunneling => $enable_tunneling, local_ip => $data_address, enabled => true, tunnel_types => $tunnel_types, } ! class { '::neutron::plugins::ml2': type_drivers => $type_drivers, tenant_network_types => $tenant_network_type, mechanism_drivers => $mechanism_drivers, tunnel_id_ranges => $tunnel_id_ranges } }
  • 26. How You Can Get Involved • Sign up to be an OpenStack Contributor! https://wiki.openstack.org/wiki/How_To_Contribute • Review the Code! https://review.openstack.org • Write the Code! https://wiki.openstack.org/wiki/Gerrit_Workflow • Hang out with the Amazing Devs! #puppet-openstack on Freenode • Share and learn! puppet-openstack mailing list on Google Groups.