• 批量安装操作系统之cobbler


     Cobbler 部署文档 
    
     服务端配置 
    
    操作系统:Centos6.4
    
    关闭防火墙及 selinux
    
     安装cobbler软件 
    
    添加yum源
    
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
    
    安装相关软件
    
    yum -y install cobbler httpd rsync tftp-server xinetd dhcp cobbler-web syslinux cman pykickstart
    
    
     设置cobbler服务 
    tftp服务和rsync服务
    
    
    sed -i '/disable/c\tdisable			 no' /etc/xinetd.d/tftp
    sed -i -e 's/\ yes/\ no/g' /etc/xinetd.d/rsync 
    
    
    允许web登录
    
    sed -i 's/authn_denyall/authn_configfile/g' /etc/cobbler/modules.conf 
    
    
    设置cobbler  web登陆,用户登陆密码
    
    htdigest /etc/cobbler/users.digest "Cobbler" cobbler
    #pass: l99.com
    
    
    设置cobbler登陆服务器地址
    
    sed -i 's/server: 127.0.0.1/server: 192.168.60.1/g' /etc/cobbler/settings
    
    
    ks脚本关闭pxe,这样就不会重复安装
    
    sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
    
    
    TFTP服务器 IP地址
    
    
    sed -i 's/next_server: 127.0.0.1/next_server: 192.168.60.1/g' /etc/cobbler/settings
    
    
    cobbler管理rsync
    
    sed -i 's/manage_rsync: 0/manage_rsync: 1/g' /etc/cobbler/settings
    
    
    cobbler管理dhcp
    
    sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings
    
    
    设置debmirror
    
    sed -i -e 's|@dists.*|#@dists|'  /etc/debmirror.conf
    sed -i -e 's|@arches.*|#@arches|'  /etc/debmirror.conf
    
    dhcp服务是有cobbler来管理 /etc/cobbler/dhcp.template
    
    修改下面的内容就可以。
    
    subnet 192.168.60.0 netmask 255.255.255.0 {
         option routers             192.168.60.1;
         option domain-name-servers 192.168.60.3;
         option subnet-mask         255.255.255.0;
         range dynamic-bootp        192.168.60.100 192.168.60.150;
         filename                   "/pxelinux.0";
         default-lease-time         21600;
         max-lease-time             43200;
         next-server                $next_server;
    }
    
    
    设置root默认密码
    
    这个设置只针对centos有效。默认的root密码是:l99.com
    
    openssl passwd -1 -salt 'random-phrase-here' 'l99.com'
    $1$random-p$A7/aqa3cbDOPzq2CUARYK1
    
    修改 /etc/cobbler/settings
    
    default_password_crypted: "$1$random-p$A7/aqa3cbDOPzq2CUARYK1"
    
    
    启动相关服务
    
    
    chkconfig httpd on 
    chkconfig cobblerd on
    chkconfig dhcpd on
    chkconfig xinetd on
    /etc/init.d/httpd restart
    /etc/init.d/cobblerd restart
    /etc/init.d/dhcpd restart
    /etc/init.d/xinetd restart
    
    
    设置debmirror
    
    sed -i -e 's|@dists.*|#@dists|'  /etc/debmirror.conf
    sed -i -e 's|@arches.*|#@arches|'  /etc/debmirror.conf
    
    
    启动菜单
    
    cobbler get-loaders
    
    
    同步配置
    
    cobbler sync
    
    
    检查cobbler
    
    cobbler check
    
    会看以下内容
    
    No configuration problems found.  All systems go.
    
    浏览cobbler_web
    
    http://192.168.60.1/cobbler_web
    
    如果提示:Error importing template source loader django.template.loaders.filesystem.load_template_source: "'module' object has no attribute 'load_template_source'"
    由于默认安装的django版本为1.4,可能是bug,解决方法可以换成低版本的django
    
    rpm -e Django14-1.4.5-1.el6.noarch.rpm
    wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/e/er/errepoel/centos/6/os/x86_64/Django-1.3.1-21.el6.noarch.rpm
    rm -rf /usr/lib/python2.6/site-packages/django/
    rpm -ivh Django-1.3.1-21.el6.noarch.rpm
    
    重启httpd和cobblerd服务
    
    导入镜像
    
    mount -t auto -o loop CentOS-6.4-x86_64-bin-DVD1.iso /mnt/
    cobbler import --path/mnt --nameCentOS6.4 --archx86_64
    
    会看到以下内容
    
    task started: 2013-06-14_093721_import
    task started (idMedia import, timeFri Jun 14 09:37:21 2013)
    Found a redhat compatible signature: Packages
    adding distros
    creating new distro: CentOS6.4-x86_64
    creating new profile: CentOS6.4-x86_64
    associating repos
    traversing distro CentOS6.4-x86_64
    descent into /var/www/cobbler/ks_mirror/CentOS6.4-x86_64
    processing repo at : /var/www/cobbler/ks_mirror/CentOS6.4-x86_64
    need to process repo/comps: /var/www/cobbler/ks_mirror/CentOS6.4-x86_64
    looking for /var/www/cobbler/ks_mirror/CentOS6.4-x86_64/repodata/*comps*.xml
    running: createrepo -c cache -s sha --groupfile /var/www/cobbler/ks_mirror/CentOS6.4-x86_64/repodata/2727fcb43fbe4c1a3588992af8c19e4d97167aee2f6088959221fc285cab6f72-c6-x86_64-comps.xml /var/www/cobbler/ks_mirror/CentOS6.4-x86_64
    received on stdout: Spawning worker 0 with 3916 pkgs
    Workers Finished
    Gathering worker results
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete
    received on stderr: 
    associating kickstarts
    *** TASK COMPLETE ***
    
    
     cobbler repo仓库建立 
    
    cobbler repo add --name163.com-6-x86_64 --mirrorhttp://mirrors.163.com/centos/6/os/x86_64/Packages/
    
    建立repo仓库
    
    cobbler reposync
    
    此处遇到问题:同步了一晚上的数据,第二天发现报错如下:
    
    reposync failed, tries left: 0
    Exception occured: 
    Exception value: 'reposync failed, retry limit reached, aborting'
    Exception Info:
      File "/usr/lib/python2.6/site-packages/cobbler/utils.py", line 123, in die
        raise CX(msg)
    
    Exception occured: 
    Exception value: 'reposync failed, retry limit reached, aborting'
    Exception Info:
    
    查找了一些资料后有些人说是bug,具体我也不太清楚。后来直接使用本地镜像导入了,具体方法如下:
    
    cobbler repo add --nameCentOS6.4-x86_64 --mirrorhttp://192.168.60.1/cobbler/ks_mirror/CentOS6.4-x86_64
    
    建立仓库
    
    cobbler reposync
    
    
    完成后/var/www/cobbler/repo_mirror目录下会生成CentOS6.4-x86_64
    
     如果安装puppet客户端 
    
    由于epel的源同步失败,因此此处手动将puppet所需要的包添加到本地repo中
    
    安装pupet客户端还需要几个ruby的包,以上加的两个源里默认没有,可以从网上下载后再添加到目前有的源里:
    
    cobbler repo add --namepuppetlabs --mirrorhttp://yum.puppetlabs.com/el/6/products/x86_64/   #把这个也加上,虽然是从网络同步的,但它却能成功
    
    下载所需包
    
    http://mirrors.sohu.com/fedora-epel/6/x86_64/ruby-shadow-1.4.1-13.el6.x86_64.rpm
    http://mirrors.sohu.com/fedora-epel/6/x86_64/ruby-json-1.4.6-1.el6.x86_64.rpm
    http://mirrors.sohu.com/fedora-epel/6/x86_64/ruby-augeas-0.4.1-1.el6.x86_64.rpmhttp://dl.marmotte.net/rpms/redhat/el6/x86_64/ruby-rgen-0.6.2-1.el6/ruby-rgen-0.6.2-1.el6.noarch.rpm
    http://dl.marmotte.net/rpms/redhat/el6/x86_64/hiera-1.2.1-1.el6/hiera-1.2.1-1.el6.noarch.rpm
    http://yumrepo-public.library.northwestern.edu/x86_64/rubygem-json-1.6.8-1.el6.x86_64.rpm
    http://yum.theforeman.org/releases/latest/el6/x86_64/rubygems-1.8.10-1.el6.noarch.rpm
    
    把下载下来的文件cp到/var/www/cobbler/repo_mirror/CentOS6.4-x86_64/Packages里并执行以下命令更新
    
    createrepo -g comps.xml --update .
    
    
    编写ks文件
    
    cd /var/lib/cobbler/kickstarts
    vim centos6.ks #可根据自己需要进行设置
    
    
    由于服务器配置和用途不同,本例中共创建了三种ks文件:
    
    dell服务器物理机:CentOS6.4-x86_64_Dell-Server
    超微服务器物理机虚拟化:CentOS6.4-x86_64_Virtualization
    超微服务器2U4物理机:CentOS6.4-x86_64_Virtualization
    虚拟机:CentOS6.4-x86_64_VM-Server
    
    创建方法
    
    cobbler profile add --name CentOS6.4-x86_64 --distro'CentOS6.4-x86_64' --kickstart/var/lib/cobbler/kickstarts/centos6.ks --repo'CentOS6.4-x86_64 puppetlabs'
    
    
    cobbler sync
    
    依次创建profile
    
    完成后检测
       [root@cobbler ~]# cobbler profile list
       CentOS6.4-x86_64
       CentOS6.4-x86_64_Dell-Server
       CentOS6.4-x86_64_VM-Server
       CentOS6.4-x86_64_Virtualization
       
    OK!可以装系统啦!
    安装时如果提示unable down load the kickstart file ..............
    请检查一下ks文件,把没用的都删掉,再 cobbler sync
    
    
    首次安装操作系统
    1、 将需要安装系统的服务器,以下简称客户端,放到和cobbler服务端同样的子网中。
    
    2、 启动cobbler服务端上的cobblerd等相关服务。
    
    3、 从PXE启动客户端主机。
    
    (1) 客户端寻找设置DHCP。
    
    (2) 客户端从PXE启动。
    
    (3) 客户端进入cobbler profile选择界面,用户可以根据应用的不同,选择不同的cobbler配置文件。
    
     指定主机名和ip配置方法 
    
    
    想办法扫描到准备安装系统主机的mac地址
    
    在/etc/dhcp/dhcpd.conf文件中添加以下内容:
    注:添加完不要执行cobbler sync,因为之前配置中dhcpd服务是由cobbler来控制的,直接重启dhcpd服务就可以了。
    
    host cobbler-test01 {
    option host-name "cobbler-test01";
    hardware ethernet 08:00:27:74:1B:50;
    fixed-address 192.168.60.61;
    }
    
    host cobbler-test02 {
    option host-name "cobbler-test02";
    hardware ethernet 08:00:27:5B:0A:BD;
    fixed-address 192.168.60.62;
    }
    
    
     koan使用方法 
    
    system是对待安装机器做具体设置,如设置主机名、IP地址、hostname等,这些设置根据MAC应用到具体机器上。
    
    下面是几个添加删除修改system的例子:
    
    添加system配置,配置文件名称:web-server01,机器IP地址192.168.60.65,机器MAC地址:08:00:27:74:1B:50,使用配置文件名称:web-server01,kickstart文件为:/var/lib/cobbler/kickstarts/centos6.ks
    
    cobbler system add --nameweb-server01 --ip-address192.168.60.65 --mac08:00:27:74:1B:50 --profileCentOS6.4-x86_64 --kickstart/var/lib/cobbler/kickstarts/centos6.ks
    
    
    修改system配置,配置文件名称:webserver1,机器IP地址由192.168.60.65变更为192.168.60.65
    
    cobbler system edit --nameweb-server01 --ip-address192.168.60.66
    
    变更system配置名称,名称由web-server01变更成db-server01
    
    cobbler system rename --nameweb-server01 --newnamedb-server01
    
    删除system配置,需要删除的profile名称为dberver1
    
    cobbler system remove --namedbserver1
    
    
    重新安装服务器的操作系统
    
    在客户端上安装koan
    
    yum install koan
    
    查看cobbler server上的配置文件
    
    koan --server192.168.60.1 --listprofiles
    
    重新安装客户端系统
    
    koan --replace-self --server192.168.0.2 --profilewebserver1
    
    reboot重启服务器后,客户端服务器会自动重新安装操作系统
    
    
     ks文件记录 
     dell服务器物理机 
    CentOS6.4-x86_64_Dell-Server
    
    #platformx86, AMD64, or Intel EM64T
    # System authorization information
    auth  --useshadow  --enablemd5
    # System bootloader configuration
    bootloader --locationmbr
    # Partition clearing information
    clearpart --all --initlabel
    # Use text mode install
    text
    # Firewall configuration
    firewall --disable
    # Run the Setup Agent on first boot
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang zh_CN
    # Use network installation
    #url --url$tree
    url --urlhttp://192.168.199.1/cobbler/links/CentOS6.4-x86_64
    #url --proxy$http_server:3128 --url$tree
    # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
    $yum_repo_stanza
    # Network information
    # $SNIPPET('network_config')
    # Reboot after installation
    reboot
    #Root password
    rootpw --iscrypted $default_password_crypted
    user skstsuperadmin --name "skstsuperadmin" --iscrypted --password $default_password_crypted
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # System timezone
    #timezone  America/New_York
    timezone  Asia/Shanghai
    # Install OS instead of upgrade
    install
    # Clear the Master Boot Record
    zerombr
    # Allow anaconda to partition the system as needed
    #autopart
    
    clearpart --all --initlabel
    part /boot --fstype"ext4" --asprimary --size200
    part swap --fstype"swap" --size4096
    #part /nova-volume --fstype"ext4" --size200000
    part / --fstype"ext4" --size100000
    part /data --fstype"ext4" --grow --size1
    
    
    
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    
    %packages
    $SNIPPET('func_install_if_enabled')
    $SNIPPET('puppet_install_if_enabled')
    @base
    @chinese-support
    @console-internet
    @legacy-unix
    @system-admin-tools
    ftp
    telnet
    tree
    puppet
    
    %post
    $SNIPPET('log_ks_post')
    # Start yum configuration 
    $yum_config_stanza
    # End yum configuration
    $SNIPPET('post_install_kernel_options')
    $SNIPPET('post_install_network_config')
    $SNIPPET('func_register_if_enabled')
    $SNIPPET('puppet_register_if_enabled')
    $SNIPPET('download_config_files')
    $SNIPPET('koan_environment')
    $SNIPPET('redhat_register')
    $SNIPPET('cobbler_register')
    # Enable post-install boot notification
    $SNIPPET('post_anamon')
    
    ### Sync Time ###
    
    # Start final steps
    $SNIPPET('kickstart_done')
    # End final steps
    
    echo "ulimit -SHn 65535" >> /etc/rc.local
    echo -e "*    soft   nofile       65535
    *    hard   nofile       65535" >> /etc/security/limits.conf
    sed -i 's#exec /sbin/shutdown -r now##exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.conf
    
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
    sed -i 's/#Port 22/Port 6022/g' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    echo "net.ipv4.tcp_fin_timeout  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time  1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_mem  94500000 915000000 927000000" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_timestamps  0" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_synack_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syn_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle  1" >> /etc/sysctl.conf
    echo "net.core.rmem_max  16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max  16777216" >> /etc/sysctl.conf
    echo "netdev_max_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.somaxconn  262144" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_orphans  3276800" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default  8388608" >> /etc/sysctl.conf
    echo "net.core.rmem_default  8388608" >> /etc/sysctl.conf
    
    echo -e "alias net-pf-10 off
    options ipv6 disable1" >> /etc/security/limits.conf
    echo "NETWORKING_IPV6off" >> /etc/sysconfig/network
    
    eth0_config'/etc/sysconfig/network-scripts/ifcfg-em1'
    ip`/sbin/ifconfig em1 |grep 'inet addr'|awk -F ' *|:' '{print $4}'`
    mask`/sbin/ifconfig em1 |grep 'inet addr'|awk -F ' *|:' '{print $8}'`
    gateway`netstat -r | grep 'default' | awk '{ print $2}'`
    sed -i 's/dhcp/static/g' $eth0_config
    sed -i 's/ONBOOTno/ONBOOTyes/g' $eth0_config
    
    echo IPADDR`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'` >> $eth0_config
    echo NETMASK`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'` >> $eth0_config
    echo GATEWAY'192.168.199.1' >> $eth0_config
    
     dell服务器物理机虚拟化 
    CentOS6.4-x86_64_Dell_Virtualization
    
    #platformx86, AMD64, or Intel EM64T
    # System authorization information
    auth  --useshadow  --enablemd5
    # System bootloader configuration
    bootloader --locationmbr
    # Partition clearing information
    clearpart --all --initlabel
    # Use text mode install
    text
    # Firewall configuration
    firewall --disable
    # Run the Setup Agent on first boot
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang zh_CN
    # Use network installation
    #url --url$tree
    url --urlhttp://192.168.199.1/cobbler/links/CentOS6.4-x86_64
    #url --proxy$http_server:3128 --url$tree
    # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
    $yum_repo_stanza
    # Network information
    # $SNIPPET('network_config')
    # Reboot after installation
    reboot
    #Root password
    rootpw --iscrypted $default_password_crypted
    user skstsuperadmin --name "skstsuperadmin" --iscrypted --password $default_password_crypted
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # System timezone
    #timezone  America/New_York
    timezone  Asia/Shanghai
    # Install OS instead of upgrade
    install
    # Clear the Master Boot Record
    zerombr
    # Allow anaconda to partition the system as needed
    #autopart
    
    clearpart --all --initlabel
    part /boot --fstype"ext4" --asprimary --size200
    part swap --fstype"swap" --size4096
    #part /nova-volume --fstype"ext4" --size200000
    part / --fstype"ext4" --size50000
    part /data --fstype"ext4" --grow --size1
    
    
    
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    
    %packages
    $SNIPPET('func_install_if_enabled')
    $SNIPPET('puppet_install_if_enabled')
    @base
    @chinese-support
    @console-internet
    @legacy-unix
    @system-admin-tools
    @virtualization
    @virtualization-client
    @virtualization-platform
    @virtualization-tools
    ftp
    telnet
    tree
    puppet
    
    %post
    $SNIPPET('log_ks_post')
    # Start yum configuration 
    $yum_config_stanza
    # End yum configuration
    $SNIPPET('post_install_kernel_options')
    $SNIPPET('post_install_network_config')
    $SNIPPET('func_register_if_enabled')
    $SNIPPET('puppet_register_if_enabled')
    $SNIPPET('download_config_files')
    $SNIPPET('koan_environment')
    $SNIPPET('redhat_register')
    $SNIPPET('cobbler_register')
    # Enable post-install boot notification
    $SNIPPET('post_anamon')
    
    ### Sync Time ###
    
    # Start final steps
    $SNIPPET('kickstart_done')
    # End final steps
    
    echo "ulimit -SHn 65535" >> /etc/rc.local
    echo -e "*    soft   nofile       65535
    *    hard   nofile       65535" >> /etc/security/limits.conf
    sed -i 's#exec /sbin/shutdown -r now##exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.conf
    
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
    sed -i 's/#Port 22/Port 6022/g' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    echo "net.ipv4.tcp_fin_timeout  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time  1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_mem  94500000 915000000 927000000" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_timestamps  0" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_synack_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syn_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle  1" >> /etc/sysctl.conf
    echo "net.core.rmem_max  16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max  16777216" >> /etc/sysctl.conf
    echo "netdev_max_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.somaxconn  262144" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_orphans  3276800" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default  8388608" >> /etc/sysctl.conf
    echo "net.core.rmem_default  8388608" >> /etc/sysctl.conf
    
    echo -e "alias net-pf-10 off
    options ipv6 disable1" >> /etc/security/limits.conf
    echo "NETWORKING_IPV6off" >> /etc/sysconfig/network
    
    eth0_config'/etc/sysconfig/network-scripts/ifcfg-em1'
    ip`/sbin/ifconfig em1 |grep 'inet addr'|awk -F ' *|:' '{print $4}'`
    mask`/sbin/ifconfig em1 |grep 'inet addr'|awk -F ' *|:' '{print $8}'`
    gateway`netstat -r | grep 'default' | awk '{ print $2}'`
    sed -i 's/dhcp/static/g' $eth0_config
    sed -i 's/ONBOOTno/ONBOOTyes/g' $eth0_config
    
    echo IPADDR`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'` >> $eth0_config
    echo NETMASK`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'` >> $eth0_config
    echo GATEWAY'192.168.199.1' >> $eth0_config
    
    超微服务器(3U8)物理机虚拟化 
    CentOS6.4-x86_64_Virtualization
    
    #platformx86, AMD64, or Intel EM64T
    # System authorization information
    auth  --useshadow  --enablemd5
    # System bootloader configuration
    bootloader --locationmbr
    # Partition clearing information
    clearpart --all --initlabel
    # Use text mode install
    text
    # Firewall configuration
    firewall --disable
    # Run the Setup Agent on first boot
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang zh_CN
    # Use network installation
    #url --url$tree
    url --urlhttp://192.168.199.1/cobbler/links/CentOS6.4-x86_64
    #url --proxy$http_server:3128 --url$tree
    # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
    $yum_repo_stanza
    # Network information
    $SNIPPET('network_config')
    # Reboot after installation
    reboot
    #Root password
    rootpw --iscrypted $default_password_crypted
    user skstsuperadmin --name "skstsuperadmin" --iscrypted --password $default_password_crypted
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # System timezone
    #timezone  America/New_York
    timezone  Asia/Shanghai
    # Install OS instead of upgrade
    install
    # Clear the Master Boot Record
    zerombr
    # Allow anaconda to partition the system as needed
    #autopart
    
    clearpart --all --initlabel
    part /boot --fstype"ext4" --asprimary --size200
    part swap --fstype"swap" --size4096
    part / --fstype"ext4" --size50000
    part /var --fstype"ext4" --grow --size1
    
    
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    
    %packages
    $SNIPPET('func_install_if_enabled')
    $SNIPPET('puppet_install_if_enabled')
    @base
    @chinese-support
    @console-internet
    @legacy-unix
    @system-admin-tools
    @virtualization
    @virtualization-client
    @virtualization-platform
    @virtualization-tools
    ftp
    telnet
    tree
    salt-minion
    puppet
    
    %post
    $SNIPPET('log_ks_post')
    # Start yum configuration 
    $yum_config_stanza
    # End yum configuration
    $SNIPPET('post_install_kernel_options')
    $SNIPPET('post_install_network_config')
    $SNIPPET('func_register_if_enabled')
    $SNIPPET('puppet_register_if_enabled')
    $SNIPPET('download_config_files')
    $SNIPPET('koan_environment')
    $SNIPPET('redhat_register')
    $SNIPPET('cobbler_register')
    # Enable post-install boot notification
    $SNIPPET('post_anamon')
    
    ### Sync Time ###
    
    # Start final steps
    $SNIPPET('kickstart_done')
    # End final steps
    
    echo "ulimit -SHn 65535" >> /etc/rc.local
    echo -e "*    soft   nofile       65535
    *    hard   nofile       65535" >> /etc/security/limits.conf
    sed -i 's#exec /sbin/shutdown -r now##exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.conf
    
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
    sed -i 's/#Port 22/Port 6022/g' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    echo "net.ipv4.tcp_fin_timeout  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time  1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_mem  94500000 915000000 927000000" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_timestamps  0" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_synack_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syn_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle  1" >> /etc/sysctl.conf
    echo "net.core.rmem_max  16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max  16777216" >> /etc/sysctl.conf
    echo "netdev_max_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.somaxconn  262144" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_orphans  3276800" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default  8388608" >> /etc/sysctl.conf
    echo "net.core.rmem_default  8388608" >> /etc/sysctl.conf
    
    echo -e "alias net-pf-10 off
    options ipv6 disable1" >> /etc/security/limits.conf
    echo "NETWORKING_IPV6off" >> /etc/sysconfig/network
    
    eth0_config'/etc/sysconfig/network-scripts/ifcfg-eth0'
    ip`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'`
    mask`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'`
    gateway`netstat -r | grep 'default' | awk '{ print $2}'`
    sed -i 's/dhcp/static/g' $eth0_config
    sed -i 's/ONBOOTno/ONBOOTyes/g' $eth0_config
    
    echo IPADDR`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'` >> $eth0_config
    echo NETMASK`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'` >> $eth0_config
    
    超微服务器2U4物理机 
    CentOS6.4-x86_64_Supermicr-2U4
    
    #platformx86, AMD64, or Intel EM64T
    # System authorization information
    auth  --useshadow  --enablemd5
    # System bootloader configuration
    bootloader --locationmbr
    # Partition clearing information
    clearpart --all --initlabel
    # Use text mode install
    text
    # Firewall configuration
    firewall --disable
    # Run the Setup Agent on first boot
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang zh_CN
    # Use network installation
    #url --url$tree
    url --urlhttp://192.168.199.1/cobbler/links/CentOS6.4-x86_64
    #url --proxy$http_server:3128 --url$tree
    # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
    $yum_repo_stanza
    # Network information
    $SNIPPET('network_config')
    # Reboot after installation
    reboot
    #Root password
    rootpw --iscrypted $default_password_crypted
    user skstsuperadmin --name "skstsuperadmin" --iscrypted --password $default_password_crypted
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # System timezone
    #timezone  America/New_York
    timezone  Asia/Shanghai
    # Install OS instead of upgrade
    install
    # Clear the Master Boot Record
    zerombr
    # Allow anaconda to partition the system as needed
    #autopart
    
    clearpart --all --initlabel
    part /boot --fstype"ext4" --asprimary --size200
    part swap --fstype"swap" --size4096
    part / --fstype"ext4" --size100000
    part /data --fstype"ext4" --grow --size1
    
    
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    
    %packages
    $SNIPPET('func_install_if_enabled')
    $SNIPPET('puppet_install_if_enabled')
    @base
    @chinese-support
    @console-internet
    @legacy-unix
    @system-admin-tools
    ftp
    telnet
    tree
    puppet
    
    %post
    $SNIPPET('log_ks_post')
    # Start yum configuration 
    $yum_config_stanza
    # End yum configuration
    $SNIPPET('post_install_kernel_options')
    $SNIPPET('post_install_network_config')
    $SNIPPET('func_register_if_enabled')
    $SNIPPET('puppet_register_if_enabled')
    $SNIPPET('download_config_files')
    $SNIPPET('koan_environment')
    $SNIPPET('redhat_register')
    $SNIPPET('cobbler_register')
    # Enable post-install boot notification
    $SNIPPET('post_anamon')
    
    ### Sync Time ###
    
    # Start final steps
    $SNIPPET('kickstart_done')
    # End final steps
    
    echo "ulimit -SHn 65535" >> /etc/rc.local
    echo -e "*    soft   nofile       65535
    *    hard   nofile       65535" >> /etc/security/limits.conf
    sed -i 's#exec /sbin/shutdown -r now##exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.conf
    
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
    sed -i 's/#Port 22/Port 6022/g' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    echo "net.ipv4.tcp_fin_timeout  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time  1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_mem  94500000 915000000 927000000" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_timestamps  0" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_synack_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syn_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle  1" >> /etc/sysctl.conf
    echo "net.core.rmem_max  16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max  16777216" >> /etc/sysctl.conf
    echo "netdev_max_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.somaxconn  262144" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_orphans  3276800" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default  8388608" >> /etc/sysctl.conf
    echo "net.core.rmem_default  8388608" >> /etc/sysctl.conf
    
    echo -e "alias net-pf-10 off
    options ipv6 disable1" >> /etc/security/limits.conf
    echo "NETWORKING_IPV6off" >> /etc/sysconfig/network
    
    eth0_config'/etc/sysconfig/network-scripts/ifcfg-eth0'
    ip`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'`
    mask`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'`
    gateway`netstat -r | grep 'default' | awk '{ print $2}'`
    sed -i 's/dhcp/static/g' $eth0_config
    sed -i 's/ONBOOTno/ONBOOTyes/g' $eth0_config
    
    echo IPADDR`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'` >> $eth0_config
    echo NETMASK`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'` >> $eth0_config
    echo "192.168.199.199 puppet" >> /etc/hosts
    chkconfig puppet on
    service puppet start
    
    
    虚拟机 
    CentOS6.4-x86_64_VM-Server
    
    #platformx86, AMD64, or Intel EM64T
    # System authorization information
    auth  --useshadow  --enablemd5
    # System bootloader configuration
    bootloader --locationmbr
    # Partition clearing information
    clearpart --all --initlabel
    # Use text mode install
    text
    # Firewall configuration
    firewall --disable
    # Run the Setup Agent on first boot
    firstboot --disable
    # System keyboard
    keyboard us
    # System language
    lang zh_CN
    # Use network installation
    #url --url$tree
    url --urlhttp://192.168.199.1/cobbler/links/CentOS6.4-x86_64
    #url --proxy$http_server:3128 --url$tree
    # If any cobbler repo definitions were referenced in the kickstart profile, include them here.
    $yum_repo_stanza
    # Network information
    $SNIPPET('network_config')
    # Reboot after installation
    reboot
    #Root password
    rootpw --iscrypted $default_password_crypted
    user skstsuperadmin --name "skstsuperadmin" --iscrypted --password $default_password_crypted
    # SELinux configuration
    selinux --disabled
    # Do not configure the X Window System
    skipx
    # System timezone
    #timezone  America/New_York
    timezone  Asia/Shanghai
    # Install OS instead of upgrade
    install
    # Clear the Master Boot Record
    zerombr
    # Allow anaconda to partition the system as needed
    #autopart
    
    clearpart --all --initlabel
    part /boot --fstype"ext4" --asprimary --size200
    part swap --fstype"swap" --size4096
    #part /nova-volume --fstype"ext4" --size200000
    #part / --fstype"ext4" --size50000
    part / --fstype"ext4" --grow --size1
    
    
    
    
    %pre
    $SNIPPET('log_ks_pre')
    $SNIPPET('kickstart_start')
    $SNIPPET('pre_install_network_config')
    # Enable installation monitoring
    $SNIPPET('pre_anamon')
    
    %packages
    $SNIPPET('func_install_if_enabled')
    $SNIPPET('puppet_install_if_enabled')
    @base
    @chinese-support
    @console-internet
    @legacy-unix
    @system-admin-tools
    ftp
    telnet
    tree
    puppet
    
    %post
    $SNIPPET('log_ks_post')
    # Start yum configuration 
    $yum_config_stanza
    # End yum configuration
    $SNIPPET('post_install_kernel_options')
    $SNIPPET('post_install_network_config')
    $SNIPPET('func_register_if_enabled')
    $SNIPPET('puppet_register_if_enabled')
    $SNIPPET('download_config_files')
    $SNIPPET('koan_environment')
    $SNIPPET('redhat_register')
    $SNIPPET('cobbler_register')
    # Enable post-install boot notification
    $SNIPPET('post_anamon')
    
    ### Sync Time ###
    
    # Start final steps
    $SNIPPET('kickstart_done')
    # End final steps
    
    echo "ulimit -SHn 65535" >> /etc/rc.local
    echo -e "*    soft   nofile       65535
    *    hard   nofile       65535" >> /etc/security/limits.conf
    sed -i 's#exec /sbin/shutdown -r now##exec /sbin/shutdown -r now#' /etc/init/control-alt-delete.conf
    
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
    sed -i 's/#Port 22/Port 6022/g' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config
    
    echo "net.ipv4.tcp_fin_timeout  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_keepalive_time  1200" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_mem  94500000 915000000 927000000" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_reuse  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_timestamps  0" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_synack_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_syn_retries  1" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_tw_recycle  1" >> /etc/sysctl.conf
    echo "net.core.rmem_max  16777216" >> /etc/sysctl.conf
    echo "net.core.wmem_max  16777216" >> /etc/sysctl.conf
    echo "netdev_max_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.somaxconn  262144" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_orphans  3276800" >> /etc/sysctl.conf
    echo "net.ipv4.tcp_max_syn_backlog  262144" >> /etc/sysctl.conf
    echo "net.core.wmem_default  8388608" >> /etc/sysctl.conf
    echo "net.core.rmem_default  8388608" >> /etc/sysctl.conf
    
    echo -e "alias net-pf-10 off
    options ipv6 disable1" >> /etc/security/limits.conf
    echo "NETWORKING_IPV6off" >> /etc/sysconfig/network
    
    eth0_config'/etc/sysconfig/network-scripts/ifcfg-eth0'
    ip`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'`
    mask`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'`
    gateway`netstat -r | grep 'default' | awk '{ print $2}'`
    sed -i 's/dhcp/static/g' $eth0_config
    sed -i 's/ONBOOTno/ONBOOTyes/g' $eth0_config
    
    echo IPADDR`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $4}'` >> $eth0_config
    echo NETMASK`/sbin/ifconfig eth0 |grep 'inet addr'|awk -F ' *|:' '{print $8}'` >> $eth0_config
    echo GATEWAY'192.168.199.1' >> $eth0_config
    
     安装实战(超微3U8) 
    列出3U8服务器宿主机和虚拟机ip分配
    
    ^服务器类型^宿主机名^主机名^虚拟机^
    |3U8|apphost-05-zhaowei-bj|apphost-chinacache-bj-199.107|app-chinacache-bj-199.49|
    |:::|:::|:::|app-chinacache-bj-199.64|
    |:::|:::|:::|app-chinacache-bj-199.68|
    |:::|:::|:::|app-chinacache-bj-199.70|
    |:::|:::|apphost-chinacache-bj-199.108|app-chinacache-bj-199.71|
    |:::|:::|:::|app-chinacache-bj-199.72|
    |:::|:::|:::|app-chinacache-bj-199.73|
    |:::|:::|:::|app-chinacache-bj-199.74|
    |:::|:::|apphost-chinacache-bj-199.109|app-chinacache-bj-199.75|
    |:::|:::|:::|app-chinacache-bj-199.76|
    |:::|:::|:::|app-chinacache-bj-199.77|
    |:::|:::|:::|app-chinacache-bj-199.78|
    |:::|:::|apphost-chinacache-bj-199.110|app-chinacache-bj-199.79|
    |:::|:::|:::|app-chinacache-bj-199.91|
    |:::|:::|:::|app-chinacache-bj-199.92|
    |:::|:::|:::|app-chinacache-bj-199.93|
    |:::|:::|apphost-chinacache-bj-199.111|app-chinacache-bj-199.94|
    |:::|:::|:::|app-chinacache-bj-199.95|
    |:::|:::|:::|app-chinacache-bj-199.96|
    |:::|:::|:::|app-chinacache-bj-199.97|
    |:::|:::|apphost-chinacache-bj-199.112|app-chinacache-bj-199.98|
    |:::|:::|:::|app-chinacache-bj-199.99|
    |:::|:::|:::|app-chinacache-bj-199.100|
    |:::|:::|:::|app-chinacache-bj-199.101|
    |:::|:::|apphost-chinacache-bj-199.113|app-chinacache-bj-199.102|
    |:::|:::|:::|app-chinacache-bj-199.103|
    |:::|:::|:::|app-chinacache-bj-199.104|
    |:::|:::|:::|app-chinacache-bj-199.105|
    |:::|:::|apphost-chinacache-bj-199.114|app-chinacache-bj-199.106|
    |:::|:::|:::|app-chinacache-bj-199.124|
    |:::|:::|:::|app-chinacache-bj-199.125|
    |:::|:::|:::|app-chinacache-bj-199.126|
    |3U8|apphost-06-zhaowei-bj|apphost-chinacache-bj-199.115|app-chinacache-bj-199.30|
    |:::|:::|:::|app-chinacache-bj-199.31|
    |:::|:::|apphost-chinacache-bj-199.116|app-chinacache-bj-199.32|
    |:::|:::|:::|app-chinacache-bj-199.34|
    |:::|:::|apphost-chinacache-bj-199.117|app-chinacache-bj-199.35|
    |:::|:::|:::|app-chinacache-bj-199.36|
    |:::|:::|apphost-chinacache-bj-199.118|app-chinacache-bj-199.38|
    |:::|:::|:::|app-chinacache-bj-199.39|
    |:::|:::|apphost-chinacache-bj-199.119|app-chinacache-bj-199.41|
    |:::|:::|:::|app-chinacache-bj-199.42|
    |:::|:::|apphost-chinacache-bj-199.121|app-chinacache-bj-199.43|
    |:::|:::|:::|app-chinacache-bj-199.44|
    |:::|:::|apphost-chinacache-bj-199.122|app-chinacache-bj-199.45|
    |:::|:::|:::|app-chinacache-bj-199.46|
    |:::|:::|apphost-chinacache-bj-199.123|app-chinacache-bj-199.47|
    |:::|:::|:::|app-chinacache-bj-199.48|
    生成虚拟机mac地址 
    登录cobbler服务器(192.168.199.1)的/root/sh目录下
    将虚拟机主机列表提出至文件\
    hostname.txt
      app-chinacache-bj-199-49
      app-chinacache-bj-199-64
      app-chinacache-bj-199-68
    建立主机名、ip、mac地址对应列表,执行以下脚本
      sh create_vmlist.sh #会生成vmlist文件
    create_vmlist.sh
    
    #!/bin/bash
    while read line
    do
    echo $line > /tmp/iptmp
    ipt`awk -F'-' '{print $NF}' /tmp/iptmp`
    mac`python create_mac.py`
    echo "$line.chosk.net|192.168.199.$ipt|$mac" >> vmlist
    done < hostname.txt
    
    vmlist文件内容如下
    
    ^主机名^ip^mac地址^
    |app-chinacache-bj-199-49.chosk.net|192.168.199.49|00:16:3e:04:fb:de|
    |app-chinacache-bj-199-64.chosk.net|192.168.199.64|00:16:3e:69:a1:cd|
    |app-chinacache-bj-199-68.chosk.net|192.168.199.68|00:16:3e:08:1e:b6|
    |app-chinacache-bj-199-70.chosk.net|192.168.199.70|00:16:3e:68:af:53|
    |app-chinacache-bj-199-71.chosk.net|192.168.199.71|00:16:3e:0a:37:28|
    |app-chinacache-bj-199-72.chosk.net|192.168.199.72|00:16:3e:49:9c:41|
    |app-chinacache-bj-199-73.chosk.net|192.168.199.73|00:16:3e:47:a0:30|
    |app-chinacache-bj-199-74.chosk.net|192.168.199.74|00:16:3e:73:bd:b4|
    |app-chinacache-bj-199-75.chosk.net|192.168.199.75|00:16:3e:7f:04:e5|
    |app-chinacache-bj-199-76.chosk.net|192.168.199.76|00:16:3e:48:dd:2d|
    |app-chinacache-bj-199-77.chosk.net|192.168.199.77|00:16:3e:7e:53:3f|
    |app-chinacache-bj-199-78.chosk.net|192.168.199.78|00:16:3e:3b:32:52|
    |app-chinacache-bj-199-79.chosk.net|192.168.199.79|00:16:3e:65:4c:e2|
    |app-chinacache-bj-199-91.chosk.net|192.168.199.91|00:16:3e:06:06:8f|
    |app-chinacache-bj-199-92.chosk.net|192.168.199.92|00:16:3e:46:73:49|
    |app-chinacache-bj-199-93.chosk.net|192.168.199.93|00:16:3e:3f:8c:ec|
    |app-chinacache-bj-199-94.chosk.net|192.168.199.94|00:16:3e:6c:61:21|
    |app-chinacache-bj-199-95.chosk.net|192.168.199.95|00:16:3e:4a:24:54|
    |app-chinacache-bj-199-96.chosk.net|192.168.199.96|00:16:3e:7f:23:98|
    |app-chinacache-bj-199-97.chosk.net|192.168.199.97|00:16:3e:72:6f:e8|
    |app-chinacache-bj-199-98.chosk.net|192.168.199.98|00:16:3e:20:ca:9e|
    |app-chinacache-bj-199-99.chosk.net|192.168.199.99|00:16:3e:72:a1:80|
    |app-chinacache-bj-199-100.chosk.net|192.168.199.100|00:16:3e:64:22:c6|
    |app-chinacache-bj-199-101.chosk.net|192.168.199.101|00:16:3e:61:32:93|
    |app-chinacache-bj-199-102.chosk.net|192.168.199.102|00:16:3e:06:a9:11|
    |app-chinacache-bj-199-103.chosk.net|192.168.199.103|00:16:3e:0f:b1:e9|
    |app-chinacache-bj-199-104.chosk.net|192.168.199.104|00:16:3e:15:06:6a|
    |app-chinacache-bj-199-105.chosk.net|192.168.199.105|00:16:3e:44:68:3f|
    |app-chinacache-bj-199-106.chosk.net|192.168.199.106|00:16:3e:24:02:36|
    |app-chinacache-bj-199-124.chosk.net|192.168.199.124|00:16:3e:11:3d:51|
    |app-chinacache-bj-199-125.chosk.net|192.168.199.125|00:16:3e:03:06:2b|
    |app-chinacache-bj-199-126.chosk.net|192.168.199.126|00:16:3e:42:a0:b0|
    |app-chinacache-bj-199-30.chosk.net|192.168.199.30|00:16:3e:06:c8:d8|
    |app-chinacache-bj-199-31.chosk.net|192.168.199.31|00:16:3e:21:75:e6|
    |app-chinacache-bj-199-32.chosk.net|192.168.199.32|00:16:3e:0a:bd:f2|
    |app-chinacache-bj-199-34.chosk.net|192.168.199.34|00:16:3e:46:21:50|
    |app-chinacache-bj-199-35.chosk.net|192.168.199.35|00:16:3e:7e:60:77|
    |app-chinacache-bj-199-36.chosk.net|192.168.199.36|00:16:3e:7c:cd:a7|
    |app-chinacache-bj-199-38.chosk.net|192.168.199.38|00:16:3e:7a:a1:4c|
    |app-chinacache-bj-199-39.chosk.net|192.168.199.39|00:16:3e:0c:f3:1e|
    |app-chinacache-bj-199-41.chosk.net|192.168.199.41|00:16:3e:39:b9:f8|
    |app-chinacache-bj-199-42.chosk.net|192.168.199.42|00:16:3e:6c:6d:24|
    |app-chinacache-bj-199-43.chosk.net|192.168.199.43|00:16:3e:47:68:8a|
    |app-chinacache-bj-199-44.chosk.net|192.168.199.44|00:16:3e:00:01:42|
    |app-chinacache-bj-199-45.chosk.net|192.168.199.45|00:16:3e:15:ee:62|
    |app-chinacache-bj-199-46.chosk.net|192.168.199.46|00:16:3e:24:f6:e6|
    |app-chinacache-bj-199-47.chosk.net|192.168.199.47|00:16:3e:35:3f:a7|
    |app-chinacache-bj-199-48.chosk.net|192.168.199.48|00:16:3e:71:99:dd|
    
    将指定的主机名、ip和mac地址的对应关系添加到dhcpd的配置文件中
    执行set_host_ip.sh
    
    while read line
    do
    echo $line > /tmp/vm
    hostname`awk -F'|' '{print $2}' /tmp/vm`
    ipadd`awk -F'|' '{print $3}' /tmp/vm`
    mac`awk -F'|' '{print $4}' /tmp/vm`
    echo "host $hostname {" >> /etc/dhcp/dhcpd.conf
    echo "option host-name "$hostname";" >> /etc/dhcp/dhcpd.conf
    echo "fixed-address $ipadd;" >> /etc/dhcp/dhcpd.conf
    echo "hardware ethernet $mac;" >> /etc/dhcp/dhcpd.conf
    echo "}" >> /etc/dhcp/dhcpd.conf
    done < vmlist
    /etc/init.d/dhcpd restart
    
     安装虚拟机方法 
    以安装192.168.199.117的虚拟机为例
      wget http://192.168.199.1/briage.sh
      sh briage.sh 117 #建立网桥br0,修改主机名、ip等信息
    briage.sh
    
    #!/bin/bash
    ip$1
    sed -i "s/localhost.localdomain/apphost-chinacache-bj-199-$ip.chosk.net/g" /etc/sysconfig/network
    hostname apphost-chinacache-bj-199-$ip.chosk.net
    echo 192.168.199.$ip apphost-chinacache-bj-199-$ip.chosk.net >> /etc/hosts
    echo BRIDGEbr0 >> /etc/sysconfig/network-scripts/ifcfg-eth0
    
    cat >> /etc/sysconfig/network-scripts/ifcfg-br0 << EOF
    DEVICEbr0
    BOOTPROTOnone
    BROADCAST192.168.199.255
    IPADDR192.168.199.$ip
    NETMASK255.255.255.0
    ONBOOTyes
    GATEWAY192.168.199.1
    USERCTLno
    IPV6INITno
    PEERDNSyes
    #bridgebr0
    TYPEBridge
    EOF
    service network restart
    
    此时会重启网卡,重新连接修改后的ip地址,执行以下脚本
      wget http://192.168.199.1/create-vm.sh
    
    #!/bin/bash
    
    grep $1.chosk.net vmlist > /tmp/hostip 
    mac`awk -F'|' '{print $4}' /tmp/hostip`
    
    qemu-img create -f qcow2 /var/lib/libvirt/images/app-chinacache-bj-199-$1.chosk.net.img 80G
    virt-install --name app-chinacache-bj-199.$1.chosk.net --ram 4096 --vcpus2 --pxe --disk path/var/lib/libvirt/images/app-chinacache-bj-199-$1.chosk.net.img --network bridgebr0 -m $mac --hvm --noautoconsole --debug
    
      wget http://192.168.199.1/vmlist
      sh create-vm.sh 35
      sh create-vm.sh 36
    进入virt-manager进行选择安装操作系统
    
  • 相关阅读:
    在asp.net中执行存储过程(转)
    Linux DM9000网卡驱动程序完全分析
    Linux内核态抢占机制分析(转)
    操作系统原理(转)
    Keil4 每次选build 编译(F7)都全部编译的解决办法
    内核必看: spinlock、 mutex 以及 semaphore
    linux内核代码container_of
    Win10玩魔兽争霸不能全屏显示的设置教程
    在vmware里面免费安装纯净的xp虚拟机
    IAR之工程配置
  • 原文地址:https://www.cnblogs.com/shantu/p/4589833.html
Copyright © 2020-2023  润新知