爱死你了 发表于 2015-11-26 14:01:16

使用puppet自动安装openstack

  1.安装puppet
  $ sudo apt-get install puppet-common
  
  2. 更新puppet apt repository
  $ wgethttp://apt.puppetlabs.com/puppetlabs-release-precise.deb
  $ sudo dpkg -i puppetlabs-release-precise.deb
  $ sudoapt-get update
  3. 安装MYSQL
  在用户根目录下创建一个新的mysql.pp文件:
  include mysql
  include mysql::server
  include mysql::config
  mysql::db { 'testdb':
   user          => 'user',
   password      => 'passw0rd',
  }
  
  使用以下命令自动安装mysql服务:
  $puppet apply mysql.pp
  
  4. 安装Keystone
  在用户根目录下创建一个新的keystone.pp文件:
  class { 'mysql::server': }
  
  class { 'keystone::db::mysql':
   user                  =>'keystone',
   password            =>'passw0rd',
   charset               =>'utf8',
   allowed_hosts         =>'localhost'
  }
  
  class { 'keystone':
   verbose               => True,
   catalog_type          => 'sql',
   admin_token         =>'c490e66cc19c1c9fc334',
   token_format          =>'UUID',
   sql_connection      =>'mysql://keystone:passw0rd@localhost/keystone'
  }
  
  keystone_tenant { 'admin':
   ensure                =>present,
   enabled               => True,
   description         =>"Tenant for the Admin",
  }
  
  keystone_tenant { 'service':
   ensure                =>present,
   enabled               => True,
   description         =>"Tenant for the OpenStack services",
  }
  
  keystone_user { 'admin':
   ensure                =>present,
   enabled               => True,
   tenant                =>"admin",
   email               =>"admin@sample.com",
   password            => "passw0rd",
  }
  
  keystone_role { ['admin', 'Member','_member_']:
   ensure                =>present,
  }
  
  keystone_user_role { 'admin@admin':
   ensure                =>present,
   roles               =>'admin',
  }
  
  class { 'keystone::endpoint':
   public_address      =>'127.0.0.1',
   admin_address         =>'127.0.0.1',
   internal_address      =>'127.0.0.1',
  }
  
  
  使用以下命令自动安装keystone服务:
  $puppet module install puppetlabs/keystone
  $puppet apply keystone.pp
  
  5. 安装Glance
  在用户根目录下创建一个新的glance.pp文件:
  class { 'mysql::server': }
  
  class { 'glance::api':
   verbose               => true,
   keystone_tenant       =>'service',
   keystone_user         =>'glance',
   keystone_password   =>'passw0rd',
   sql_connection      => 'mysql://glance:passw0rd@127.0.0.1/glance',
  }
  
  class { 'glance::registry':
   verbose               => true,
   keystone_tenant       =>'service',
   keystone_user         =>'glance',
   keystone_password   =>'passw0rd',
   sql_connection      =>'mysql://glance:passw0rd@127.0.0.1/glance',
  }
  
  class { 'glance::backend::file': }
  
  class { 'glance::db::mysql':
   password            =>'passw0rd',
   allowed_hosts         =>'localhost',
  }
  
  class { 'glance::keystone::auth':
   password            =>'passw0rd',
   email               =>'glance@example.com',
   public_address      =>'127.0.0.1',
   admin_address         =>'127.0.0.1',
   internal_address      =>'127.0.0.1',
   tenant                =>'service',
  }
  
  使用以下命令自动安装glance服务:
  $puppet module install puppetlabs/glance
  $puppet apply glance.pp
  
  6. 安装Nova
  在用户根目录下创建一个新的nova.pp文件:
  class { 'mysql::server': }
  
  class { 'nova::rabbitmq':
   userid      => 'guest',
   password      => 'guest',
   enabled       => true,
  }
  
  class { 'nova::db::mysql':
   user                  =>'nova',
   password            =>'passw0rd',
   allowed_hosts         =>'127.0.0.1',
   charset               =>'utf8',
  }
  
  class { 'nova::keystone::auth':
   password            =>'passw0rd',
   email               => 'nova@example.com',
   public_address      =>'127.0.0.1',
   admin_address         =>'127.0.0.1',
   internal_address      =>'127.0.0.1',
   tenant                =>'service',
  }
  
  class { 'nova':
   sql_connection      =>'mysql://nova:passw0rd@127.0.0.1/nova',
   rabbit_userid         =>'guest',
   rabbit_password       =>'guest',
   image_service         =>'nova.image.glance.GlanceImageService',
   glance_api_servers    =>'127.0.0.1:9292',
   verbose               => true,
   rabbit_host         =>'127.0.0.1',
  }
  
  class { 'nova::api':
   enabled               => true,
   admin_tenant_name   =>'service',
   admin_user            =>'nova',
   admin_password      =>'passw0rd'
  }
  class{ 'nova::compute':
  enabled               => true,
  vnc_enabled         => true,
  }
  
  class{ 'nova::compute::libvirt':
  libvirt_type          => 'qemu',
  migration_support   => false,
  }
  
  class{ 'nova::network':
  private_interface   => 'eth0',
  public_interface      => 'eth0',
  fixed_range         => '10.0.0.0/24',
  floating_range      => false,
  create_networks       => true,
  enabled               => true,
  install_service       => true,
  }
  
  class{ [
  'nova::scheduler',
  'nova::objectstore',
  'nova::cert',
  'nova::consoleauth',
  'nova::conductor'
  ]:
  enabled               => true,
  }
  
  class{ 'nova::client': }
  
  使用以下命令自动安装nova服务:
  $puppet module install puppetlabs/nova
  $puppet apply nova.pp
  
  7. 安装Horizon
  在用户根目录下创建一个新的horizon.pp文件:
  class { 'memcached':
   listen_ip             =>'127.0.0.1',
   tcp_port            =>'11211',
   udp_port            =>'11211',
  }
  
  class { '::horizon':
   cache_server_ip       =>'127.0.0.1',
   cache_server_port   =>'11211',
   secret_key            =>'12345',
   swift               => false,
   django_debug          =>'True',
   api_result_limit      =>'1000',
  }
  
  使用以下命令自动安装horizon服务:
  $puppet module install puppetlabs/horizon
  $puppet apply horizon.pp
  
页: [1]
查看完整版本: 使用puppet自动安装openstack