[Users] Fwd: Sample code for setting NIC - CloudInit

Juan Hernandez jhernand at redhat.com
Thu Feb 20 19:26:11 UTC 2014


On 02/20/2014 04:28 PM, Juan Hernandez wrote:
> On 02/20/2014 10:40 AM, Tejesh M wrote:
>> I wrote this code to assign IP address to VM interface eth0, but not
>> luck. Also, have attached debug log.
>>
> 
> I'm attaching a complete examaple of how to do this. However, I think
> that setting the DNS information doesn't currently work. Apparently
> cloud-init is expecting a network configuration containing the DNS
> settings inside the network interface, something like this:
> 
> iface eth0 inet static
>   dns-nameservers 1.1.2.2 1.2.3.4
>   dns-search google.com
>   address 192.168.1.102
>   netmask 255.255.0.0
>   gateway 192.168.2.1
> auto eth0
> 
> But we actually pass them outside of the network interface, like this:
> 
> dns-nameservers 1.1.2.2 1.2.3.4
> dns-search google.com
> iface eth0 inet static
>   address 192.168.1.102
>   netmask 255.255.0.0
>   gateway 192.168.2.1
> auto eth0
> 
> I need to check it.
> 

I have modified the code that generates the cloud-init files to put the
DNS configuration inside the "iface" configuration, and then it works:

http://gerrit.ovirt.org/24850

So this is probably a bug, either in our side or in cloud-init itself.
Greg, Shahar, you know cloud-init better, what do you think?

>> _*Java Code:*_
>>           org.ovirt.engine.sdk.entities.User userData = new User();
>>           userData.setUserName("root");
>>           userData.setPassword(password);
>>           Users usersData = new Users();
>>           usersData.getUsers().add(userData);
>>           CloudInit cloudData = new CloudInit();
>>          
>>          
>>           cloudData.setUsers(usersData);
>>           Host hostData = new Host();
>>           hostData.setAddress(vmName);
>>           cloudData.setHost(hostData);
>>
>>           org.ovirt.engine.sdk.entities.CloudInit.Network
>> networkConfiguration=new org.ovirt.engine.sdk.entities.CloudInit.Network();
>>    
>>           DNS dns = new DNS();
>>           dns.setServers(createServersList("1.1.2.2", "1.2.3.4"));
>>           dns.setSearchDomains(createServersList("google.com
>> <http://google.com>"));
>>           networkConfiguration.setDns(dns);
>>           networkConfiguration.setNics(new Nics());
>>          
>>           Nics nics = networkConfiguration.getNics();
>>           nics.getNics().add(createNic("eth0", "STATIC",
>> createNetwork("192.168.1.102", "255.255.0.0", "192.168.2.1"), true));
>>                    
>>           networkConfiguration.setNics(nics);
>>          
>>           cloudData.setNetwork(networkConfiguration);
>>          
>>           Initialization initData = new Initialization();
>>          
>>           initData.setCloudInit(cloudData);
>>          
>>           VM vmDataForStart = new VM();
>>           vmDataForStart.setInitialization(initData);
>>           Action actionData = new Action();
>>           actionData.setVm(vmDataForStart);
>>
>>           // Send the request to start the VM to the server:
>>           api.getVMs().get(vmName).start(actionData);
>>
>>
>>
>>
>>
>>
>> On Thu, Feb 20, 2014 at 1:39 PM, Moti Asayag <masayag at redhat.com
>> <mailto:masayag at redhat.com>> wrote:
>>
>>
>>
>>     ----- Original Message -----
>>     > From: "Tejesh M" <tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>>
>>     > To: "Moti Asayag" <masayag at redhat.com <mailto:masayag at redhat.com>>
>>     > Cc: "users at oVirt.org" <users at ovirt.org <mailto:users at ovirt.org>>
>>     > Sent: Thursday, February 20, 2014 8:52:52 AM
>>     > Subject: Re: [Users] Fwd: Sample code for setting NIC - CloudInit
>>     >
>>     > I'm not getting below class:
>>     >
>>     > import org.ovirt.engine.sdk.entities.*NetworkConfiguration*;
>>
>>     Which version of ovirt-engine-sdk-java are you using ?
>>
>>     I used ovirt-engine-sdk-java-3.4.0.1-1, added to my project's pom.xml:
>>
>>             <dependency>
>>                     <groupId>org.ovirt.engine.sdk</groupId>
>>                     <artifactId>ovirt-engine-sdk-java</artifactId>
>>                     <version>3.4.0.1-1</version>
>>                     <type>jar</type>
>>                     <scope>compile</scope>
>>             </dependency>
>>
>>     >
>>     >
>>     > On Thu, Feb 20, 2014 at 4:11 AM, Moti Asayag <masayag at redhat.com
>>     <mailto:masayag at redhat.com>> wrote:
>>     >
>>     > >
>>     > >
>>     > > ----- Original Message -----
>>     > > > From: "Tejesh M" <tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>>
>>     > > > To: "users at oVirt.org" <users at ovirt.org <mailto:users at ovirt.org>>
>>     > > > Sent: Wednesday, February 19, 2014 3:24:40 PM
>>     > > > Subject: [Users] Fwd: Sample code for setting NIC - CloudInit
>>     > > >
>>     > > > Hi,
>>     > > >
>>     > > > Can someone share me sample java code for assigning IP address
>>     for VM on
>>     > > eth0
>>     > > > through Java SDK via CloudInit ?
>>     > > >
>>     > >
>>     > > Hi Tejesh,
>>     > >
>>     > > I've attached a sample code that sends the required request (as
>>     the output
>>     > > is demonstrated in debug mode).
>>     > > Note that the code is jdk-7 compliant.
>>     > > I haven't configured cloud-init and haven't tested it end-to-end.
>>     > > Please try to test it on your environment and provide a feedback
>>     for it.
>>     > >
>>     > > Thanks,
>>     > > Moti
>>     > >
>>     > > > Something Like this but in Java:
>>     > > > <network_configuration>
>>     > > >          <nics>
>>     > > >            <nic>
>>     > > >              <name>eth0</name>
>>     > > >              <boot_protocol>STATIC</boot_protocol>
>>     > > >              <network>
>>     > > >                <ip address="192.168.2.11" netmask="255.255.0.0"
>>     > > >                gateway="192.168.2.1" />
>>     > > >              </network>
>>     > > >              <on_boot>true</on_boot>
>>     > > >            </nic>
>>     > > >            <nic>
>>     > > >              <name>eth1</name>
>>     > > >              <boot_protocol>DHCP</boot_protocol>
>>     > > >            </nic>
>>     > > >            <nic>
>>     > > >              <name>eth2</name>
>>     > > >              <boot_protocol>NONE</boot_protocol>
>>     > > >              <on_boot>true</on_boot>
>>     > > >            </nic>
>>     > > >          </nics>
>>     > > >          <dns>
>>     > > >            <servers>
>>     > > >              <host>
>>     > > >                <address>1.1.2.2</address>
>>     > > >              </host>
>>     > > >              <host>
>>     > > >                <address>1.2.3.4</address>
>>     > > >              </host>
>>     > > >            </servers>
>>     > > >            <search_domains>
>>     > > >              <host>
>>     > > >                <address>qa.lab</address>
>>     > > >              </host>
>>     > > >              <host>
>>     > > >                <address> google.com <http://google.com> </address>
>>     > > >              </host>
>>     > > >            </search_domains>
>>     > > >          </dns>
>>     > > >        </network_configuration>
> 


-- 
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.



More information about the Users mailing list