Cobbler Web界面操作(五)

編輯snippet

1、添加自動意的snippet文件

wKioL1WacnWhqEulAAN6DnFI6zU473.jpg

wKiom1WacKmji2lMAANaVoZv6Eg251.jpg



2、把下面的三個自定義的snippet文件添加上

1)、my_add_command

rm -rf /etc/yum.repos.d/CentOS*


modprobe 8021q


sed -i /GATEWAY/d /etc/sysconfig/network-scripts/ifcfg-`route -n | awk  '{if ($2 == "192.168.102.254" ) print $8}'`



cat >/etc/hosts <<-EOF

172.16.15.1 hscloud-node1

172.16.15.2 hscloud-node2

172.16.15.3 hscloud-node3

172.16.15.4 hscloud-node4

172.16.15.5 hscloud-node5

172.16.15.6 hscloud-node6

172.16.15.7 hscloud-node7

172.16.15.8 hscloud-node8

172.16.15.9 hscloud-node9

172.16.15.10 hscloud-node10

EOF



echo "*/30 * * * *   ntpdate 172.16.15.1" >> /var/spool/cron/root




mkdir /root/.ssh/


chmod 700 /root/.ssh/

cat >/root/.ssh/config <<-EOF


StrictHostKeyChecking no


UserKnownHostsFile /dev/null


EOF






cat >/root/.ssh/id_rsa <<-EOF

-----BEGIN RSA PRIVATE KEY-----

MIIEoQIBAAKCAQEA159xWLESQKxo7xm2iN5Gs//YXvOX6H4pcZJnCgc53vT4I4Di

h3SdnS7g33WezkzNjasuzuiflWB7XkPnCHWMP2LpshY7MAjMtgfv3t4Lo7W4zlhh

IgrynJbzPCFMgLQhCAzOzgOPgV/szPA0ydka82Mo9eScUnzLOuVFYEjCKe2g/TVL

mmfIgMtE4bI3G6df8BNH+9g/L5id/fWT+FUMjVX0gMWgd3Q9xi984WJaQKQu+y60

tt1s38P/5xA1+ly7jN8MgJeHTRt//Xa61g7n5qWd1z29HJObmT2KbvuWyZXxYJLd

KyWcfIRxPY7hursIBHtEmvGnaau/gD4XLe7QlwIBIwKCAQAYpIH7gfN1GwStnInj

waGuK942vMDnXuAqPJ4Pxk/BtZizmbN9MeYgl6Sr0u2T64U0wxtK2MHH7cT01I9u

rlkr0MpAPQ4UHkNIAOg2ukp5HBUe5YdxmtnmAp90lhdfKoduomDHFlmLIOfc6ECM

GM/hTSlArGmjBvKnpSyACFC0VXZJ4ZM1t/hQ4Ozsu23YFifuTC6hm3nvM+hwMSfV

Wu9kllgU2PeBOvUtmORcs9p4Drfs+N9AaOA72iRad7t6kyeXU0o9TUPzwcwCICtO

h+ez9aGmB2DZOB2FxHL3gpitVa065qGvC830u8rt68vA8VTwqhN7WjqZCBOLka++

0kmLAoGBAO8c5J74jmzKv79oUgcmYf6jfyA2cwKrbZMaXgs8ouufkKZRLlzqxF5f

ZXd1YzM/xiVFB5EmEUGC1V1MTr0gewfH3g52yIHJVO2QHw5OJ1QKrNLHSF1AT5u3

0VUUgn5AZstFy/OS66qTzNFZZwUaBBwcO188+U1XUBt7dFSmUnfXAoGBAObZ2uSL

z57yW2xh+C7Sg4PneY+/VNGXJNkN6Www1nI9oct5LM3h6/4X0DdA2W9mXUBcpYId

NoFROeSDKdBpWhlY6DRxavLu5tlavjGYwmh1U4SjNNBvmP2O9UdkwmCcgXpXZOLc

kqfLTHBCWKXId0Sub7rmotlXVPj/jwDB7FVBAoGBAIHN2zG6IW5CLZPK6rNsm5jc

aZUk31k4fU/bHRwK+VtWnvszYk+ypR1Jur0xGJgp7zjNs6aRAg2ey5kMKr5wt9EG

GXWQ8ID4RAvvJs1AXn4UbHJsLpkFp48MA+xbl0vZ0WcIoeqgNspQO/yePz1IoyUz

5bdbnUc+BupY9gIRJXRBAoGAO1yXX1cmwnjVrifSGqspIesQoU505XACKS92iYjm

