Contextualization of Linux VMs
Jump to navigation
Jump to search
OpenNebula uses a method called contextualization to send information to the VM at boot time. Information is collected in the Template and is essential to configure the VM.
The VM template has a section called context where you can automate different configuration aspects.
Context section has 3 parts:
Configuration
This is the most basic context configuration, provided by OpenNebula, where you can:
- Enable SSH and Network contextualization
- Add SSH public keys to USERNAME authorized_keys file
- START_SCRIPT - Text of the script executed when the machine starts up. It can contain shebang in case it is not shell script. For example START_SCRIPT="yum upgrade".
Files
You can select files you want to include from the list and they will be automatically added in FILES_DS attribute. Also you can define a space-separated list of scripts that will run at boot, using INIT_SCRIPTS attribute.
Custom Vars
In this section you can setup a more advanced contextualization, the attributes available are:
- VARIABLE - Variables that store values related to this virtual machine or others . The name of the variable is arbitrary (in the example, we use hostname).
- SET_HOSTNAME - This parameter value will be the hostname of the VM.
- DNS_HOSTNAME - YES to set the VM hostname to the reverse dns name (from the first IP)
- GATEWAY_IFACE - This variable can be set to the interface number you want to configure the gateway. It is useful when several networks have GATEWAY parameter and you want yo choose the one that configures it. For example to set the first interface to configure the gateway you use GATEWAY_IFACE=0
- DNS - Specific DNS server for the Virtual Machine
- ETHx_MAC - Used to find the correct interface
- ETHx_IP - IPv4 address for the interface
- ETHx_IPV6 - IPv6 address for the interface
- ETHx_NETWORK - Network address of the interface
- ETHx_MASK - Network mask
- ETHx_GATEWAY - Default IPv4 gateway for the interface
- ETHx_GATEWAY6 - Default IPv6 gateway for the interface
- ETHx_MTU - MTU value for the interface
- ETHx_DNS - DNS for the network
- USERNAME - User to be created in the guest OS. If any password attribute is defined (see below) it will change this user (defaults to root).
- CRYPTED_PASSWORD_BASE64 - Crypted password encoded in base64. To be set for the user USERNAME. If not defined it will change root user.
- PASSWORD_BASE64 - Password encoded in base64. To be set for the user USERNAME.
- CRYPTED_PASSWORD - Crypted password. To be set for the user USERNAME. This parameter is not recommended, use CRYPTED_PASSWORD_BASE64 instead.
- PASSWORD - Password to be set for the user USERNAME. This parameter is not recommended, use PASSWORD_BASE64 instead.
- SSH_PUBLIC_KEY - Key to be added to USERNAME authorized_keys file or root in case USERNAME is not set.
- EC2_PUBLIC_KEY - Same as SSH_PUBLIC_KEY