设为首页 收藏本站
查看: 717|回复: 0

[经验分享] CentOS 系统自动化安装

[复制链接]

尚未签到

发表于 2018-4-25 06:30:14 | 显示全部楼层 |阅读模式
CentOS 系统自动化安装

  ==============================================================================
  概述:

  •   系统安装过程
  •   配置anaconda
  •   自动化安装系统
  ==============================================================================
  
  
CentOS 系统安装

   1.启动流程:
★启动流程

  • bootloader-->kernel(initrd)-->rootfs-->anaconda(启动安装程序)
  2.anaconda:(系统安装程序)
★安装界面:

  • tui:基于cureses的文本配置窗口;
  • gui:图形界面
anaconda介绍

  • Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它可以提供文本、图形等安装管理方式,并支持 Kickstart 等脚本提供自动安装的功能。此外,其还支持许多启动参数,熟悉这些参数可为安装带来很多方便。该程序的功能是把位于光盘或其他源上的数据包,根据设置安装到主机上。为实现该定制安装,它提供一个定制界面,可以实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)。
  • Anaconda的大部分模块用Python编写,有少许的载入模块用C编写。
   3.CentOS的安装过程启动流程:
MBR:boot.cat

Stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg

  • 每个对应的菜单选项
  • 加载内核:isolinux/vmlinuz

  • 向内核传递参数:append initrd=initrd.img
  • 其实整个光盘安装启动过程就是依赖于isolinux这个目录下的文件的
装载根文件系统,并启动anaconda
默认界面是图形界面(GUI):

  • 512MB+内存空间

若需要显示指定启动TUI接口:向启动内核传递一个参数“text”即可;
      1)按tab键:在后面增加text
      2)按ESC键:boot(提示符下): linux text
注意:
上述内容一般位于引导设备,例如可通过光盘、U盘、或网络等;后续的anaconda及其安装用到的程序包等可以来自于程序包仓库。
此仓库的位置可以为:

  • 本地光盘、本地硬盘、ftp server、http server、nfs server
  • 如果想手动指定安装仓库:按 ESC键:boot(提示符下):linux method
  演示:
[root@centos7 ~]# cd /misc/cd
[root@centos7 cd]# ls
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL
[root@centos7 cd]# cd isolinux/
[root@centos7 isolinux]# ls
boot.cat  boot.msg  grub.conf  initrd.img  isolinux.bin  isolinux.cfg  memtest  splash.png  TRANS.TBL  upgrade.img  vesamenu.c32  vmlinuz
[root@centos7 isolinux]# ll
total 86002
-r--r--r-- 1 root root     2048 Dec 10  2015 boot.cat
-r--r--r-- 1 root root       84 Dec 10  2015 boot.msg
-r--r--r-- 1 root root      281 Dec 10  2015 grub.conf
-r--r--r-- 2 root root 38508192 Dec 10  2015 initrd.img
-r--r--r-- 1 root root    24576 Dec 10  2015 isolinux.bin
-r--r--r-- 1 root root     3032 Dec 10  2015 isolinux.cfg
-r--r--r-- 1 root root   176500 Sep 11  2014 memtest
-r--r--r-- 1 root root      186 Oct  1  2015 splash.png
-r--r--r-- 1 root root     2438 Dec 10  2015 TRANS.TBL
-r--r--r-- 2 root root 44035836 Dec 10  2015 upgrade.img
-r--r--r-- 1 root root   153104 Mar  6  2015 vesamenu.c32
-r-xr-xr-x 2 root root  5156528 Nov 20  2015 vmlinuz
[root@centos7 isolinux]# less isolinux.cfg
...
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz  # 加载的内核
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet # 向内核传递的参数  
anaconda 工作过程
(安装前配置阶段,安装阶段,首次启动)

1.安装前配置阶段:


  • 安装过程使用的语言;
  • 键盘类型;
  • 安装目标存数设备;
           Basic Storage:本地磁盘
           Special Storage:ISCSI
  • 设定主机名;
  • 配置网络接口;
  • 时区;
  • 管理员密码;
  • 设定分区方式及MBR的安装位置;
  • 创建一个普通用户;
  • 选定要安装的程序包;

  2.安装阶段:


  • 在目标磁盘创建分区并执行格式化;
  • 将选定的程序包安装至目标位置;
  • 安装bootloader

   3.重启系统


  • iptables 防火墙
  • selinux
  • core dump 核心转储
  
安装引导选项及 kickstart 文件

