[chef] Re: Re: Re: Re: Re: Re: Managing network interfaces


Chronological Thread 
  • From: " " < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Managing network interfaces
  • Date: Wed, 14 Jul 2010 17:16:32 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=RuYkey9TWt4muEgY4+An25jOUPG0Xgq0HseWOyRJRKvQQxAgXBgsXTix8J84HzghKz r1ahOv+FScjhkaWdXW9l6V0d1CavCypT0we0wY5xpW8cSlyfwKlnXK4lqfVDCh/ZixSi n1pZ9Bz9xRHlAcPBVPL/r5dB97a2ydbSiFOg8=

well those are configuration files? and would probably be more appropriate to just make templates out of them to configure your networking information.  that's currently how I'm implementing that since systems like redhat,ubuntu,debian use those files.

--sahil


On Wed, Jul 14, 2010 at 5:14 PM, Jacobo García < "> > wrote:
After taking a look on this
http://github.com/opscode/chef/blob/master/chef/lib/chef/provider/ifconfig.rb
it seems that debian/ubuntu and slackware are not supported.

In debian network configuration is all done in one file
/etc/network/interfaces so probably is not as straightforward as in
red hat to write the file.You have to parse /etc/network/interfaces
and rewrite it respecting previous interfaces. I am willing to try to
fix that and write a patch even if I'm a rusty coder as I mainly work
as a sysadmin, so do you have any advice on how to parse this file?
On Wed, Jul 14, 2010 at 1:12 PM, Jacobo García < "> > wrote:
> Thanks for all the information, chefs.
>
>
> Jacobo García López de Araujo
> blog: http://robotplaysguitar.com
> http://workingwithrails.com/person/13395-jacobo-garc-a
>
>
>
>
> On Wed, Jul 14, 2010 at 3:23 AM, Jesse Nelson < "> > wrote:
>> heres an example oh how we do it
>>
>> $ knife data bag show network test01
>> {
>>  "routes": {
>>    "home": {
>>      "network": "172.30.10.0/24",
>>      "gateway": "127.0.0.1"
>>    }
>>  },
>>  "id": "test01",
>>  "interfaces": {
>>    "sys-ext": {
>>      "mask": "255.255.255.0",
>>      "ip": "127.0.1.4",
>>      "dev": "lo:0"
>>    },
>>    "mail": {
>>      "mask": "255.255.255.0",
>>      "ip": "127.0.0.3",
>>      "dev": "lo:1"
>>    },
>>    "mail-ext": {
>>      "mask": "255.255.255.0",
>>      "ip": "127.0.1.3",
>>      "dev": "lo:2"
>>    },
>>    "sys": {
>>      "mask": "255.255.255.0",
>>      "ip": "127.0.0.4",
>>      "dev": "lo:3"
>>    }
>>  }
>> }
>>
>>
>> and the default recipe from a "network" cookbook:
>>
>> # want to catch this so we don't always have to set up interfaces
>> begin
>>    net_dbag = data_bag_item('network', @node[:hostname] )
>> rescue
>>    net_dbag = nil
>> end
>>
>> # we want to ignore these failures  we catch them in splunk for now
>> if net_dbag
>>  net_dbag['interfaces'].each_value do |int|
>>    ifconfig  int['ip'] do
>>      ignore_failure  true
>>      device  int['dev']
>>      mask    int['mask']
>>      gateway int['gateway'] if int['gateway']
>>      mtu     int['mtu'] if int['mtu']
>>    end
>>  end
>>
>>  # custom routes  well do dbag routes first here and then
>>  # attrib based routes as well
>>  net_dbag['routes'].each_value do |r|
>>    route r['network'] do
>>      ignore_failure true
>>      gateway r['gateway']
>>      netmask  r['netmask'] if r['netmask']
>>      device   r['device']  if r['device']
>>    end
>>  end
>> end
>>
>> i also setup a route resource based on node attribs. so that roles and such can set routes if need be
>>
>> super simple data bag driven network config.
>>
>> On Jul 13, 2010, at 5:50 PM, John Hanks wrote:
>>
>>> I have a recipe that is redhat/centos specific that I use to configure
>>> eth, vlan and bond devices. It's crude but effective and uses a set of
>>> attributes like (most complicated example I've used):
>>>
>>> "netcfg" => {
>>>    "devices" => {
>>>        "bond0" => {
>>>          "bootproto" => "dhcp",
>>>          "device" => "bond0",
>>>          "nics" => "eth0,eth1",
>>>          "onboot" => "yes",
>>>          "mtu" => "9000",
>>>          "mode" => "0"
>>>        },
>>>      "vlan32" => {
>>>            "bootproto" => "dhcp",
>>>            "device" => "vlan32",
>>>            "physdev" => "bond0"
>>>        }
>>>    },
>>>    "gatewaydev" => "vlan32"
>>> }
>>>
>>> Or, a simpler config for 2 nics:
>>>
>>> "netcfg" => {
>>>    "devices" => {
>>>        "eth0" => {
>>>            "bootproto" => "dhcp",
>>>            "device" => "eth0",
>>>            "onboot" => "yes"
>>>        },
>>>        "eth1" => {
>>>            "bootproto" => "dhcp",
>>>            "device" => "eth1",
>>>            "onboot" => "yes",
>>>            "mtu" => "9000"
>>>        }
>>>    },
>>>    "gatewaydev" => "eth1"
>>> }
>>>
>>> The cookbook should support all available redhat style settings for
>>> ifcfg-* files and /etc/sysconfig/network. But since all my interfaces
>>> dhcp, using this for the static settings is poorly tested. If anyone
>>> is interested I've stuck a recent copy of it here:
>>> http://www.broadinstitute.org/~jbh/netcfg.tar.gz
>>>
>>> Because my nodes are diskless, there's not much effort put into
>>> maintaining files, just into creating them since everything gets
>>> rebuilt upon reboot. It'd probably take a bit more polish to make this
>>> safe for a server provisioned to disk where you'd want to maintain and
>>> update the files over time.
>>>
>>> jbh
>>>
>>>
>>> On Tue, Jul 13, 2010 at 7:59 PM, Jesse Nelson < "> > wrote:
>>>> you can manage the files directly or use the resources.   we use the
>>>> resource and data bags to manage static assignments for sub-interface and
>>>> vlan interfaces on some (not all) hosts..
>>>> this model has allowed me to name interfaces in json data in a data bag and
>>>> reuse or search against those names in other recipes. this has worked out
>>>> well for me.
>>>> i am happy to share the very simple recipe that achieves this, but its not
>>>> up anywhere atm.
>>>>
>>>>
>>>>
>>>> On Jul 13, 2010, at 4:23 PM, Ryan C. Creasey wrote:
>>>>
>>>> I've played around with managing auxiliary interfaces on my nodes (eth1,
>>>> loopback aliases, etc) for some of our DSR nodes and took the easy way out
>>>> and had the recipe manage the templates to the
>>>> "/etc/sysconfig/network-scripts/ifcfg-#{interface[:device]}" (yes, we're
>>>> redhat based).
>>>> I'd also be interested to hear other use cases for interface management with
>>>> chef.
>>>>
>>>> Ryan C. Creasey
>>>> PRINCIPAL SYSTEMS ENGINEER
>>>> IGN Entertainment
>>>> T: 714.460.6789  |  C: 949.378.9023 | AIM: ryancreasey
>>>>
>>>>
>>>> On Jul 13, 2010, at 4:19 PM, Jacobo García wrote:
>>>>
>>>> Hi,
>>>>
>>>> I have to manage some network interfaces, routes and and ipip tunnels.
>>>> I know about chef's route and ifconfig resource. But I'd like to know
>>>> experiences of people playing with these sensitive stuff, specially
>>>> about configuring network interfaces, is the resource reliable enough?
>>>> does it work with virtual interfaces?
>>>>
>>>> Thanks :)
>>>>
>>>> Jacobo García López de Araujo
>>>> blog: http://robotplaysguitar.com
>>>> http://workingwithrails.com/person/13395-jacobo-garc-a
>>>>
>>>>
>>>>
>>>>
>>
>>
>




Archive powered by MHonArc 2.6.16.

§