OpenStack Configuration Example: Difference between revisions
Rcpavlicek (talk | contribs) |
Rcpavlicek (talk | contribs) |
||
Line 14: | Line 14: | ||
def set_boot_kernel_and_trigger_reboot(flavor='default') |
def set_boot_kernel_and_trigger_reboot(flavor='default') |
||
# only default and xen flavor is supported by this helper right now |
# only default and xen flavor is supported by this helper right now |
||
default_boot = 0 |
default_boot = 0 |
||
current_default = nil |
current_default = nil |
||
# parse menu.lst, to find boot index for selected flavor |
# parse menu.lst, to find boot index for selected flavor |
||
File.open('/boot/grub/menu.lst') do |f| |
File.open('/boot/grub/menu.lst') do |f| |
||
f.lines.each do |line| |
f.lines.each do |line| |
||
current_default = line.scan(/\d/).first.to_i if line.start_with?('default') |
current_default = line.scan(/\d/).first.to_i if line.start_with?('default') |
||
if line.start_with?('title') |
if line.start_with?('title') |
||
if flavor.eql?('xen') |
if flavor.eql?('xen') |
||
# found boot index |
# found boot index |
||
break if line.include?('Xen') |
break if line.include?('Xen') |
||
else |
else |
||
# take first non-xen kernel as default |
# take first non-xen kernel as default |
||
break unless line.include?('Xen') |
break unless line.include?('Xen') |
||
end |
end |
||
default_boot += 1 |
default_boot += 1 |
||
end |
end |
||
end |
end |
||
end |
end |
||
</pre> |
</pre> |
Revision as of 09:17, 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