1.anaconda 的配置方式:
★配置方式:

  • 交互式配置方式;
  • 支持通过读取配置文件中事先定义好的配置项自动完成配置;遵循特定的语法格 式,此文件即为kickstart文件;
   2.安装引导选项:
boot:
text:文本安装方式;
method:手动指定使用安装方法;
与网络相关的引导选项:

  • ip=IPADDR
  • netmask=MASK
  • gateway=GW
  • dns=DNS_SERVER_IP
  • ifname=NAME:MAC_ADDR
远程访问功能相关的引导选项:

  • vnc
  • vncpassword='PASSWORD'
指明kickstart文件的位置:ks=

  • DVD drive:   ks=cdrom:/PATH/TO/KICKSTART_FILE
  • Hard drive:  ks=hd:device:/directory/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
  • NFS server:  ks=nfs:host:/path/to/KICKSTART_FILE
启动救援模式:

  • rescue
装载额外驱动:

  • dd
官方文档

  • www.redhat.com/docs 《installation guide》
   3.kickstart文件的格式
命令段:指定各种安装前的配置选项,如键盘类型等;

  • 必备命令
  • 可选命令
程序包段:指明要安装程序包,以及包组,也包括不安装的程序包;

  • %packages :指明程序包段的开始;
  • @group_name:安装一个包组;
  • package:安装一个程序包;
  • -package :指明不安装的程序包;
  • %end :指明程序包段的结尾;

脚本段:

  • %pre:安装前脚本
  • 运行环境:运行于安装介质上的微型Linux环境
  • %post:安装后脚本
  • 运行环境:安装完成的系统;
   4.命令段中的必备命令及可选命令
必备命令
authconfig:认证方式配置;

  • authconfig--useshadow--passalgo=sha512
bootloader:bootloader的安装位置及相关配置;

  • bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
keyboard: 设定键盘类型;
lang: 语言类型; 如:lang zh_CN.UTF-8
part: 分区布局;

  • part /boot --fstype=ext4 --size=200
  • part pv.008002 --size=61440
