Jump to: navigation, search

Ironic-local-boot-kernel-parameters-script

Revision as of 06:12, 26 May 2016 by Tan Lin (talk | contribs) (Created page with "This is an reference script to pass kernel parameters to ironic local boot instances by using configdrive. This only works with Ubuntu image and users should modify this scrip...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is an reference script to pass kernel parameters to ironic local boot instances by using configdrive. This only works with Ubuntu image and users should modify this script to fit their use case:

 #!/usr/bin/env python
 import os

 # Default grub2 config file in Ubuntu
 grub_file = '/etc/default/grub'
 # Add parameters here to pass to instance.
 kernel_parameters = ['quiet', 'splash']
 grub_cmd = 'GRUB_CMDLINE_LINUX'
 old_grub_file = grub_file+'~'
 os.rename(grub_file, old_grub_file)
 cmdline_existed = False
 with open(grub_file, 'w') as writer, \
         open(old_grub_file, 'r') as reader:
         for line in reader:
             key = line.split('=')[0]
             if key == grub_cmd:
                 #If there is already some value:
                 if line.strip()[-1] == '"':
                     line = line.strip()[:-1] + ' ' + ' '.join(kernel_parameters) + '"'
                 cmdline_existed = True
             writer.write(line)
         if not cmdline_existed:
             line = grub_cmd + '=' + '"' + ' '.join(kernel_parameters) + '"'
             writer.write(line)

 os.remove(old_grub_file)
 os.system('update-grub')
 os.system('reboot')