OpenStack Configuration Example: Difference between revisions
Rcpavlicek (talk | contribs) |
Rcpavlicek (talk | contribs) |
||
Line 36: | Line 36: | ||
end |
end |
||
end |
end |
||
</pre> |
|||
when "xen" |
|||
%w{kernel-xen xen xen-tools openvswitch-kmp-xen}.each do |pkg| |
|||
package pkg do |
|||
action :install |
|||
end |
|||
end |
|||
service "xend" do |
|||
action :nothing |
|||
supports :status => true, :start => true, :stop => true, :restart => true |
|||
# restart xend only when xen kernel is already present |
|||
only_if { %x[uname -r].include?('xen') } |
|||
end |
|||
template "/etc/xen/xend-config.sxp" do |
|||
source "xend-config.sxp.erb" |
|||
group "root" |
|||
owner "root" |
|||
mode 0644 |
|||
variables( |
|||
:node_platform => node[:platform], |
|||
:libvirt_migration => node[:nova]["use_migration"], |
|||
:shared_instances => node[:nova]["use_shared_instance_storage"], |
|||
:libvirtd_listen_tcp => node[:nova]["use_migration"] ? 1 : 0, |
|||
:libvirtd_listen_addr => Chef::Recipe::Barclamp::Inventory.get_network_by_type(node, "admin").address |
|||
) |
|||
notifies :restart, "service[xend]", :delayed |
|||
end |
|||
set_boot_kernel_and_trigger_reboot('xen') |
|||
<pre> |
|||
</pre> |
</pre> |
Revision as of 09:22, 22 November 2014
The SUSE Cloud project contains a fully operational OpenStack implementation for Xen Project. It is an example of how to successfully employ Xen Project in OpenStack. This page attempts to document the Xen Project-specific configuration elements as an example of what a functional implementation might look like. As such, this page is less a "How To" and more a "What Is".
Where to Find the Configuration Files
The bulk of the Xen Project-specific entries will be in the Barclamp section of the Nova project within OpenStack. Most of these files can be found in the following trees:
- https://github.com/crowbar/barclamp-nova/blob/master/chef/cookbooks/nova/recipes/
- https://github.com/crowbar/barclamp-nova/blob/master/chef/cookbooks/nova/templates/default/
Recipes files
The following are the Xen Project-specific segments from compute.rb configuration file:
def set_boot_kernel_and_trigger_reboot(flavor='default') # only default and xen flavor is supported by this helper right now default_boot = 0 current_default = nil # parse menu.lst, to find boot index for selected flavor File.open('/boot/grub/menu.lst') do |f| f.lines.each do |line| current_default = line.scan(/\d/).first.to_i if line.start_with?('default') if line.start_with?('title') if flavor.eql?('xen') # found boot index break if line.include?('Xen') else # take first non-xen kernel as default break unless line.include?('Xen') end default_boot += 1 end end end
when "xen" %w{kernel-xen xen xen-tools openvswitch-kmp-xen}.each do |pkg| package pkg do action :install end end
service "xend" do action :nothing supports :status => true, :start => true, :stop => true, :restart => true # restart xend only when xen kernel is already present only_if { %x[uname -r].include?('xen') } end
template "/etc/xen/xend-config.sxp" do source "xend-config.sxp.erb" group "root" owner "root" mode 0644 variables( :node_platform => node[:platform], :libvirt_migration => node[:nova]["use_migration"], :shared_instances => node[:nova]["use_shared_instance_storage"], :libvirtd_listen_tcp => node[:nova]["use_migration"] ? 1 : 0, :libvirtd_listen_addr => Chef::Recipe::Barclamp::Inventory.get_network_by_type(node, "admin").address ) notifies :restart, "service[xend]", :delayed end
set_boot_kernel_and_trigger_reboot('xen')