r6lyv0sLhWX62vAuOhf9ZcnddvNAgIsrRdMO4v0oAmQ7vWABMg6JNyd9MJOtP/QU

u8Zl7ugjhg4RZcWsyTcqqyDuGCUZ8TFnijuXUBEPexZKjgD4KL72rOqSMWZJV/da

B0sCgYAwQu2sW2ohR5ZCtI5WZTmSIi5KcBtGCHM8UIMQhl0TgQni83LfkBaUcHAr

Wi6lVvEkFDKpjkS1GICA1JT7vQWDKJY211Ut5snkV6wGKb5KkVczzRjmvCv77rH9

b80ZLdnIvTS8clQIQE/0DVwmEQ5LNf9vdIMKr6gZ2CEMySyzsA==

-----END RSA PRIVATE KEY-----

EOF


cat >>/root/.ssh/authorized_keys <<-EOF

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA159xWLESQKxo7xm2iN5Gs//YXvOX6H4pcZJnCgc53vT4I4Dih3SdnS7g33WezkzNjasuzuiflWB7XkPnCHWMP2LpshY7MAjMtgfv3t4Lo7W4zlhhIgrynJbzPCFMgLQhCAzOzgOPgV/szPA0ydka82Mo9eScUnzLOuVFYEjCKe2g/TVLmmfIgMtE4bI3G6df8BNH+9g/L5id/fWT+FUMjVX0gMWgd3Q9xi984WJaQKQu+y60tt1s38P/5xA1+ly7jN8MgJeHTRt//Xa61g7n5qWd1z29HJObmT2KbvuWyZXxYJLdKyWcfIRxPY7hursIBHtEmvGnaau/gD4XLe7Qlw== root@bgw-os-node152

EOF


chmod 600 /root/.ssh/id_rsa


chmod 600 /root/.ssh/authorized_keys






useradd nova -U  -d /var/lib/nova


mkdir -p /var/lib/nova/.ssh/


chmod 700 /var/lib/nova/.ssh/



cat >/var/lib/nova/.ssh/config <<-EOF


StrictHostKeyChecking no


UserKnownHostsFile /dev/null


EOF



cat > /var/lib/nova/.ssh/id_rsa <<-EOF

-----BEGIN RSA PRIVATE KEY-----

MIIEoQIBAAKCAQEA159xWLESQKxo7xm2iN5Gs//YXvOX6H4pcZJnCgc53vT4I4Di

h3SdnS7g33WezkzNjasuzuiflWB7XkPnCHWMP2LpshY7MAjMtgfv3t4Lo7W4zlhh

IgrynJbzPCFMgLQhCAzOzgOPgV/szPA0ydka82Mo9eScUnzLOuVFYEjCKe2g/TVL

mmfIgMtE4bI3G6df8BNH+9g/L5id/fWT+FUMjVX0gMWgd3Q9xi984WJaQKQu+y60

tt1s38P/5xA1+ly7jN8MgJeHTRt//Xa61g7n5qWd1z29HJObmT2KbvuWyZXxYJLd

KyWcfIRxPY7hursIBHtEmvGnaau/gD4XLe7QlwIBIwKCAQAYpIH7gfN1GwStnInj

waGuK942vMDnXuAqPJ4Pxk/BtZizmbN9MeYgl6Sr0u2T64U0wxtK2MHH7cT01I9u

rlkr0MpAPQ4UHkNIAOg2ukp5HBUe5YdxmtnmAp90lhdfKoduomDHFlmLIOfc6ECM

GM/hTSlArGmjBvKnpSyACFC0VXZJ4ZM1t/hQ4Ozsu23YFifuTC6hm3nvM+hwMSfV

Wu9kllgU2PeBOvUtmORcs9p4Drfs+N9AaOA72iRad7t6kyeXU0o9TUPzwcwCICtO

h+ez9aGmB2DZOB2FxHL3gpitVa065qGvC830u8rt68vA8VTwqhN7WjqZCBOLka++

0kmLAoGBAO8c5J74jmzKv79oUgcmYf6jfyA2cwKrbZMaXgs8ouufkKZRLlzqxF5f

ZXd1YzM/xiVFB5EmEUGC1V1MTr0gewfH3g52yIHJVO2QHw5OJ1QKrNLHSF1AT5u3

0VUUgn5AZstFy/OS66qTzNFZZwUaBBwcO188+U1XUBt7dFSmUnfXAoGBAObZ2uSL

z57yW2xh+C7Sg4PneY+/VNGXJNkN6Www1nI9oct5LM3h6/4X0DdA2W9mXUBcpYId

