[IBP] move udev rules manipulating out of cloud-init
We need to create udev rules prior the first boot. It's significally easier to inject files and less magic required. Change-Id: Iaa4dddad0efe5ac41f6b1284a8c4aa85066e39a9 Closes-Bug: #1420885
This commit is contained in:
parent
1c012b4dc7
commit
05f9614d16
@ -33,15 +33,6 @@ fi
|
||||
|
||||
cloud-init-per instance set_gateway /bin/sh -c 'echo GATEWAY="{{ common.master_ip }}" | tee -a /etc/sysconfig/network'
|
||||
|
||||
#Add static udev rules
|
||||
cloud-init-per instance udev_persistent_net_disable_generator /bin/sh -c 'echo | tee /etc/udev/rules.d/75-persistent-net-generator.rules'
|
||||
cloud-init-per instance udev_persistent_net2 /bin/sh -c 'echo {{ common.udevrules }} | tr " " "\n" | tr "[:upper:]" "[:lower:]" | sed -e "s/udevrules=//g" -e "s/,/\n/g" | sed -e "s/^/SUBSYSTEM==\"net\",\ ACTION==\"add\",\ DRIVERS==\"?*\",\ ATTR{address}==\"/g" -e "s/_/\",\ ATTR{type}==\"1\",\ KERNEL==\"eth*\",\ NAME=\"/g" -e "s/$/\"/g" | tee /etc/udev/rules.d/70-persistent-net.rules'
|
||||
|
||||
cloud-init-per instance udev_persistent_net3 udevadm control --reload-rules
|
||||
#NOTE(agordeev): udevadm trigger will rename NIC only if network service is stopped.
|
||||
cloud-init-per instance udev_persistent_net4 udevadm trigger --attr-match=subsystem=net
|
||||
#NOTE(agordeev): udev is so asynchronous. Always use settle.
|
||||
cloud-init-per instance udev_persistent_net_settle udevadm settle --quiet
|
||||
cloud-init-per instance udev_persistent_net5 service network start
|
||||
|
||||
# end of udev
|
||||
|
@ -29,15 +29,7 @@ fi
|
||||
if [ ! -e "/etc/network/interfaces.d/ifcfg-$ADMIN_IF" ]; then
|
||||
echo -e "auto $ADMIN_IF\niface $ADMIN_IF inet static\n\taddress {{ common.admin_ip }}\n\tnetmask {{ common.admin_mask }}" > /etc/network/interfaces.d/ifcfg-"$ADMIN_IF"
|
||||
fi
|
||||
#Add static udev rules
|
||||
cloud-init-per instance udev_persistent_net_disable_generator /bin/sh -c 'echo | tee /etc/udev/rules.d/75-persistent-net-generator.rules'
|
||||
cloud-init-per instance udev_persistent_net2 /bin/sh -c 'echo {{ common.udevrules }} | tr " " "\n" | tr "[:upper:]" "[:lower:]" | sed -e "s/udevrules=//g" -e "s/,/\n/g" | sed -e "s/^/SUBSYSTEM==\"net\",\ ACTION==\"add\",\ DRIVERS==\"?*\",\ ATTR{address}==\"/g" -e "s/_/\",\ ATTR{type}==\"1\",\ KERNEL==\"eth*\",\ NAME=\"/g" -e "s/$/\"/g" | tee /etc/udev/rules.d/70-persistent-net.rules'
|
||||
|
||||
cloud-init-per instance udev_persistent_net3 udevadm control --reload-rules
|
||||
#NOTE(agordeev): udevadm trigger will rename NIC only if network service is stopped.
|
||||
cloud-init-per instance udev_persistent_net4 udevadm trigger --attr-match=subsystem=net
|
||||
#NOTE(agordeev): udev is so asynchronous. Always use settle.
|
||||
cloud-init-per instance udev_persistent_net_settle udevadm settle --quiet
|
||||
cloud-init-per instance udev_persistent_net5 /etc/init.d/networking start
|
||||
|
||||
# end of udev
|
||||
|
@ -342,6 +342,26 @@ class Manager(object):
|
||||
gu.grub2_cfg(kernel_params=kernel_params, chroot=chroot)
|
||||
gu.grub2_install(install_devices, chroot=chroot)
|
||||
|
||||
# FIXME(agordeev) There's no convenient way to perfrom NIC remapping in
|
||||
# Ubuntu, so injecting files prior the first boot should work
|
||||
with open(chroot + '/etc/udev/rules.d/70-persistent-net.rules',
|
||||
'w') as f:
|
||||
f.write('# Generated by fuel-agent during provisioning: BEGIN\n')
|
||||
# pattern is aa:bb:cc:dd:ee:ff_eth0,aa:bb:cc:dd:ee:ff_eth1
|
||||
for mapping in self.configdrive_scheme.common.udevrules.split(','):
|
||||
mac_addr, nic_name = mapping.split('_')
|
||||
f.write('SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", '
|
||||
'ATTR{address}=="%s", ATTR{type}=="1", KERNEL=="eth*",'
|
||||
' NAME="%s"\n' % (mac_addr, nic_name))
|
||||
f.write('# Generated by fuel-agent during provisioning: END\n')
|
||||
# FIXME(agordeev): Disable net-generator that will add new etries to
|
||||
# 70-persistent-net.rules
|
||||
with open(chroot +
|
||||
'/etc/udev/rules.d/75-persistent-net-generator.rules',
|
||||
'w') as f:
|
||||
f.write('# Generated by fuel-agent during provisioning:\n'
|
||||
'# DO NOT DELETE. It is needed to disable net-generator\n')
|
||||
|
||||
with open(chroot + '/etc/fstab', 'wb') as f:
|
||||
for fs in self.partition_scheme.fss:
|
||||
# TODO(kozhukalov): Think of improving the logic so as to
|
||||
|
Loading…
x
Reference in New Issue
Block a user