zoukankan      html  css  js  c++  java
  • Centos7.7的ks.cfg文件

    下面只是ks.cfg的文件配置,里面照原版的改了一部分,原文的全部配置及方法如下:

            定制化centos7.5的镜像

    这里的ks.cfg包含升级优化openssh及openssl之类,设置其他的默认参数等,没有大改,只是优化一下

    # Kickstart file automatically generated by anaconda.
    # version=DEVEL
    
    #-------------------------------------------------------------------------------
    # Command section --- must include the required options.
    #-------------------------------------------------------------------------------
    
    # Text mode or graphical mode?
    text
    #graphical
    firstboot --disable
    
    # Install or upgrade?
    install
    
    # Use CDROM installation media
    cdrom
    
    # Network information
    # network --onboot yes --device eth0 --bootproto dhcp --noipv6
    # network --hostname=localhost.localdomain
    
    # System authorization information
    auth --enableshadow --passalgo=sha512
    
    # Root password
    rootpw --iscrypted $1$n5Jfcfwa$//2gZpFMJypdiXEF8ld6O.
    
    # System services,禁用chronyd,防止与ntpd冲突
    services --disabled="chronyd"
    
    # System timezone
    timezone Asia/Shanghai
    
    # Keyboard layouts
    keyboard --vckeymap=us --xlayouts='us'
    
    # System language
    lang en_US.UTF-8
    
    # Firewall configuration
    firewall --disabled
    
    # SELinux configuration
    selinux --disabled
    
    # Installation logging level
    logging --level=info
    
    # Reboot after installation
    halt
    
    #-------------------------------------------------------------------------------
    # The %pre sections
    #-------------------------------------------------------------------------------
    %include /tmp/part-include
    %pre
    #!/bin/sh
    
    #-------------------------------------------------------------------------------
    # 非超微4U4Node机型时,设置系统盘标示符: 如果只有一个磁盘,则不论磁盘大小多大;
    # 如果有多个磁盘,则按自定义的规则选择系统安装盘
    #-------------------------------------------------------------------------------
    #function get_osdisk() {
    #    disk_count=$(fdisk -l | grep "Disk /dev/${osdisk_prefix}" | wc -l)
    #    if [ ${disk_count} -eq 1 ]; then
    #        osdisk=$(fdisk -l | grep "Disk /dev/${osdisk_prefix}" | cut -d: -f1 | cut -d/ -f3)
    #    else
    #        osdisk=$(fdisk -l | grep "Disk /dev/${osdisk_prefix}" | awk '{if ($3 >=50 && $3 < 2000) print $0}' | cut -d: -f1 | cut -d/ -f3)
    #    fi
    #}
    
    #-------------------------------------------------------------------------------
    # 设置swap大小,如果内存mem<=2G,则swap设置为与物理内存大小一样;
    # 如果内存2G<mem<=16G,swap=8G; 如果内存mem>16G,则swap=16G
    # 注意:/proc/meminfo中单位是kb,而kickstart中指定swap大小时单位是mb
    #-------------------------------------------------------------------------------
    act_mem=$(cat /proc/meminfo | grep MemTotal | awk '{print $2}')
    if [ ${act_mem} -le $((2*1024*1024)) ]; then
        swap_size=$((2*1024))
    elif [ ${act_mem} -gt $((2*1024*1024)) ] && [ ${act_mem} -le $((16*1024*1024)) ]; then
        swap_size=$((8*1024))
    else
        swap_size=$((16*1024))
    fi
    
    #-------------------------------------------------------------------------------
    # 如果是超微4U4Node机型,使用了主板自带的BIOS RAID set
    # 假设创建RAID 1的名称为Volume0,则它的磁盘标示符为Volume0_0,是/dev/md126的软连接
    # 如果不是超微4U4Node机型,且有SATA或SCSI磁盘,则不论是否还有IDE磁盘,都使用sdx;
    # 如果仅有IDE磁盘,则使用hdx
    #-------------------------------------------------------------------------------
    #if $(grep -q 'md.*$' /proc/partitions); then
    #    osdisk="Volume0_0"
    #    get_swap    # 调用函数
    #elif $(grep -q 'sd.*$' /proc/partitions); then
    #    osdisk_prefix='sd'
    #    get_osdisk  # 调用函数
    #    get_swap    # 调用函数
    #elif $(grep -q 'hd.*$' /proc/partitions); then
    #    osdisk_prefix='hd'
    #    get_osdisk  # 调用函数
    #    get_swap    # 调用函数
    #else
    #    print "Lost disks, please install disks first!"
    #    exit 1
    #fi
    
    #-------------------------------------------------------------------------------
    # 生成/tmp/part-include临时文件
    #-------------------------------------------------------------------------------
    cat >> /tmp/part-include << EOF
    # System bootloader configuration
    #bootloader --location=mbr --boot-drive=${osdisk}
    bootloader --location=mbr 
    # Partition clearing information
    clearpart --all --initlabel
    # Clear the Master Boot Record
    zerombr
    # Disk partitioning information
    ignoredisk --only-use=sda
    part biosboot --fstype="biosboot" --size=1  # 当磁盘大于2T时,以BIOS方式安装CentOS到GPT分区表的磁盘,需要创建1MB的biosboot分区
    part /boot --fstype="ext4" --size=1024
    part /boot/efi --fstype="ext4" --size=1024
    part swap  --fstype="swap" --size=${swap_size}
    part / --fstype="ext4" --size=1 --grow
    EOF
    
    %end
    
    #-------------------------------------------------------------------------------
    # The %packages section
    #-------------------------------------------------------------------------------
    %packages
    @^developer-workstation-environment
    @additional-devel
    @base
    @compat-libraries
    @core
    @debugging
    @desktop-debugging
    @development
    @dial-up
    @directory-client
    @fonts
    @gnome-apps
    @gnome-desktop
    @graphics
    @guest-agents
    @guest-desktop-agents
    @hardware-monitoring
    @input-methods
    @internet-applications
    @internet-browser
    @java-platform
    @kde-desktop
    @large-systems
    @mainframe-access
    @multimedia
    @network-file-system-client
    @office-suite
    @performance
    @perl-runtime
    @perl-web
    @platform-devel
    @print-client
    @ruby-runtime
    @security-tools
    @system-admin-tools
    @technical-writing
    @virtualization-client
    @virtualization-hypervisor
    @virtualization-tools
    @web-server
    @x11
    kexec-tools
    
    %end
    
    # 启用kdump
    %addon com_redhat_kdump --enable --reserve-mb='auto'
    
    %end
    
    #-------------------------------------------------------------------------------
    # The %post sections
    #-------------------------------------------------------------------------------
    %post --nochroot --log=/mnt/sysimage/root/postinstall_stage1.log
    mkdir -p /mnt/source
    mount -o loop /dev/cdrom /mnt/source
    cp /mnt/source/software/openssh-7.7p1.tar.gz /mnt/sysimage/usr/local
    cp /mnt/source/software/openssl-1.0.1t.tar.gz /mnt/sysimage/usr/local
    cp /mnt/source/software/ftp-0.17-67.el7.x86_64.rpm /mnt/sysimage/tmp/
    cp /mnt/source/software1/glibcpkg.tar.gz /mnt/sysimage/tmp/
    umount -f /mnt/source
    %end
    %post --log=/root/postinstall_stage2.log
    echo "==>Uncompress netgainagent ok!
    " >> /root/postinstall_stage2.log
    #ftp glibc.i686
    rpm -ivh /tmp/ftp-0.17-67.el7.x86_64.rpm
    cd /tmp
    tar -xvf glibcpkg.tar.gz
    cd /tmp/glibcpkg
    yum localinstall *.rpm -y
    #ntp
    cat >> /var/spool/cron/root << EOF
    */3 * * * * /usr/sbin/ntpdate ntp.cnnic.cn && /sbin/hwclock -w
    EOF
    echo "==>Set OS NTP ok!
    " >> /root/postinstall_stage2.log
    #erase and disable useless process
    yum erase firewalld -y
    yum erase dnsmasq -y
    yum erase cups -y
    yum erase postfix -y
    systemctl disable rpcbind
    systemctl disable rpcbind.socket
    systemctl disable avahi-daemon.service
    systemctl disable avahi-daemon.socket
    #openssl and openssh
    date -s 2019-12-31
    cd /usr/local/
    tar -xvf /usr/local/openssh-7.7p1.tar.gz
    tar -xvf /usr/local/openssl-1.0.1t.tar.gz
    mv /usr/local/openssh-7.7p1/ /usr/local/openssh/
    mv /etc/init.d/sshd /etc/init.d/sshd_bak
    mv /etc/ssh /etc/ssh_bak
    mv /etc/ssl /etc/ssl_bak
    mv /usr/bin/openssl /usr/local/openssl_bak
    mv /usr/include/openssl /usr/include/openssl_bak
    mv /usr/lib/openssl /usr/lib/openssl_bak
    cd /usr/local/openssl-1.0.1t/
    ./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib64 shared zlib-dynamic
    make depend
    make
    make MANDIR=/usr/share/man MANSUFFIX=ssl install
    ldconfig -v
    sed -i 's/OpenSSH_7.7/OpenSSH/' /usr/local/openssh/version.h
    cd /usr/local/openssh/
    ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/usr/ssl --with-md5-passwords --mandir=/usr/share/man --without-openssl-header-check
    make
    make install
    cp /usr/local/openssh/contrib/redhat/sshd.init /etc/init.d/sshd
    echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
    sed -i 's@/sbin/restorecon /etc/ssh/ssh_host_key.pub@@' /etc/init.d/sshd
    mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.bak
    systemctl daemon-reload
    echo "==>Update openssh ok!
    " >> /root/postinstall_stage2.log
    #modified
    if [ `cat /etc/security/limits.conf |grep ^*|wc -l` -eq 0 ]; then
            sed -i 's/1024/10240/g' /etc/security/limits.d/90-nproc.conf
            sed -i '/End of file/i* soft nproc 10240' /etc/security/limits.conf
            sed -i '/End of file/i* hard nproc 10240' /etc/security/limits.conf
            sed -i '/End of file/i* soft nofile 10240' /etc/security/limits.conf
            sed -i '/End of file/i* hard nofile 10240' /etc/security/limits.conf
    else
            echo "open files is exist"
    fi
    #history size
    cat >> /etc/bashrc <<EOF
    HISTSIZE=2000
    HISTFILESIZE=2000
    HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
    EOF
    #delete files
    cd /usr/local
    rm -rf openssh-7.7p1.tar.gz openssl-1.0.1t.tar.gz
    cd /tmp
    rm -rf ftp-0.17-67.el7.x86_64.rpm
    rm -rf glibcpkg glibcpkg.tar.gz
    #!/bin/sh
    # 设置Bash Color
    echo 'PS1="[e[32;1m][u@h W]\$ [e[0m]"' >> /root/.bashrc
    . /root/.bashrc
    #set network device
    NET_DEV=`ifconfig | grep mtu | awk -F: '{print $1}' | grep -v lo | head -n 1`
    sed -i 's@ONBOOT=no@ONBOOT=yes@' /etc/sysconfig/network-scripts/ifcfg-$NET_DEV
    sed -i 's@ONBOOT="no"@ONBOOT="yes"@' /etc/sysconfig/network-scripts/ifcfg-$NET_DEV
    sed -i '/BOOTPROTO/d' /etc/sysconfig/network-scripts/ifcfg-$NET_DEV
    cat >> /etc/sysconfig/network-scripts/ifcfg-$NET_DEV <<EOF
    BOOTPROTO=static
    IPADDR=
    NETMASK=
    GATEWAY=
    EOF
    
    %end
    

      

  • 相关阅读:
    bzoj_auto_submiter(辣鸡Py毁我青春系列)
    听说“辣鸡小隔膜”出V1.3了?
    shell脚本:统计分析 /home/ 目录用户磁盘使用情况
    shell脚本:DNS自检脚本
    Linux命令集锦:ssh命令
    Linux用户权限
    Linux文件属性
    Linux命令集锦:chown命令
    Linux命令集锦:chmod命令
    Linux命令集锦:tmux命令
  • 原文地址:https://www.cnblogs.com/hjc4025/p/12179339.html
Copyright © 2011-2022 走看看