Linux基础之自动化安装Linux系统第一篇

简介

  • Linux安装分网络安装,光盘安装,U盘安装等
  • 但是想要达到一键化安装也是要点技术的
  • 在这里我给大家演示CentOS6.9自动化安装
  • 由于过于庞大我分了几篇为童鞋们讲解

自动化安装准备工作

  • 自己做一台CentOS6.9的服务器,装上vsftp服务
  • 我们开始

开始工作

  • 首先我们需要一个光盘里面资料
  • 那我们先来看看光盘里面一些有用的文件
[root@localhost mnt]# ls
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
GPL              repodata                  TRANS.TBL
images           RPM-GPG-KEY-CentOS-6
  • 和启动相关的文件
    • ioslinux/boot.cat : 这个文件不是一个文本,是一些二进制文件,相当于硬盘里面的MBR
    • isolinux/isolinux.bin:这个文件也是个二进制文件, 这都是和第二阶段启动相关的二进制程序了,这也是和启动相关的文件,不能缺少
    • isolinux/isolinux.cfg: 这个文件是个启动菜单文件,也就是我们光盘安装的时候刚出来时的启动菜单
    • 如果想查看二进制文件,可以用户命令
  • 介绍了光盘三个主要启动文件接下来我们要进入下一阶段自动化系统安装步骤
  • 如果要自动化安装我们首先需要安装定制或制作应答文件
  • 想要定制需要安装一个软件,运行命令yum -y install system-config-kickstart
  • 这个工具可以帮我们制作应答文件

《Linux基础之自动化安装Linux系统第一篇》

  • 我们需要这个Kickstart 这个软件来生成应答文件
  • 下面先为大家介绍下这个软件的使用
  • 这个软件是帮我们生成应答文件,用之前仔细阅读

《Linux基础之自动化安装Linux系统第一篇》

  • basic Configuration 基本配置
    • 语言不用修改,英文版最稳定
    • 键盘布局,很重要,不要修改,除非特殊用途、
    • 时区,修改成亚洲
    • Encrypt root password ,密码是否明文显示,如果勾上就不是明文了,勾上了密码就加密了,注意
    • Specify installation key , 这里是红帽企业版用的,就想windows的激活秘钥一样,与我们不相关,默认就号
    • Target Architecture,硬件的机构,默认就好

《Linux基础之自动化安装Linux系统第一篇》

  • installation Method 安装方法
    • Perform new installation 执行新的安装
    • upgrade an existing installation ,升级现有安装
    • installation source ,安装选择们可以选择光盘安装网络安装等等,看着自己的需求

《Linux基础之自动化安装Linux系统第一篇》

  • Boot Loader Options,引导装载程序选项
    • 除了,RRUB Options ,设置菜单以后密码以后其他都默认,不要动

《Linux基础之自动化安装Linux系统第一篇》

  • Partition lnformation ,分区信息
    • Master Boot Record ,是否清空MBR磁盘,选择Clear Masrer Boot Record意思就是清除MBR,选择Do not clear Master Boot Record就是不清空
    • Layout ,分区自己看这分区,选择Add开始分区
    • 其他保持默认

《Linux基础之自动化安装Linux系统第一篇》

  • Nrtwork Configuration,网络验证
    • Add Nework Device ,开始选择网络类型,一般都是用的DHCP
    • Edit Network Device, 修改网络类型
    • Delite Network Device ,删除网络类型

《Linux基础之自动化安装Linux系统第一篇》

  • Authentication 验证
  • 一般全部默认,就好
  • 除非特殊,验证选择

《Linux基础之自动化安装Linux系统第一篇》

  • Firewall Configuration,防火墙和SElinux的配置
    • SELinux,默认是开启,我这里是关闭了他Didabied是关闭,如果想开启自己选择
    • Security level,防火墙默认是关闭,默认就好,如果有需要,可开启

《Linux基础之自动化安装Linux系统第一篇》 8.png

  • Display Configuration,显示配置
    • Dispkat Configuration, 也就是装机时候安装图形化界面 ,默认开启
    • 我不需要图形化界面,Disadled关闭了他

《Linux基础之自动化安装Linux系统第一篇》

  • Package Selection,软件包选择
    • 此界面是安装包,选择了他会帮你把一些包安装好
    • 看自己的需要,来选择

《Linux基础之自动化安装Linux系统第一篇》

  • Pre-installation Script预安装脚本
    • 也就是安装系统以后执行,所需要的脚本
    • 看自己的需要
    • 可以直接在里面填写脚本

《Linux基础之自动化安装Linux系统第一篇》

  • Post-installaton Script 安装后脚本
    • 系统安装以后所执行的脚本
    • 看自己的需求
    • 可以直接在里面填写脚本

《Linux基础之自动化安装Linux系统第一篇》

  • 保存应答文件,他默认会以ks.cfg的格式来保存
  • 保存什么名字自己看着办,但最后以.cfg来结尾
  • 生成以后可以用cat ks.cfg来查看下我们生成的应答文件
[root@linux ~]# cat ks.cfg 
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://172.16.0.1/centos/6"       <<网络源
# Root password
rootpw --plaintext 111111                 <<菜单密码
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
text                 <<  图形化和命令行界面启动方式选择
# System keyboard
keyboard us                  <<键盘布局
# System language
lang en_US
# SELinux configuration             <<禁用SELinux
selinux --disabled
# Installation logging level
logging --level=info

