北极星光 发表于 2018-8-2 12:48:27

puppet部署openstack(controller)

#  
# This document serves as an example of how to deploy
  
# basic single and multi-node openstack environments.
  
#
  
# deploy a script that can be used to test nova
  
class { 'openstack::test_file': }
  
####### shared variables ##################
  
# this section is used to specify global variables thatwill
  
# be used in the deployment of multi and single nodeopenstack
  
# environments
  
# assumes that eth0 is the public interface
  
$public_interface       = 'eth0'
  
# assumes that eth1 is the interface that will be usedfor the vm network
  
# this configuration assumes this interface is active butdoes not have an
  
# ip address allocated to it.
  
$private_interface      = 'eth1'
  
# credentials
  
$admin_email            = 'root@localhost'
  
$admin_password         = 'keystone_admin'
  
$cinder_user_password   = 'cinder_pass'
  
$cinder_db_password   = 'cinder_pass'
  
$keystone_db_password   = 'keystone_db_pass'
  
$keystone_admin_token   = 'keystone_admin_token'
  
$nova_db_password       = 'nova_pass'
  
$nova_user_password   = 'nova_pass'
  
$glance_db_password   = 'glance_pass'
  
$glance_user_password   = 'glance_pass'
  
$rabbit_password      = 'openstack_rabbit_password'
  
$rabbit_user            = 'openstack_rabbit_user'
  
$fixed_network_range    = '10.0.0.0/24'
  
$floating_network_range = '192.168.101.64/28'
  
$secret_key             = 'secret_key'
  
$mysql_root_password    = 'secret'
  
# switch this to true to have all service log at verbose
  
$verbose                = false
  
# by default it does not enable atomatically addingfloating IPs
  
$auto_assign_floating_ip = false
  
#### end shared variables #################
  
# all nodes whose certname matches openstack_all shouldbe
  
# deployed as all-in-one openstack installations.
  
node /openstack_all/ {
  include 'apache'
  class {'openstack::all':
  public_address          =>$ipaddress_eth0,
  public_interface      =>$public_interface,
  private_interface       =>$private_interface,
  admin_email             =>$admin_email,
  admin_password          =>$admin_password,
  cinder_db_password      =>$cinder_db_password,
  cinder_user_password    =>$cinder_user_password,
  keystone_db_password    =>$keystone_db_password,
  keystone_admin_token    =>$keystone_admin_token,
  nova_db_password      =>$nova_db_password,
  nova_user_password      =>$nova_user_password,
  glance_db_password      =>$glance_db_password,
  glance_user_password    =>$glance_user_password,
  rabbit_password         =>$rabbit_password,
  rabbit_user             =>$rabbit_user,
  libvirt_type            =>'kvm',
  floating_range          => $floating_network_range,
  fixed_range             =>$fixed_network_range,
  verbose               => $verbose,
  auto_assign_floating_ip => $auto_assign_floating_ip,
  secret_key            => $secret_key,
  neutron               => false,
  mysql_root_password   =>$mysql_root_password,
  }
  class {'openstack::auth_file':
  admin_password       =>$admin_password,
  keystone_admin_token => $keystone_admin_token,
  controller_node      =>'127.0.0.1',
  }
  
}
  
# multi-node specific parameters
  
$controller_node_address = '192.168.1.80'
  
$controller_node_public= $controller_node_address
  
$controller_node_internal = $controller_node_address
  
node /openstack_controller/ {

  
# >
  
# >  class {'openstack::controller':
  public_address          =>$controller_node_public,
  public_interface      =>$public_interface,
  private_interface       =>$private_interface,
  internal_address      => $controller_node_internal,
  floating_range          =>$floating_network_range,
  fixed_range             =>$fixed_network_range,
  # by default itdoes not enable multi-host mode
  multi_host            => true,
  # by default isassumes flat dhcp networking mode
  network_manager         =>'nova.network.manager.FlatDHCPManager',
  verbose               => $verbose,
  auto_assign_floating_ip => $auto_assign_floating_ip,
  mysql_root_password   =>$mysql_root_password,
  admin_email             =>$admin_email,
  admin_password          =>$admin_password,
  keystone_db_password    =>$keystone_db_password,
  keystone_admin_token    =>$keystone_admin_token,
  cinder_db_password      => $cinder_db_password,
  cinder_user_password    =>$cinder_user_password,
  glance_db_password      =>$glance_db_password,
  glance_user_password    =>$glance_user_password,
  neutron               => false,
  nova_db_password      => $nova_db_password,
  nova_user_password      =>$nova_user_password,
  rabbit_password         =>$rabbit_password,
  rabbit_user             =>$rabbit_user,
  secret_key            => $secret_key,
  }
  class { 'openstack::auth_file':
  admin_password       =>$admin_password,
  keystone_admin_token => $keystone_admin_token,
  controller_node      =>$controller_node_internal,
  }
  
}
  
node /openstack_compute/ {
  class {'openstack::compute':
  public_interface   =>$public_interface,
  private_interface=>$private_interface,
  internal_address   =>$ipaddress_eth0,
  libvirt_type       => 'kvm',
  fixed_range      =>$fixed_network_range,
  network_manager    =>'nova.network.manager.FlatDHCPManager',
  multi_host         => true,
  cinder_db_password => $cinder_db_password,
  nova_db_password   =>$nova_db_password,
  nova_user_password => $nova_user_password,
  neutron            => false,
  rabbit_host      => $controller_node_internal,
  rabbit_password    =>$rabbit_password,
  rabbit_user      =>$rabbit_user,
  glance_api_servers => "${controller_node_internal}:9292",
  vncproxy_host      =>$controller_node_public,
  vnc_enabled      => true,
  verbose            => $verbose,
  manage_volumes   => true,
  volume_group       =>'cinder-volumes'
  }
  
}
页: [1]
查看完整版本: puppet部署openstack(controller)