NoFROeSDKdBpWhlY6DRxavLu5tlavjGYwmh1U4SjNNBvmP2O9UdkwmCcgXpXZOLc

kqfLTHBCWKXId0Sub7rmotlXVPj/jwDB7FVBAoGBAIHN2zG6IW5CLZPK6rNsm5jc

aZUk31k4fU/bHRwK+VtWnvszYk+ypR1Jur0xGJgp7zjNs6aRAg2ey5kMKr5wt9EG

GXWQ8ID4RAvvJs1AXn4UbHJsLpkFp48MA+xbl0vZ0WcIoeqgNspQO/yePz1IoyUz

5bdbnUc+BupY9gIRJXRBAoGAO1yXX1cmwnjVrifSGqspIesQoU505XACKS92iYjm

r6lyv0sLhWX62vAuOhf9ZcnddvNAgIsrRdMO4v0oAmQ7vWABMg6JNyd9MJOtP/QU

u8Zl7ugjhg4RZcWsyTcqqyDuGCUZ8TFnijuXUBEPexZKjgD4KL72rOqSMWZJV/da

B0sCgYAwQu2sW2ohR5ZCtI5WZTmSIi5KcBtGCHM8UIMQhl0TgQni83LfkBaUcHAr

Wi6lVvEkFDKpjkS1GICA1JT7vQWDKJY211Ut5snkV6wGKb5KkVczzRjmvCv77rH9

b80ZLdnIvTS8clQIQE/0DVwmEQ5LNf9vdIMKr6gZ2CEMySyzsA==

-----END RSA PRIVATE KEY-----

EOF


cat >>/var/lib/nova/.ssh/authorized_keys <<-EOF

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAuWcKohvVRpFCGUAONrYYzFBWr5xZj0BZvWJ7JKf9Y7kEW7yX0A41j4XgV+xjajjye8UxI4eXaW2fgCH6fZe5WKrztlLEZzA6XdD5HnAmNSpys3311ChBYjPbPUvZLdRP2eq/Jc8BRFXQ5C7qgHxunwLP1Q4I+wf7/oaRUIhhoudtK9Dm1EFgWwO+FuTwLqPqV80+b/StVhEsjT9+10G4+I1UAQlOFMHIAWJf15H9rfMYelp979430tQnlzccKtTIkaq2jXeF8TNQosH9c3oL+r4PswL3xMTVbWAsFSmby5YEj5R+0d3Ah7yXDwFEcLhlcbh0cctncCG0HDXk+sAo6Q== nova@bgw-os-node151

EOF


chmod 600 /var/lib/nova/.ssh/id_rsa


chmod 600 /var/lib/nova/.ssh/authorized_keys


chmod 600 /var/lib/nova/.ssh/config



chown nova:nova /var/lib/nova -R


2)、my_root_ssh_key

cd /root

mkdir --mode=700 .ssh

cat >> .ssh/authorized_keys << "PUBLIC_KEY"

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCwww24e5eBdcNAFIYL/4LJ54eH5XQr1GmpuRB4m7NAcsC7PTt2BDob2P5bt+Rg1o64Aah2m1ajt3kIewEeVCKIC6Msocu4W2ERD893aVgo72Dn9+ogPpg7w/GA4GKyXg2DS4mCNPN8pLQa1wxrozyIFqyyNYDFzWE0mSJdwaWzqQ==

chmod 600 .ssh/authorized_keys


3)、my_pre_install_network_config

#if $getVar("system_name","") != ""

# Start pre_install_network_config generated code

#raw

# generic functions to be used later for discovering NICs

