path: root/pxeboot.write
Commit message (Collapse)AuthorAgeFilesLines
* pxeboot: add support for PXEBOOT_TARGET_INTERFACEbaserock/pedroalvarez/pxeboot-fixesPedro Alvarez2015-04-281-8/+21
| | | | | | | | | | This is to set the name of the interface of the target to pxeboot from. Some targets with more than one interface try to get the rootfs from a different interface than the interface from where the pxeboot server is reachable. Using this variable, the kernel arguments will be filled to include the device. Change-Id: I022bf6b17a66d63f7f9b8830e72ca4020158a80a
* pxeboot: Add symlink to pxeboot config file also for local deploymentsPedro Alvarez2015-04-281-0/+8
| | | | | | | | | This functionality was added for remote deployments in a6d7d3a8. Some bootloaders look for a pxelinux configuration file on the TFTP server whose name is the normalized MAC address of the NIC prefixed with '01-' Change-Id: I6a5dc0cd71f72bf6cea6bbed05ebbeda765af805
* pxeboot: improve naming of remote rootfs directoriesTiago Gomes2015-02-271-1/+2
| | | | | Construct its name based on the MAC address of the NIC, as it is already being done for the kernel and device tree blob.
* pxeboot: add support for a PXE_INSTALLER optionTiago Gomes2015-02-271-6/+14
| | | | | | If PXE_INSTALLER is set to `no` or `False`, the remotely installed rootfs, Kernel, bootloader config file and device tree blob if specified, will not be removed after the deployment finishes.
* pxeboot: add support for specifying a device treeTiago Gomes2015-02-271-2/+25
| | | | The support is only being added to remote deployments for now.
* pxeboot: improve compatibility with u-boot pxeTiago Gomes2015-02-271-1/+2
| | | | | | | u-boot pxe doesn't understand the tftp:// URIs. Workaround by making the kernel download URL in the pxelinux.cfg file to be of the following form: <HOST>:<KERNEL_RELATIVE_PATH>
* pxeboot: support u-boot pxe configuration file lookupTiago Gomes2015-02-271-7/+24
| | | | | | | | u-boot will look for a pxelinux configuration file on the TFTP server whose name corresponds to the normalized MAC address of the NIC prefixed with '01-' (Leading 01 means Ethernet). This support is only being added to remote deployments for now.
* pxeboot: disable preserving extended attributesTiago Gomes2015-02-271-1/+1
| | | | | | | | | | | | | Running rsync with the '-X' option causes the following error to occur: ERROR: pxeboot.write failed with code 1: rsync: get_xattr_names: llistxattr(""/src/tmp/deployments/tmpcMabnt/tmp0jCu5s"",1024) failed: Function not implemented (38) This requires more investigation to understand why it is failing (the attr devel libraries were installed). AFAIK we are not using extended attributes in the rootfs that we create, so disable this option for the time being.
* pxeboot: avoid setting stdout=None when running rsyncTiago Gomes2015-02-271-1/+2
| | | | | | | | | | | | | | If stdout=None, rsync hangs and the following error occurs error: uncaptured python exception, closing channel <morphlib.extensions._OutputDispatcher connected at 0x7f9bd5acf8> (<type 'exceptions.ValueError'>:unsupported format character 'k' (0x6b) at index 29 [/usr/lib/python2.7/|readwrite|108] [/usr/lib/python2.7/|handle_read_event|449] [/usr/lib/python2.7/|handle_read|165] [/usr/lib/python2.7/site-packages/morphlib/|found_terminator|196] [/usr/lib/python2.7/site-packages/morphlib/plugins/|_report_extension_stdout|615] [/usr/lib/python2.7/site-packages/morphlib/|status|345])
* pxeboot: fix usage of undefined variableTiago Gomes2015-02-271-1/+1
* pxeboot: yield the correct value in remote_nfsroot()Tiago Gomes2015-02-271-1/+2
* pxeboot: add missing macaddr argumentTiago Gomes2015-02-271-2/+2
* pxeboot: fix input argument to urlunsplit()Edward Cragg2015-02-271-2/+2
* pxeboot: fix keyword argument name passed to remote_kernel()Tiago Gomes2015-02-271-1/+1
* Add pxeboot write extension.Richard Maw2014-11-141-0/+679
It has 4 modes. 1. Specify PXEBOOT_DEPLOYER_INTERFACE and PXEBOOT_VLAN to configure the target to pxeboot on a vlan and spawn a dhcp, nfs and tftp server. This is potentially the fastest, since it doesn't need to copy data to other servers. 2. Specify PXEBOOT_DEPLOYER_INTERFACE without PXEBOOT_VLAN to configure do 1, but without creating the vlan interface. This assumes that you have exclusive access to the interface, such as if you're plugged in to the device directly, or your interface is vlanned by your infrastructure team. This is required if you are serving from a VM and bridging it to the correct network via macvtap. For this to work, you need to macvtap bridge to a pre-vlanned interface on your host machine. 3. Specify PXEBOOT_DEPLOYER_INTERFACE and PXEBOOT_CONFIG_TFTP_ADDRESS to put config on an existing tftp server, already configured by the dhcp server. This spawns a tftp server and configures the local nfs server, but doesn't do a dhcp server. This is useful if you have already got a dhcp server that serves PXE images. 4. Specify at least PXEBOOT_CONFIG_TFTP_ADDRESS and PXEBOOT_ROOTFS_RSYNC_ADDRESS to specify existing servers to copy config, kernels and the rootfs to. The mode detection can be overridden by specifying PXEBOOT_MODE. Mode 1 is `spawn-vlan`. Mode 2 is `spawn-novlan`, Mode 3 is `existing-dhcp` and Mode 4 is `existing-server`.