[Openstack] Guest VM IP configuration script

Eugen Block eblock at nde.ag
Thu Aug 25 14:24:20 UTC 2016


I'm not sure if I understand this correctly, but I believe we have a  
smilar setup:

You have existing VLANs which have their own DHCP server and existing  
instances running. And you want to add new instances having their  
network interfaces in these VLANs, therefor you intend to disable  
neutron's dhcp server for that network. But your statement

> neutron subnet-create  ext_net --gateway 10.35.1.254 10.35.1.0/24 --
> --enable_dhcp=True

enables dhcp on that subnet, I think you want to use the  
router:external option and disable dhcp:

neutron subnet-create ext_net --gateway 10.35.1.254 10.35.1.0/24  
--disable-dhcp --router:external True

See [1] for details on external networks.

This way your new instances won't get any ip address and your existing  
instances won't lose their network config.
Now if you have that setup, you can use --config-drive with nova boot,  
the instance will receive its ip address that neutron has created.

I hope I got this right.

[1] http://docs.openstack.org/mitaka/networking-guide/scenario-classic-lb.html

Zitat von Satish Patel <satish.txt at gmail.com>:

> I am planning to upgrade liberty to mitaka now so hope i will have
> latest and greatest feature to solve this problem. why openstack
> community doesn't have any straightforward solution.
>
> When i was trying to use DHCP in openstack i found openstack DHCP
> start provide ip address to my existing LAN machines ( we are using
> flat VLAN with neutron), that is why i disable openstack DHCP, Is it
> common or i am doing something wrong?
>
> We have existing DHCP in out LAN i don't want openstack DHCP take over
> and start assigning own IPs to Provide LAN.
>
> neutron subnet-create  ext_net --gateway 10.35.1.254 10.35.1.0/24 --
> --enable_dhcp=True
>
> On Thu, Aug 25, 2016 at 9:26 AM, Satish Patel <satish.txt at gmail.com> wrote:
>> Eugen,
>>
>> I think config-drive make sense when you don't have initial network in
>> place. In my case i don't care about fixed-IP for instance. I only
>> need to setup network using whatever IP neutron provide in that case
>> how do i query neutron port to find out what IP address is available
>> or neutron going to provide so i can take that information and pass to
>> userdata. Its sounds tricky any idea how to do that?
>>
>> On Thu, Aug 25, 2016 at 2:53 AM, Eugen Block <eblock at nde.ag> 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
>>>
>>>
>>>
>>>
>>> --
>>> 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
>>>
>>>
>>>
>>> _______________________________________________
>>> 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