mac_exists() {

  [ -z "$1" ] && return 1


  if which ip 2>/dev/null >/dev/null; then

    ip -o link | grep -i "$1" 2>/dev/null >/dev/null

    return $?

  elif which esxcfg-nics 2>/dev/null >/dev/null; 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 which ip 2>/dev/null >/dev/null; then

    IFNAME=$(ip -o link | grep -i "$1" | sed -e 's/^[0-9]*: //' -e 's/:.*//')

  elif which esxcfg-nics 2>/dev/null >/dev/null; 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()

    #import re

    #set $vlanpattern = $re.compile("[a-zA-Z0-9]+[\.][0-9]+")

    #set $routepattern = $re.compile("[0-9/.]+:[0-9.]+")

    ##

    ## Determine if we should use the MAC address to configure the interfaces first

    ## Only physical interfaces are required to have a MAC address

    #set $configbymac = True

    #for $iname in $ikeys

        #set $idata = $interfaces[$iname]

        #if $idata["mac_address"] == "" and not $vlanpattern.match($iname) and not $idata["interface_type"].lower() in ("master","bond","bridge","bonded_bridge_slave")

            #set $configbymac = False

        #end if

    #end for

    #set $i = 0


    #if $configbymac

        ## Output diagnostic message

# Start of code to match cobbler system interfaces to physical interfaces by their mac addresses

    #end if

    #for $iname in $ikeys

#  Start $iname

        #set $idata         = $interfaces[$iname]

        #set $mac           = $idata["mac_address"]

        #set $static        = $idata["static"]

        #set $ip            = $idata["ip_address"]

        #set $netmask       = $idata["netmask"]

        #set $iface_type    = $idata["interface_type"]

        #set $iface_master  = $idata["interface_master"]

        #set $if_gateway    = $idata["if_gateway"]

        #set $static_routes = $idata["static_routes"]

        #set $devfile       = "/etc/sysconfig/network-scripts/ifcfg-" + $iname

        #if $vlanpattern.match($iname)

            ## If this is a VLAN interface, skip it, anaconda doesn't know

            ## about VLANs.

            #set $is_vlan = "true"

        #else

            #set $is_vlan = "false"

        #end if

        #if ($configbymac and $is_vlan == "false" and $iface_type.lower() not in ("slave","bond_slave","bridge_slave","bonded_bridge_slave")) or $iface_type.lower() in ("master","bond","bridge")

            ## This is a physical interface, hand it to anaconda. Do not

            ## process slave interface here.

            #if $iface_type.lower() in ("master","bond","bridge","bonded_bridge_slave")

                ## Find a slave for this interface

                #for $tiname in $ikeys

                    #set $tidata = $interfaces[$tiname]

                    #if $tidata["interface_type"].lower() in ("slave","bond_slave","bridge_slave") and $tidata["interface_master"].lower() == $iname

                        #if $tidata["mac_address"] != '':

                            #set $mac = $tidata["mac_address"]

#  Found a slave for this interface: $tiname ($mac)

                            #break

                        #end if

                    #else if $tidata["interface_type"].lower() == "bonded_bridge_slave" and $tidata["interface_master"].lower() == $iname

                        ## find a slave for this slave interface...

                        #for $stiname in $ikeys

                            #set $stidata = $interfaces[$stiname]

                            #if $stidata["interface_type"].lower() in ("slave","bond_slave","bridge_slave") and $stidata["interface_master"].lower() == $tiname

                                #if $stidata["mac_address"] != '':

                                    #set $mac = $stidata["mac_address"]

#  Found a slave for this interface: $tiname -> $stiname ($mac)

                                    #break

                                #end if

                            #end if

                        #end for

                    #end if

                #end for

            #end if

            #if $static and $ip != ""

                #if $netmask == ""

                    ## Netmask not provided, default to /24.

                    #set $netmask = "255.255.255.0"

                #end if

                #set $netinfo = "--bootproto=static --ip=%s --netmask=%s" % ($ip, $netmask)

                #if $if_gateway != ""

           #set $netinfo = "%s --gateway=%s" % ($netinfo, $if_gateway)

                #else

                    #set $netinfo = "%s --gateway=0.0.0.0" % ($netinfo)

                #end if

           #if $len($name_servers) > 0

               #set $netinfo = "%s --nameserver=%s" % ($netinfo, $name_servers[0])

                #end if

            #else if not $static

                #set $netinfo = "--bootproto=dhcp"

            #else

                ## Skip this interface, it's set as static, but without

                ## networking info.

#  Skipping (no configuration)...

                #continue

            #end if

            #if $hostname != ""

                #set $netinfo = "%s --hostname=%s" % ($netinfo, $hostname)

            #end if

# Configuring $iname ($mac)

if mac_exists $mac

then

  get_ifname $mac

  echo "network --device=\$IFNAME $netinfo " >> /tmp/pre_install_network_config

            #for $route in $static_routes

                #if $routepattern.match($route)

                    #set $routebits = $route.split(":")

                    #set [$network, $router] = $route.split(":")

  ip route add $network via $router dev \$IFNAME

                #else

  # Warning: invalid route "$route"

                #end if

            #end for

fi

        #else

            #if $iface_type.lower() in ("slave","bond_slave","bridge_slave","bonded_bridge_slave")

#  Skipping (slave-interface)

            #else

#  Skipping (not a physical interface)...

            #end if

        #end if

    #end for

# End pre_install_network_config generated code

#end if



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章