[Openstack] Guest VM IP configuration script

Eugen Block eblock at nde.ag
Thu Aug 25 12:52:16 UTC 2016


You can download the tarball for cloud-init-0.7.7 from [1] already.  
You would have to build the packages yourself, I don't know if that's  
an option for you.
Currently, we're in a review process at OBS to upgrade from 0.7.6 to  
0.7.7 based on this new tarball. In case it will be accepted you'll  
have the newest rpm in the official repositories of openSUSE incl. a  
fix for missing default gateway. Please notice that we're running  
Mitaka on openSUSE distro, not Liberty.

Regards,
Eugen

[1] https://launchpad.net/cloud-init/+download


Zitat von Andreas Scheuring <scheuran at linux.vnet.ibm.com>:

> We faced a similar issue while doing some tests in the past.
> In any case you need to use the config drive. This is the only way how
> your instance can access the IP information required.
>
>
> There seem to be 3 ways for doing the configuration
>
> #1 There is some code for cloud-init in review [1], that would do that.
> But that would need to be merged first, a new version release is
> required and your distro needs to pick that release. I'm not sure about
> the current state, but it seems to be still in review.
>
> #2 Use Glean [2] instead of cloud-init. It's an alternative to
> cloud-init. But of course your image needs to have glean installed and
> configured.
>
> #3 hack your own solution. We did that for our limited scenario. With
> nova file inject we injected a larger python script, doing all the
> configuration. We used cloud-init to execute that script (directly
> passing that script in with cloud-init was not possible, as it was too
> large - that's why this hack was required :P). I would not recommend
> going this way, cause you need to consider all the things like routes
> and so on.
>
>
> I personally think the best solution is #2 for now.
>
>
>
> [1]
> https://code.launchpad.net/~harlowja/cloud-init/cloud-init-net-sysconfig
> [2] http://docs.openstack.org/infra/glean/
>
>
>
> --
> -----
> Andreas
> IRC: andreas_s (formerly scheuran)
>
>
>
> On Do, 2016-08-25 at 08:53 +0200, Eugen Block wrote:
>> Hi,
>>
>> we've been trying to learn how to feed cloud-init with ip addresses,
>> too. If DHCP is disabled in your network, the instance won't get it's
>> eth0 configured and won't be able to query the metadata server.
>> Creating a port before attaching it to a booting instance also doesn't
>> work if no dhcp is running on that network, I just tried that to be
>> sure.
>>
>> I've tried several ways but I only found one working option. For
>> external networks (or networks without dhcp) we are using config-drive
>> now. Depending on the OpenStack version it could be possible that
>> you'll need cloud-init-0.7.7, we had to fix two issues ourselves in
>> version 0.7.6 to get it working, one of them was a missing default
>> route.
>>
>> With enabled config-drive the instance doesn't need a configured
>> interface, it's a temporarily mounted drive from where the required
>> information is read by cloud-init.
>> You can either add the option "--config-drive true" in your nova boot
>> call or check the checkbox in Horizon.
>>
>> To answer your question about ports, you can create a new port either
>> in Horizon, but there you won't be able to assign a specific ip
>> address. If you want a specific ip address you have to call neutron
>> port-create (port-name is optional):
>>
>>     neutron port-create <NETWORK-ID> --fixed-ip
>> subnet_id=<SUBNET-ID>,ip_address=<IP> --name <PORT-NAME>
>>
>> The resulting ID of that port can be used in nova boot call:
>>
>>     nova boot --flavor 2 --image <IMAGE> --nic port-id=<PORT-ID>
>> <INSTANCE-NAME>
>>
>> Another way to assign a specific ip address to a booting instance
>> without port-creation (but DHCP has to be enabled) would be:
>>
>>     nova boot --flavor 2 --image <IMAGE> --nic
>> net-id=<NET-ID>,v4-fixed-ip=<IP> <INSTANCE-NAME>
>>
>> for example:
>>     nova boot --flavor 2 --image dc05b777-3122-4021-b7eb-8d96fdab2980
>> --nic
>> net-id=4421e160-d675-49f2-8c29-9722aebf03b2,v4-fixed-ip=192.168.124.6
>> test1
>>
>> Hope this helps!
>>
>>
>> Zitat von Satish Patel <satish.txt at gmail.com>:
>>
>> > My question is how to query ports and pass info to cloud-init?  is
>> > there any document or api which i can call using script and setup
>> > network ifcfg-eth0 file
>> >
>> > On Wed, Aug 24, 2016 at 5:38 PM, Kaustubh Kelkar
>> > <kaustubh.kelkar at casa-systems.com> wrote:
>> >> You can create the ports beforehand and plug them in while creating
>> >> the instance. As for assigning IP addresses, you can query the
>> >> ports and pass the information to cloud-init. I am not sure if
>> >> there is any other way to do this.
>> >>
>> >> Even if DHCP is disabled, OpenStack assigns IP information to ports
>> >> when a VM is created, and you can see this in your dashboard. The
>> >> MAC and IP information is used to configure iptables rules within
>> >> security groups. Here is the archived thread that provides this
>> >> information:
>> >>  
>> http://lists.openstack.org/pipermail/openstack-dev/2014-December/053069.html.
>> >>
>> >>
>> >> -Kaustubh
>> >>
>> >>> -----Original Message-----
>> >>> From: Satish Patel [mailto:satish.txt at gmail.com]
>> >>> Sent: Wednesday, August 24, 2016 5:05 PM
>> >>> To: James Downs <egon at egon.cc>
>> >>> Cc: openstack <openstack at lists.openstack.org>
>> >>> Subject: Re: [Openstack] Guest VM IP configuration script
>> >>>
>> >>> I am using neutron networking with vlan ( its provider VLAN). We
>> >>> are not using
>> >>> DHCP but i need some kind of hack to inject IP address in instance
>> >>> using cloud-
>> >>> init.
>> >>>
>> >>> We are using cloud-init but i don't know how does it work and  
>> get IP from
>> >>> neutron. I am new with neutron stuff.
>> >>>
>> >>> On Wed, Aug 24, 2016 at 4:29 PM, James Downs <egon at egon.cc> wrote:
>> >>> > On Wed, Aug 24, 2016 at 03:25:26PM -0400, Satish Patel wrote:
>> >>> >> I enabled following in nova.conf on compute node but didn't work :(
>> >>> >>
>> >>> >> flat_injected=true
>> >>> >>
>> >>> >> Do i need to do anything else?
>> >>> >
>> >>> > Are you using flat networking?
>> >>> > Nova-networks or Neutron?
>> >>> >
>> >>> > At this point, if you're not using DHCP, your only option is to
>> >>> arrange to feed
>> >>> the networking information into the metadata for the VM at
>> >>> creation time, and
>> >>> use someting like cloud-init to configure the networking. The ancient
>> >>> networking injection stuff has either been removed, or been broken
>> >>> for years.
>> >>> >
>> >>> > Cheers,
>> >>> > -j
>> >>> >
>> >>> > _______________________________________________
>> >>> > Mailing list:
>> >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> >>> > Post to     : openstack at lists.openstack.org
>> >>> > Unsubscribe :
>> >>> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> >>>
>> >>> _______________________________________________
>> >>> Mailing list:  
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> >>> Post to     : openstack at lists.openstack.org
>> >>> Unsubscribe :  
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> >
>> > _______________________________________________
>> > Mailing list:  
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> > Post to     : openstack at lists.openstack.org
>> > Unsubscribe :  
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>>
>>
>>
>
>
> _______________________________________________
> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
> Post to     : openstack at lists.openstack.org
> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack



-- 
Eugen Block                             voice   : +49-40-559 51 75
NDE Netzdesign und -entwicklung AG      fax     : +49-40-559 51 77
Postfach 61 03 15
D-22423 Hamburg                         e-mail  : eblock at nde.ag

         Vorsitzende des Aufsichtsrates: Angelika Mozdzen
           Sitz und Registergericht: Hamburg, HRB 90934
                   Vorstand: Jens-U. Mozdzen
                    USt-IdNr. DE 814 013 983





More information about the Openstack mailing list