• Linux学习57 Linux系统自动化安装无人值守环境配置部署


    一、回顾

      1、内核编译

        a、make menuconfig

        b、make [-j #]

        c、make modules_install

        d、make install

      2、CentOS系统安装

        a、bootloader --> isolinux/vmlinuz(isolinux/initrd) --> anaconda

        b、anaconda

          (1)、安装前配置阶段

            1)、交互式配置

            2)、读取配置文件(自动配置),也就是kickstart阶段

          (2)、安装阶段

          (3)、首次启动

    二、CentOS系统安装

      1、CentOS6.7 minimal install ,也可以敲tab键进行编辑,也可以敲ESC然后添加是一样的

        

        

      2、安装引导选项

        a、ks:指明kickstart文件的位置

          ks=

            DVD drive(光盘):ks=cdrom:/PATH/TO/KICKSTART_FILE

            Hard Drive(硬盘):ks=hd:/DEVICE/PATH/TO/KICKSTART_FILE

            HTTP Server:ks=http://HOST[:PORT]/PATH/TO/KICKSTART_FILE

            FTP SERVER:ks=ftp://HOST[:PORT]/PATH/TO/KICKSTART_FILE

            HTTPS Server:ks=https://HOST[:PORT]/PATH/TO/KICKSTART_FILE

          

        b、我们每一个系统安装完以后都会在/root目录下有一个anaconda-ks.cfg文件,这个文件其实就是anaconda程序根据我们系统安装时手动选择的相应的配置生成的。所以我们可以将此文件当模板来创建我们的kickstart文件。

    [root@www ~]# cat /root/anaconda-ks.cfg |grep -Ev "^$|^#"
    auth --enableshadow --passalgo=sha512
    cdrom
    graphical
    firstboot --enable
    ignoredisk --only-use=sda
    keyboard --vckeymap=us --xlayouts='us'
    lang en_US.UTF-8
    network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate
    network  --hostname=localhost.localdomain
    rootpw --iscrypted $6$OaRGxTNh50S4C2oP$T/VAMJTmfxtG6xi.nxrgtjPsaCQW7BoeXCEeO8wNk3htD7KP6tv8r5MSbLYl1j6rZMZ.hN.ObUNX8wzg3cInp0
    services --disabled="chronyd"
    timezone Asia/Shanghai --isUtc --nontp
    bootloader --location=mbr --boot-drive=sda
    autopart --type=lvm
    clearpart --none --initlabel
    %packages
    @^web-server-environment
    @base
    @core
    @web-server
    %end
    %addon com_redhat_kdump --disable --reserve-mb='auto'
    %end
    %anaconda
    pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
    pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
    %end

    三、kickstart

      1、kickstart文件格式

        a、命令段

          (1)、%packages之前的阶段都叫命令段,指定各种我们安装前的配置选项,如键盘类型等

            1)、必备命令

            2)、可选命令

        b、程序包段

          (1)、指明要安装的程序包,以及包组,也包括不安装的程序包

            1)、%packages表示我们的程序包段开始了,以%packages开头以%end结尾,这中间都表示程序包

            2)、程序包我们可以这样指明@group_name,表示安装一个包组

            3)、也可以写成 package,表示单个程序包,也可以写成 -package,表示不安装的程序包。但是就算指明不安装也不一定不安装,因为可能存在依赖关系。

        c、脚本段

          (1)、%pre:安装前脚本

            运行环境:运行安装介质上的微型Linux系统环境

          (2)、%post:安装后脚本

            运行环境:安装完成的系统

      2、kickstart命令段中的必备命令

        a、authconfig,认证方式配置

          

          使用enableshadow方式进行加密

        b、bootloader:定义bootloader安装

      

          表示从mbr开始安装bootloader,从sda开始安装,并且启动内核时加上append后面的参数

        c、keyboadr:设置键盘类型。

          keyboard us

        d、lang:语言类型

          lang zh_CN.UTF-8

        e、part:分区布局及分区使用方式

          

          带了pv.xxx,表示创建了一个物理卷,xxx表示id号,如果我们要通过此pv创建卷组的话我们就需要通过此id来调它,比如我们可以看到下面的volgroup字段,表示将我们pv.008002创建成pv卷组,pe大小为4M

          

         f、补充:分区相关的其它指令

          (1)、clearpart:清除分区

            clearpart --none --drives=sda:清空磁盘分区。

          (2)、volgroup:创建卷组

            volgroup myvg --pesize=4096 pv.008002:创建卷组

          (3)、logvol:创建逻辑卷

            logvol /home --fstype=ext4 --name=lv_home --vgname=myvg --size=5120

        g、rootpw:管理员密码

          (1)、这个密码怎么生成呢?我们可以使用openssl命令来生成 

          

             passwd表示生成密码串,-1表示使用md5的加密算法 `openssl rand -hex 4`表示生成八位随机数。-salt表示我们要手动给其生成指定的salt。

        h、timezone:时区

          timezone Asia/Shanghai

      3、kickstart可选命令

        a、install OR upgrade:安装或升级

        b、text:安装界面类型,text为tul,默认为GUI,单独成行即可,不需要相应参数

        c、network:配置网络接口

          

           --onboot yes表示开机启动

          --bootproto dhcp表示动态获取ip地址,也可以不用使用此方式而是直接配置静态IP

        d、firewall:防火墙

          

           表示防火墙启用了并且放行了本机ssh访问。如果要禁用防火墙的话需要使用

          firewall --disabled

        e、selinux:SELinux

          

           --disabled表示禁用,如果系统安装完成之后要禁用防火墙

          (1)、CentOS6

            service iptables stop

            chkconfig iptables off

          (2)、CentOS7

            systemctl stop firewalld.service

            systemctl disable firewalld.service

          (3)、系统安装以后要禁用selinux,需要编辑/etc/selinux/config文件,将SELINUX=的值改为permissive或disabled,不让其为enforcing即可,permissive表示不完全禁用,但是不会对我们的操作产生影响。但是此方式只是我们重启后才有效,如果要立即生效我们需要使用setenforce 0命令,然后我们再使用getenforce命令查看即可

              

         f、halt、poweroff或reboot:安装完成之后的行为

        g、repo:指明安装时使用的repository

          

        h、url:指明安装时使用的repository,但是使用url格式

          

        建议参考官方文档:《Installation Guide》

    四、编辑kickstart配置文件

      1、我们来改模块

        a、首先我们来安装kickstart这个配置文件包,我们可以看到是python研发的

          

        b、安装完以后我们直接运行命令system-config-kickstart &

          

        c、我们可以看到会弹出一个图形界面让我们选择相应的选项

          

          我们可以点文件,然后选择我们/root/anaconda-ks.cfg文件打开,他会自动给你装载进来,然后改一改即可

          (1)、根口令我们可以直接输入密码,他会给我们自动加密

          

          (2)、安装方法中我们可以指定http服务器,如果可以访问互联网的话可以直接指向阿里云  

          

          (3)、后面相应的内容根据相应需求选择即可。

       2、然后我们点击保存即可。

        a、我们可以通过ksvalidator命令检查文件是否有语法错误

          

    五、基于kickstart安装

      1、首先我们在安装开始时配置相应参数并且指定kickstart.cfg文件路径

        

         如果网络能连接那么他就能获取到对应url下的kickstart文件并读取相应内容进行系统安装

       2、如果我们此时没有服务器又想使用kickstart文件怎么办呢?我们可以自己创建一个光盘引导镜像,而且这个镜像只需要有isolinux目录即可。

        a、首先我们创建一个目录myboot

          

        b、然后我们把光盘中的isolinux目录复制到此目录下并且给上写权限

          

        c、然后我们复制刚刚我们制作的kickstart配置文件到我们的myboot目录下

          

        d、然后我们退出当前目录用命令将此目录创建成相应的iso镜像

           -c为bootloader第一阶段,-b为bootloader第二阶段,-o指保存的iso文件的名称

            

        e、创建完以后我们就可以用此光盘来引导操作系统安装了。然后我们在开始安装界面设置kickstart配置文件的路径

          

        f、我们也可以将ks配置文件路径直接写进isolinux/isolinux.cfg中,然后就可以自动进行引导镜像文件进行安装了。

          

  • 相关阅读:
    TCHAR字符串查找&反向查找字符串
    如何判断一个文本文件的编码
    用NETSH WINSOCK RESET命令修复网络
    #define和typedef在windows上的应用
    Visual Studio Code (vscode)编译C++
    win32 Message(MSG)消息处理
    HBRUSH to RGB value
    InvalidateRect和UpdateWindow
    Informatic ETL开发步骤
    【非官方方式】获取Disconf动态更新的配置文件的值
  • 原文地址:https://www.cnblogs.com/Presley-lpc/p/12597482.html
Copyright © 2020-2023  润新知