PXE+HTTP+TFP+DHCP自动化部署

PXE全自动化部署
1、部署安装环境
  1.1安装http
     [root@NTP ~]# yum install httpd �y
     [root@NTP ~]# chkconfig httpd on
     [root@NTP ~]# service httpd start
  1.2安装tftp
     [root@NTP ~]# yum -y install tftp-server
     [root@NTP ~]# vi /etc/xinetd.d/tftp
            service tftp
              {
                    socket_type             = dgram
                    protocol                = udp
                    wait                    = yes
                    user                    = root
                    server                  = /usr/sbin/in.tftpd
                    server_args             = -s /var/lib/tftpboot
                    disable                 = no                #yes改为no
                    per_source              = 11
                    cps                     = 100 2
                    flags                   = IPv4
              }
     [root@NTP ~]# /etc/init.d/xinetd restart
     [root@NTP ~]# chkconfig xinetd on
  1.3安装selinux
     [root@NTP ~]# yum -y install syslinux
  1.4安装DHCP
     [root@NTP ~]# yum -y install dhcp
     [root@NTP ~]# vi /etc/dhcp/dhcpd.conf
            ddns-update-style none;
            ignore client-updates;
            subnet 10.11.22.0 netmask 255.255.255.0 {
                option routers 10.11.22.189;     #//  dhcp地址
                option subnet-mask 255.255.255.0;
                default-lease-time 21600;
                max-lease-time 43200;
                range  10.11.22.240 10.11.22.250;
                filename "pxelinux.0";
                next-server 10.11.22.189;           #//http 地址
                host server1 {
                server-name "192.168.1.152";
                next-server 192.168.1.152;
                hardware ethernet A4:BA:DB:36:10:41;
                fixed-address 192.168.1.241;
                filename "/pxelinux.0";
                }
            }
     [root@NTP ~]# service dhcpd restart
  1.5挂在光盘
     [root@NTP ~]# mount /dev/cdrom /mnt 
     [root@NTP ~]# cp -a /mnt/cdrom/* /var/www/html/    #复制光盘内容
  1.6复制启动所需文件
     [root@NTP ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
     [root@NTP ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
     [root@NTP ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
     [root@NTP ~]# cp /mnt/isolinux/*.msg /var/lib/tftpboot/
     [root@NTP ~]# mkdir /var/lib/tftpboot/pxelinux.cfg 
     [root@NTP ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
2、配置default文件
     [root@NTP ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
            default ks   #默认启动的是 'label ks' 中标记的启动内核
            prompt 1     #显示 'boot: ' 提示符。为 '0' 时则不提示,将会直接启动 'default' 
                          参数中指定的内容。
            timeout 6   #在用户输入之前的超时时间,单位为 1/10 秒。
            display boot.msg  #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/
                               目录下。
            F1 boot.msg  #按下 'F1' 这样的键后显示的文件。
            F2 options.msg
            F3 general.msg
            F4 param.msg
            F5 rescue.msg
            label linux       #'label' 指定你在 'boot:' 提示符下输入的关键字,比如boot: linux[ENTER]
                            ,这个会启动'label linux' 下标记的kernel 和initrd.img 文件。
              kernel vmlinuz    #kernel 参数指定要启动的内核。
              append initrd=initrd.img   #append指定追加给内核的参数,能够在grub里使用的追加给
                                        内核的参数,在这里也都可以使用。
            label text
            kernel vmlinuz
              append initrd=initrd.img text
            label ks
              kernel vmlinuz
              append ks=http://10.11.22.189/ks.cfg initrd=initrd.img    #告诉系统,从哪里获取ks.cfg文件
            label local
            localboot 1
            label memtest86
            kernel memtest
            append - 
3、配置KS.CFG文件
     [root@NTP ~]# vi /var/www/html/ks.cfg
         #version=DEVEL
         # Firewall configuration
         firewall --disabled     #关闭防火墙
         # Install OS instead of upgrade
         install      #表示安装系统而不是升级
         text         #text安装
         # Use network installation
         url --url=http://10.11.22.189/   #安装介质的路径
         # Root password
         rootpw  13790583593  #使用明文密码
         #rootpw --iscrypted  #密文密码
         # System authorization information
         auth  --useshadow  --enablemd5   #系统认证信息
         # Use graphical install
         graphical
         firstboot --disable   #禁止安装后的Agent设置
         # System keyboard
         keyboard us     #键盘布局
         # System language
         lang en_US      #字符集设置
         # SELinux configuration
         selinux --disabled   #关闭selinux
         # Installation logging level
         logging --level=info   #设置日志级别
         # System timezone
         timezone  --isUtc Asia/Shanghai  #设置系统时区
         # Network information
         network  --bootproto=dhcp --device=eth0 --onboot=on
         #network --device eth0 --bootproto static --ip 10.11.22.250 --netmask 255.255.255.0 --gateway 10.11.22.1 --nameserver 202.96.128.86 --hostname leamon   #网卡设置,主机名
         # System bootloader configuration
         #key --skip    #跳过秘钥认证,centos可以不用此项
         bootloader --append="rhgb quiet" --location=mbr --driveorder=sda   #系统引导相关设置
         # Clear the Master Boot Record
         zerombr  #清除MBR引导信息
         # Partition clearing information
         clearpart --all --initlabel
         #clearpart --all   #清除所有分区
         #clearpart --all --drives=sda  #清除sda上的所有分区
         #clearpart --linux   #清除llinux分区
         # Disk partitioning information
         part swap --fstype="swap" --size=1024
         part /boot --fstype="ext4" --size=200
         part / --fstype="ext4" --size=1 --grow --asprimary
         # Reboot after installation
         reboot
         %packages
         #ntp
         #experct
         @base
         @core
         %post
         #设置DNS
         echo "nameserver 202.96.128.86" > /etc/resolv.conf
         #echo "nameserver 8.8.4.4" >> /etc/resolv.conf
         #同步时间
         ntpdate cn.pool.ntp.org
         hwclock --systohc
         echo -e "*/3 * * * * root /usr/sbin/ntpdate cn.pool.ntp.org > /dev/null" >> /etc/crontab
         service crond restart
         #添加组
         #groupadd maintain
         #groupadd develop
         #mkdir -p /home/maintain
         #mkdir -p /home/develop
         #添加用户
         useradd  user01 
         echo "123456"|passwd  --stdin user01
         #禁止root用户直接登录系统
         #sed -i "s/#PermitRootLogin yes/PermitRootLogin no/g" '/etc/ssh/sshd_config'
         #service sshd restart
         #优化系统内核
         echo -e "ulimit -c unlimited" >> /etc/profile
         echo -e "ulimit -s unlimited" >> /etc/profile
         echo -e "ulimit -SHn 65535" >> /etc/profile
         source /etc/profile
         sed -i "s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g" '/etc/sysctl.conf'
         echo -e "net.core.somaxconn = 262144" >> /etc/sysctl.conf
         echo -e "net.core.netdev_max_backlog = 262144" >> /etc/sysctl.conf
         echo -e "net.core.wmem_default = 8388608" >> /etc/sysctl.conf
         echo -e "net.core.rmem_default = 8388608" >> /etc/sysctl.conf
         echo -e "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
         echo -e "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
         echo -e "net.ipv4.netfilter.ip_conntrack_max = 131072" >> /etc/sysctl.conf
         echo -e "net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180" >> /etc/sysctl.conf
         echo -e "net.ipv4.route.gc_timeout = 20" >> /etc/sysctl.conf
         echo -e "net.ipv4.ip_conntrack_max = 819200" >> /etc/sysctl.conf
         echo -e "net.ipv4.ip_local_port_range = 10024 65535" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_retries2 = 5" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_syn_retries = 1" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_synack_retries = 1" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_tw_recycle = 1" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_tw_len = 1" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_keepalive_time = 120" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_keepalive_probes = 3" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_keepalive_intvl = 15" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_max_tw_buckets = 36000" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_max_orphans = 3276800" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_max_syn_backlog = 262144" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_wmem = 8192 131072 16777216" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_rmem = 32768 131072 16777216" >> /etc/sysctl.conf
         echo -e "net.ipv4.tcp_mem = 94500000 915000000 927000000" >> /etc/sysctl.conf
         /sbin/sysctl -p
         #执行外部脚本
         #cd /root
         #wget http://10.11.22.189/autoip.sh
         #sh /root/autoip.sh
         #:wq! #保存退出
         #%end

你可能感兴趣的:(部署,自动化,pxe)