Version 4 (modified by ibaldin, 9 years ago)




NEuca (pronounced "nuke'ah") is a set of patches for Eucalyptus and guest configuration scripts that enhance the functionality of a private Eucalyptus cloud without interfering with its traditional operations. NEuca allows VMs instantiated via Eucalyptus to

  • Have additional network interfaces, not controlled by Eucalyptus. These interfaces can be connected on the host node to VLANs or physical interfaces. Eucalyptus continues to control and assign the address of eth0 of the VM.
  • Perform arbitrary post-boot actions using shell scripts

The changes to Eucalyptus code base are limited to its Node Controller and do not impact on the other components or the user tools. The installation (described in a separate document) follows the traditional steps for installing Eucalyptus on a cluster with minor modifications for applying the NEuca patches. User tools can be installed on existing Eucalyptus-friendly images.


NEuca patches to Eucalyptus are released under GPLv3 consistent with the Eucalyptus license. NEuca guest configuration scripts are released under the MIT/GENI Public License. Updated version of the iniparser library is released under the MIT license.

The details

NEuca functionality leverages the --user-data{-file} option of the euca-run-instances command. The user can pass a .ini-formatted configuration file that describes the desired interface configuration of the VM and includes the optional script to be executed by the VM at boot time. Here is an example of the configuration file:


slice_id=6D3DE7CC-7188-49B2-AF48-F21497450D84 ; slice identifier


; Interface specification has the form of either
; eth1=vlan:[host ethX]:[vlan tag on ethX]{:guest ip address} or
; eth1=phys:[host ethX]{:guest ip address}
; interfaces must start at eth1 and can be named in any order, however numbering gaps are not allowed
; e.g. if configuration file specified eth1, eth2 and eth4 only eth1 and eth2 will be processed

eth1=vlan:eth0:20: ; eth1 attaches to eth0.20 on host and has IP
eth2=vlan:eth0:19: ; eth2 attaches to eth0.19 on host and has IP

; The script must not have any blank lines
; use tab or spaces in the beginning of the line to indicate the continuation
; of the script

    # Test script 
    yum install make

To use this file it can be passed on to the standard euca-run-instances command as follows:

$ euca-run-instances  -n 1 -k <key> --user-data-file <above configuration file> <ID of EMI with NEuca guest tools installed>

The format of the file mostly conforms to the Windows .ini format with the following exceptions:

  • Comments starting with '#' are not allowed, as this interferes with shell comments in the post-boot script
  • When specifying post-boot scripts, line continuation is indicated by the whitespace in the beginning of the line. Blank lines in post-boot scripts are not allowed.