# System timezone
timezone  Africa/Abidjan           << 时区
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr --password="111111"   <<账号登录密码
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all  
# Disk partitioning information            << 分区项
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=100000     
part swap --fstype="swap" --size=4096
part /app --fstype="ext4" --size=50000

%post               <<  因为前脚本项没有填写所以没有生成,这里是后脚本项
useradd wang
echo magedu|passwd --stdin wang
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo << EOF
[bash]
name=linux
baseurl=http://172.16.0.1/centos/6
gpgcheck=0
EOF

%end

% packages      << 表示你要安装的软件包 
@base

%end
  • 如果你有足够的能力,应答文件也可以自己手动写
  • 但是我只能用软件来生成,但是我技术有限,只能像傻子的用软件来生成
  • 但是我会修改,慢慢来吧,童鞋们
  • 查看完以后,我们还需要运行命令,ksvalidator格式检查器
  • 来运行他来检查包和格式的完整性
[root@linux ~]# ksvalidator ks.cfg 
File uses a deprecated option or command.

Script does not end with %end.  This syntax has been deprecated.  It may be removed from future releases, which will result in a fatal error from kickstart. 
 Please modify your kickstart file to use this updated syntax.
  • 如果那里错了会报这个错误,提示,如果没有错误那什么都不会报,并不是命令没有起到作用
  • 因为在Linux里面没有提示,就是最好的结果,童鞋们注意,但是仅限这个不是所有
  • 既然应答文件已经检查完毕
  • 接下来我们就开始修改应答文件
  • 修改应答文件,我们需要参考别的,已安装过的CentOS6.9的文件
  • 怎么参考,因为刚装好的文件有个文件就是anaconda-ks.cfg
  • 我们来参考他,运行命令cat anaconda-ks.cfg
[root@linux ~]# cat anaconda-ks.cfg 
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom     <<光盘可参考,我这里没有参考因为我用的是网络,但是后期需要参考
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
network --onboot yes --device eth1 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$Qd6ikyJKuxRyjZkN$DPT.7v1PGLjOKFJC8EK9wUxCFqHYfrfKELOZwmSo7Iv.3fnu32YJLPoZMvKo8lBTLAX1tVmmpuphcvboIM4Fj1
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing   <<参考了他的SElinux
timezone Asia/Hong_Kong   << 我参考了他的时区
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none
#part /boot --fstype=ext4 --size=1000
#part /app --fstype=ext4 --size=100000
#part swap --size=4000
#part / --fstype=ext4 --grow --size=200
repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100
%packages  << 参考他的安装包
@base
@compat-libraries
@core
@debugging
@development
@server-policy
@workstation-policy
python-dmidecode
sgpio
device-mapper-persistent-data
systemtap-client
%end[root@linux ~]# 

  • 我们可以参考这个命令来开始添加等等配置
  • 我这里参考他的安装包组和时区和一些配置
  • 修改的时候别出现错误,请注意,修改完以后,一定要用命令检查
  • 配置文件配置好了以后,找个地方放起来
  • 放哪,现在我们的FTP服务器就用的上了
  • FTP服务搭建这里就不演示了
  • ks.cfg文件拷贝到/var/ftp/pub/下面 ,共享目录
  • 为了以后方便我改名为centos6.cfg,用mv命令,后缀名叫什么都无所谓,但是还是统称点称呼好,为了方便区分
  • 但是用之前还是确认下你的vsftpd服务有没有启动
  • 可以用service vsftpd status来查看,出现下面情况表示已经启动
[root@linux pub]# service vsftpd  status
vsftpd (pid 28714) is running...   <<表示已经启动
  • 如果没有启动可以用命令service vsftpd start来启动
[root@linux pub]# service vsftpd  start        
Starting vsftpd for vsftpd:           表示启动成功 >>        [  OK  ]   
  • 还有一个就是注意防火墙,可以用命令iptables -F来临时关掉他

  • 或者用iptables -vnL命令来查看防火墙

  • 接下来开始安装首先我们要进入光盘引导界面

《Linux基础之自动化安装Linux系统第一篇》

  • 进入光盘界面以后,在切换到第二行按键盘的ESC键,会进入命令行提示符

《Linux基础之自动化安装Linux系统第一篇》

  • 进入命令行界面提示符以后输入你的FTP服务器IP和你的应答文件的地址
  • 除了linux ks=一样以外其他的都是你自己的设定请设定好
  • 然后在回车,回车以后,他会读取你的应答文件,等等信息
  • 然后开始安装等等

《Linux基础之自动化安装Linux系统第一篇》

  • 已经开始安装
  • 但是你输错FTP地址了会弹出要你重新输入,到时候输入好以后回车即可

《Linux基础之自动化安装Linux系统第一篇》

  • 已经安装完毕
  • 因为我在应答文件里面没有设置重启机制
    -所以才会才会出现此界面,回车重启即可
  • 如果你想自动在应答文件最后面加入reboot即可
  • 我们重启看下可以登录了不

《Linux基础之自动化安装Linux系统第一篇》

  • 已经登录成功
  • 安装完毕
  • 我们在查我们的脚本生效了不
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
base.repo
  • 脚本已经生效
  • 童鞋们注意
  • 在应答文件里面我用的源是另外一个FTP里面的源不是我自己刚创建的源
  • 如果你的源不写好会一直报错,让你输入正确的源注意了
    原文作者:O感悟人生O
    原文地址: https://www.jianshu.com/p/1ec850154c79
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