补充:分区相关的其他命令:

  • clrarpart:清除分区;(clearpart --none --drives=sda:清空磁盘分区
  • volgroup:创建卷组;(volgroup vg0 --pesize=8192 pv.008002
  • logvol:创建逻辑卷;(logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
rootpw:指明root的密码;
timezone:时区  timezone Asia/Shanghai
可选命令
install OR upgrade;安装或升级
text: 安装界面类型,text为TUL,默认为GUI
network:配置网络接口;
firewall:防火墙
   系统安装完成之后禁用防火墙
CentOS 6 :

  • # service iptables stop
  • # chkconfig iptables off
CentOS 7 :

  • # systemctl stop firewalld.service
  • # systemctl disables firewalld.service
selinux:SElinux

  系统安装完成后禁用SElinux:

  • 编辑/etc/sysconfig/selinux或/etc/selinux/config文件,修改SELINUX参数的值为下面其中参数之一:permisslve,disabled
  • 立即生效:getenforce,setenforce 0  
安装完成之后的行为

  • halt、poweroff、reboot:;
repo:安装时使用的rpository
user:安装完成后为系统创建新用户
url:指明安装时使用的repository,但是为url格式;
key –skip:跳过安装号码,适用于rhel版本
  演示:
   1.CentOS 6 中的 anaconda-ks.cfg
[root@CentOS6 ~]# cat anaconda-ks.cfg
# Kickstart file automatically generated by anaconda.
#version=DEVEL
install      # 安装
url --url=    # 指明安装时使用的仓库
lang en_US.UTF-8 # 指明使用的语言
keyboard us    # 指明使用的键盘
network --onboot yes --device eth0 --bootproto dhcp --noipv6 # 配置网络接口
rootpw  --iscrypted $6$CGsqab6d$Cd.PnnWtlL5XZAyr9J2zoMqyJH1QodcDp1pQp0uZ1f0Cq4eq9.TMkSQU6IfpvYZEYc32.lmF0lKuQwavnC49a0      # 指明root密码
# Reboot after installation
reboot          # 安装完成之后的行为
firewall --disabled   # 防火墙
authconfig --useshadow  --passalgo=sha512 # 认证方式配置
selinux --disabled      # SElinux
timezone Asia/Shanghai    # 时区
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto crashkernel=auto rhgb rhgb quiet quiet"  # bootloader的安装位置及相关配置
# Clear the Master Boot Record
#zerombr
# 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 --all
#part /boot --fstype=ext4 --size=200
#part pv.008002 --size=61440
#volgroup vg0 --pesize=8192 pv.008002
#logvol / --fstype=ext4 --name=root --vgname=vg0 --size=20480
#logvol swap --name=swap --vgname=vg0 --size=2048
#logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=10240
#logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=20480
repo --name="CentOS"  --baseurl=http://10.1.0.1/cobbler/ks_mirror/6/ --cost=100
定制kickstart文件的方式:

直接手动编辑;

  • 依据某模板修改
可使用创建工具:

  • # yum install system-config-kickstart
  • # system-config-kickstart

  • 依据某模板修改并生成新配置;
检查ks文件的语法错误:ksvalidator

  • # ksvalidator /PATH/TO/KICKSTART_FILE
  利用创建工具,操作如下:
  1.~]# system-config-kickstart &    运行命令,会出现如下编辑界
DSC0000.png

   2.我们可以在编辑器上进行编辑,选择分区,网络,等配置,也可以导入模板文件(anaconda)在此基础上修改配置,并创建文件名,保存至root下退出;
     需要注意这里在分区时一定选择清除主引导分区,删除所有分区和初始化磁盘卷标,要不然在自动化安装时会提醒你是否清除数据
   DSC0001.png
  
    3.查看root下生成的文件,并检查语法错误,如下:
[root@CentOS6 ~]#  ls
anaconda-ks.cfg  bin  Desktop  Documents  Downloads  f1  ks.cfg # 生成的文件  Music  Pictures  Public  Templates  Videos
[root@CentOS6 ~]# ksvalidator ks.cfg  # 检查语法错误,有错误会报错  

  
  制作引导光盘

  
   1.创建引导光盘


  • # cp/media/cdrom/isolinux/ /tmp/myiso/
  • # vi /tmp/myiso/isolinux/isolinux.cfg
        initrd=initrd.imgtext ks=cdrom:/myks.cfg

  • # cp/root/myks.cfg /tmp/myiso/
  • # cd /tmp
  • # mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.6 x86_64 boot" -b isolinux/isolinux.bin-c isolinux/boot.cat -o /root/boot.iso myiso/
  演示步骤如下:
[root@CentOS6 ~]# mkdir  /tmp/myiso/
[root@CentOS6 ~]# cp -a /misc/cd/isolinux/ /tmp/myiso/ # 复制光盘下的isolinux到/tmp下
[root@CentOS6 ~]# cd /tmp/myiso/isolinux/
[root@CentOS6 isolinux]# ll  # 可以看到,因为是光盘文件所以都是只读的
total 44436
-r--r--r-- 1 root root     2048 Sep 13 12:11 boot.cat  
-r--r--r-- 1 root root       84 Sep 13 12:11 boot.msg
-r--r--r-- 1 root root      321 Sep 13 12:11 grub.conf
-r--r--r-- 1 root root 40688737 Sep 13 12:11 initrd.img  # 文件驱动
-r--r--r-- 1 root root    24576 Sep 13 12:11 isolinux.bin
-r--r--r-- 1 root root      923 Sep 13 12:11 isolinux.cfg  # 配置文件
-r--r--r-- 1 root root   183012 Sep 13 12:11 memtest
-r--r--r-- 1 root root   151230 Sep 13 12:11 splash.jpg  # 为背景图
-r--r--r-- 1 root root     2215 Sep 13 12:11 TRANS.TBL
-r--r--r-- 1 root root   163728 Sep 13 12:11 vesamenu.c32
-r-xr-xr-x 1 root root  4264528 Sep 13 12:11 vmlinuz  # 内核文件
[root@CentOS6 isolinux]# chmod u+w isolinux.cfg  # 添加写权限,进行修改
[root@CentOS6 isolinux]# vim isolinux.cfg   DSC0002.png
[root@CentOS6 tmp]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.8 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso myiso/  # 注意一定退出myiso目录,创建光盘镜像,指明路径等信息,并在/root下生成一个boot.iso镜像
[root@CentOS6 ~]# ls
anaconda-ks.cfg  bin  boot.iso # 生成的镜像文件  Desktop  Documents  Downloads  f1  Music  myks.cfg  Pictures  Public  Templates  Videos  2.新建一个虚拟机,用创建好的光盘镜像在虚拟机上重新引导安装,如下:
   DSC0003.png
  3.成功安装:
   DSC0004.gif
  
  

  

  

  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-451527-1-1.html 上篇帖子: Centos系统半自动化安装 下篇帖子: centos 安全加固及性能升级加内核优化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表