aboutsummaryrefslogtreecommitdiffstats
path: root/deploy/adapters/cobbler/snippets/preseed_pre_install_network_config
blob: e2d45df765b1714f35c04a4b2b30b881378c9fee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#if $getVar("system_name","") != ""
    #if $getVar('management_nic', '') == ""
        #set $management_nic=''
    #end if
echo "generate pre network config" > /tmp/network_log
# Start pre_install_network_config generated code
#raw
# generic functions to be used later for discovering NICs
mac_exists() {
    if type ip; then
        ip -o link | grep -i "$1" 2>/dev/null >/dev/null
        return $?
    elif type esxcfg-nics; then
        esxcfg-nics -l | grep -i "$1" 2>/dev/null >/dev/null
        return $?
    else
        ifconfig -a | grep -i "$1" 2>/dev/null >/dev/null
        return $?
    fi
}
get_ifname() {
    if type ip; then
        IFNAME=$(ip -o link | grep -i "$1" | sed -e 's/^[0-9]*: //' -e 's/:.*//')
    elif type esxcfg-nics; then
        IFNAME=$(esxcfg-nics -l | grep -i "$1" | cut -d " " -f 1)
    else
        IFNAME=$(ifconfig -a | grep -i "$1" | cut -d " " -f 1)
        if [ -z "$IFNAME" ]; then
            IFNAME=$(ifconfig -a | grep -i -B 2 "$1" | sed -n '/flags/s/:.*$//p')
        fi
    fi
}
#end raw
    #set ikeys = $interfaces.keys()
    #for $iname in $ikeys
        #set $idata         = $interfaces[$iname]
        #set $management    = $idata["management"]
        #if $management
            #set $management_nic = $iname
        #end if
    #end for
    #for $iname in $ikeys
        #set $idata         = $interfaces[$iname]
        #set $mac           = $idata["mac_address"]
        #set $static        = $idata["static"]
        #set $management    = $idata["management"]
        #set $ip            = $idata["ip_address"]
        #set $netmask       = $idata["netmask"]
        #set $iface_type    = $idata["interface_type"]
        #set $iface_master  = $idata["interface_master"]
        #set $static_routes = $idata["static_routes"]
        #if $management_nic != ''
            #if $iname != $management_nic
                #continue
            #end if
        #end if
        #if $mac == ""
            #continue
        #end if
# Configuring $iname ($mac)
if mac_exists $mac; then
    get_ifname $mac
    echo "d-i netcfg/choose_interface string \$IFNAME" >> /tmp/pre_install_network_config
        #if $static and $ip != ""
    echo "d-i netcfg/get_ipaddress string $ip" >> /tmp/pre_install_network_config
            #if $netmask == ""
                #set $netmask = "255.255.255.0"
            #end if
    echo "d-i netcfg/get_netmask string $netmask" >> /tmp/pre_install_network_config
        #else
            #continue
        #end if
fi
    #end for
#end if