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中,然后就可以自动进行引导镜像文件进行安装了。

      

原文地址:https://www.cnblogs.com/Presley-lpc/p/12597482.html