zoukankan      html  css  js  c++  java
  • Liunx之Centos系统无人值守全自动化安装

      作者:邓聪聪

    定制centos6.8自动安装ISO光盘

    1. 安装系统为centos6.8 (base server),安装方式为全新安装
    2. 使用ext4分区格式
    3. 安装前可以交互输入root密码,主机名,分区大小,然后安装过程自动化
    4. 关闭防火墙,selinux
    5. 网络为dhcp方式获取
    6. 时区为Asia/Shanghai
    7. 分区表类型为mbr
    8. 默认设置三个分区,boot分区200M,swap分区200M,其余为根分区

    安装步骤

    安装制作系统镜像所需要的工具

    yum -y install  mkisofs createrepo

    创建光盘挂载目录、资源重构目录、自定义数据库目录

    mkdir /mnt/iso (挂载光盘)
    mkdir /data/iso (ISO目录)

    挂载CentOS系统光盘,并复制光盘目录下的内容到其他路径下,由于光盘内容权限为“只读”,可赋予权限直接修改或者cp新文件给权限修改。

    mount -o loop /data/iso/CentOS-6.8-x86_64-minimal.iso /mnt/iso

    创建自响应文件 ks.cfg ,把此文件放在/data/iso/isolinux/ks.cfg

    #version=DEVEL
    # Firewall configuration
    firewall  --disabled
    # Install OS instead of upgrade
    install
    # Use CDROM installation media
    cdrom
    #interactive
    # Root password
    rootpw --plaintext 123456
    # System authorization information
    auth --useshadow --passalgo=sha512
    # Use text mode install
    #text
    # System keyboard
    keyboard us
    # System language
    lang en_US
    # SELinux configuration
    selinux --disabled
    network --onboot=yes --device=eth0 --bootproto=dhcp --noipv6
    # Do not configure the X Window System
    skipx
    # Installation logging level
    logging --level=info
    # Reboot after installation
    reboot
    # System timezone
    timezone --isUtc Asia/Shanghai
    # System bootloader configuration
    bootloader --location=mbr
    # Clear the Master Boot Record
    zerombr
    # Partition clearing information
    clearpart --all --initlabel 
    # Disk partitioning information
    part /boot --fstype="ext4" --size=200
    part swap --fstype="swap" --size=200
    part / --fstype="ext4" --grow --size=1

    repo --name="CactiEZ"  --baseurl=file:///mnt/source --cost=100
    %packages --nobase @core

      %post --nochroot
      mkdir -p /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1
      cp /mnt/source/Packages/cactiez-x86_64.tgz /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1

    %post

      cd /tmp/cactiez >> /tmp/ins.log 2>&1
      tar zxvf cactiez-x86_64.tgz >> /tmp/ins.log 2>&1

      cp -rf /tmp/cactiez/var/www/html/* /var/www/html >> /tmp/ins.log 2>&1
      cp -rf /tmp/cactiez/usr/* /usr >> /tmp/ins.log 2>&1
      cp -rf /tmp/cactiez/etc/* /etc >> /tmp/ins.log 2>&1

    sed -i "s/GSSAPIAuthentication no/GSSAPIAuthentication yes/g" /etc/ssh/sshd_config
    sed -i "s/#UseDNS yes/UseDNS no/g" /etc/ssh/sshd_config
    echo "nameserver 219.141.140.10" >> /etc/resolv.conf
    /sbin/chkconfig iptables off
    %end

     修改启动安装导向文件/data/iso/isolinux/isolinux.cfg,下面为修改后内容

    default vesamenu.c32 
    #prompt 1 
    timeout 50
    menu background splash.jpg 
    menu title Welcome to use CentOS 6.8! 
    menu color border 0 #ffffffff #00000000 
    menu color sel 7 #ffffffff #ff000000 
    menu color title 0 #ffffffff #00000000 
    menu color tabmsg 0 #ffffffff #00000000 
    menu color unsel 0 #ffffffff #00000000 
    menu color hotsel 0 #ff000000 #ffffffff 
    menu color hotkey 7 #ffffffff #ff000000 
    menu color scrollbar 0 #ffffffff #00000000
    label linux
    menu label ^Install PowerSoft OS
    menu default 
    kernel vmlinuz 
    append ks=cdrom:/isolinux/ks.cfg initrd=initrd.img
    label vesa 
    menu label Install system with ^basic video driver 
    kernel vmlinuz 
    append initrd=initrd.img xdriver=vesa nomodeset 
    label rescue 
    menu label ^Rescue installed system 
    kernel vmlinuz 
    append initrd=initrd.img rescue 
    label local
    menu label Boot from ^local drive 
    localboot 0xffff 
    label memtest86 
    menu label ^Memory test
    kernel memtest 
    append -

    定制ISO光盘所需的数据

    .discinfo文件 一定要复制过来,建议复制完之后检查该文件是否存在!!!
    rm -fr /data/iso/repodata
    declare -x discinfo=$(head -1 .discinfo)
    cp /mnt/iso/repodata/*-c6-minimal-x86_64.xml ./c6-minimal-x86_64.xml cd .. createrepo -g repodata/c6-x86_64-comps.xml ./

    重构系统,生成ISO镜像 --用于CentOS6.此步骤需要在iso的配置文件主目录中我这里是(/data/iso/

    mkisofs -o CentOS-6.5_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /data/iso/

     重构系统,生成ISO镜像 --用于CentOS 7 

    genisoimage -v -cache-inodes -joliet-long -R -J -T -V CENTOS7 -o /root/centos7.iso -c isolinux/boot.cat  -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -b images/efiboot.img -no-emul-boot .

    在CentOS7 中无法使用%post的参数ks.cfg配置文件如下:

    #version=DEVEL
    install
    # System authorization information
    auth --enableshadow --passalgo=sha512
    # Use CDROM installation media
    cdrom
    # Use graphical install
    #graphical
    text
    # Run the Setup Agent on first boot
    firstboot --disabled
    ignoredisk --only-use=sda
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    # System language
    lang en_US.UTF-8

    # Network information
    network --bootproto=dhcp --device=ens33 --onboot=yes --ipv6=auto --no-activate
    network --hostname=begon

    # Root password
    rootpw 12345678
    firewall --disabled
    selinux --disabled
    # System services
    services --disabled="chronyd"
    # System timezone
    timezone Asia/Shanghai --isUtc --nontp
    # System bootloader configuration
    bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
    #autopart --encrypted --type=lvm
    bootloader location=mbr
    clearpart --all --initlabel
    part swap --asprimary --fstype="swap" --size=1024
    part /boot --fstype xfs --size=300
    part / --fstype xfs --size=1 --grow
    #Reboot after installation
    reboot --eject

    %packages
    @^minimal
    @core
    kexec-tools

    %end

    %post
    systemctl stop firewalld
    sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

    %end

    %addon com_redhat_kdump --enable --reserve-mb='auto'

    %end

    在CentOS7 中isolinux.cfg配置文件如下:

    [root@bogon isolinux]# cat isolinux.cfg 
    default vesamenu.c32
    timeout 30
    
    display boot.msg
    
    # Clear the screen when exiting the menu, instead of leaving the menu displayed.
    # For vesamenu, this means the graphical background is still displayed without
    # the menu itself for as long as the screen remains in graphics mode.
    menu clear
    menu background splash.png
    menu title CentOS 7
    menu vshift 8
    menu rows 18
    menu margin 8
    #menu hidden
    menu helpmsgrow 15
    menu tabmsgrow 13
    
    # Border Area
    menu color border * #00000000 #00000000 none
    
    # Selected item
    menu color sel 0 #ffffffff #00000000 none
    
    # Title bar
    menu color title 0 #ff7ba3d0 #00000000 none
    
    # Press [Tab] message
    menu color tabmsg 0 #ff3a6496 #00000000 none
    
    # Unselected menu item
    menu color unsel 0 #84b8ffff #00000000 none
    
    # Selected hotkey
    menu color hotsel 0 #84b8ffff #00000000 none
    
    # Unselected hotkey
    menu color hotkey 0 #ffffffff #00000000 none
    
    # Help text
    menu color help 0 #ffffffff #00000000 none
    
    # A scrollbar of some type? Not sure.
    menu color scrollbar 0 #ffffffff #ff355594 none
    
    # Timeout msg
    menu color timeout 0 #ffffffff #00000000 none
    menu color timeout_msg 0 #ffffffff #00000000 none
    
    # Command prompt text
    menu color cmdmark 0 #84b8ffff #00000000 none
    menu color cmdline 0 #ffffffff #00000000 none
    
    # Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
    
    menu tabmsg Press Tab for full configuration options on menu items.
    
    menu separator # insert an empty line
    menu separator # insert an empty line
    
    label linux
      menu label ^Install CentOS 7
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
    
    
    label check
      menu label Test this ^media & install CentOS 7
      menu default
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
    
    label linux
      menu label ^Install CentOS7 CentOS7.4
      menu default
      kernel vmlinuz
      append initrd=initrd.img ks=cdrom:/isolinux/ks.cfg
    
    menu separator # insert an empty line
    
    # utilities submenu
    menu begin ^Troubleshooting
      menu title Troubleshooting
    
    
    label vesa
      menu indent count 5
      menu label Install CentOS 7 in ^basic graphics mode
      text help
            Try this option out if you're having trouble installing
            CentOS 7.
      endtext
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 xdriver=vesa nomodeset quiet
    
    label rescue
      menu indent count 5
      menu label ^Rescue a CentOS system
      text help
            If the system will not boot, this lets you access files
            and edit config files to try to get it booting again.
      endtext
      kernel vmlinuz
      append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
    
    label memtest
      menu label Run a ^memory test
      text help
            If your system is having issues, a problem with your
            system's memory may be the cause. Use this utility to
            see if the memory is working correctly.
      endtext
      kernel memtest
    
    menu separator # insert an empty line
    
    label local
      menu label Boot from ^local drive
      localboot 0xffff
    
    menu separator # insert an empty line
    menu separator # insert an empty line
    
    label returntomain
      menu label Return to ^main menu
      menu exit
    
    menu end
  • 相关阅读:
    css小随笔
    正则表达式的疑问
    笔记本各型号CPU性能比较
    调整Ajax的ValidatorCalloutExtender绑定后的提示字体
    GridView显示空表头
    VB.net检测输入内容
    asp.net中System.DateTime.Now.ToString()的一些用法
    收藏的手机论坛
    常用或者将要用的技巧或代码(网摘)
    使用Ajax的MaskedEditExtender来限制输入内容
  • 原文地址:https://www.cnblogs.com/dengcongcong/p/8176187.html
Copyright © 2011-2022 走看看