SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
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?

Contenu connexe

Tendances

Deploying OpenStack with Chef
Deploying OpenStack with ChefDeploying OpenStack with Chef
Deploying OpenStack with ChefMatt 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 2013Matt Ray
 
Extending TripleO for OpenStack Management
Extending TripleO for OpenStack ManagementExtending TripleO for OpenStack Management
Extending TripleO for OpenStack ManagementKeith Basil
 
TripleO Lightning Talk
TripleO Lightning TalkTripleO Lightning Talk
TripleO Lightning Talkcmsj1
 
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 DeploymentSiheon 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 projectGonéri Le Bouder
 
OpenStack API's and WSGI
OpenStack API's and WSGIOpenStack API's and WSGI
OpenStack API's and WSGIMike Pittaro
 
distributed tracing in 5 minutes
distributed tracing in 5 minutesdistributed tracing in 5 minutes
distributed tracing in 5 minutesDan Kuebrich
 
Python WSGI introduction
Python WSGI introductionPython WSGI introduction
Python WSGI introductionAgeeleshwar 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 KollaVikram G Hosakote
 
Openstack grizzley puppet_talk
Openstack grizzley puppet_talkOpenstack grizzley puppet_talk
Openstack grizzley puppet_talkbodepd
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpStacy Véronneau
 
NYC Cassandra Day - Java Intro
NYC Cassandra Day - Java IntroNYC Cassandra Day - Java Intro
NYC Cassandra Day - Java IntroChristopher 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 DockerSematext 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, 2015Tesora
 
Heat - keep the clouds up
Heat - keep the clouds upHeat - keep the clouds up
Heat - keep the clouds upKiran Murari
 

Tendances (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
 

En vedette

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 PuppetMark Voelker
 
Tebmàtica número 14
Tebmàtica número 14Tebmàtica número 14
Tebmàtica número 14Pepa Muñoz
 
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 introductionVictor Zhang
 
OpenStack Automation Overview
OpenStack Automation OverviewOpenStack Automation Overview
OpenStack Automation OverviewDmitri 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 OpenStackaedocw
 
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-meetupKrishna-Kumar
 
Automating OpenStack Deployment with Fuel
Automating OpenStack Deployment with FuelAutomating OpenStack Deployment with Fuel
Automating OpenStack Deployment with FuelTomasz Zen Napierala
 
State of Containers in OpenStack
State of Containers in OpenStackState of Containers in OpenStack
State of Containers in OpenStackopenstackindia
 
An Introduction to OpenStack Heat
An Introduction to OpenStack HeatAn Introduction to OpenStack Heat
An Introduction to OpenStack HeatMirantis
 
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.0Prasad 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 ServiceTesora
 
A Deep Dive Into Trove
A Deep Dive Into TroveA Deep Dive Into Trove
A Deep Dive Into TroveTesora
 
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'
 

En vedette (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...
 

Similaire à Understanding OpenStack Deployments

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 websitesLindsay Holmwood
 
The Zen of Lithium
The Zen of LithiumThe Zen of Lithium
The Zen of LithiumNate 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 MesosJoe 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 YardSV 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 2012Carlos 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 CloudWesley Beary
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloudKyle 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 AmbariAlejandro 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 AppSmartLogic
 
Intro to fog and openstack jp
Intro to fog and openstack jpIntro to fog and openstack jp
Intro to fog and openstack jpSatoshi 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 MesosJoe Stein
 
Service discovery and configuration provisioning
Service discovery and configuration provisioningService discovery and configuration provisioning
Service discovery and configuration provisioningSource 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 2013Carlos Sanchez
 
Integrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteIntegrating icinga2 and the HashiCorp suite
Integrating icinga2 and the HashiCorp suiteBram Vogelaar
 

Similaire à Understanding OpenStack Deployments (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
 

Plus de Puppet

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyamlPuppet
 
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 vscodePuppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twentiesPuppet
 
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 codePuppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approachPuppet
 
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 automationPuppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliancePuppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowPuppet
 
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 WindowsPuppet
 
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. 2020Puppet
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppetPuppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet
 
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 ReeuwijkPuppet
 
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 groundPuppet
 
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 SoftwarePuppet
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User GroupPuppet
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsPuppet
 
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 MaludyPuppet
 

Plus de 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
 

Dernier

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Dernier (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Understanding OpenStack Deployments

  • 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.