自动化安装系统(一)

这篇具有很好参考价值的文章主要介绍了自动化安装系统(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统安装过程

  • 加载boot loader
  • 加载启动安装菜单
  • 加载内核和initrd文件
  • 加载根系统
  • 运行anaconda的安装向导

安装光盘中与安装相关的文件

安装autofs启动后会自动出现/misc目录。

在虚拟机设置中添加CD/DVD,使用系统ISO文件,登录系统后mount /dev/cdrom /misc 即可

自动化安装系统(一),运维工具,# 系统部署,运维,linux

  • boot.cat:相当于grub第一阶段
  • isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
  • isolinux.cfg:启动菜单的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
  • vesmenu.c32:是光盘启动后的启动菜单图形界面,也属于SYSLINUX项目,menu.c32提供纯文本的菜单
  • memtest:内存检测程序
  • splash.png:光盘启动菜单界面的背景图
  • vmlinuz:内核映像
  • initrd.img:ramfs文件

isolinux.cfg参数

参数与安装过程对应关系

1、

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

2、

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

选择不同选项实际是内核参数的不同。

  • 加载内核:isolinuz/vmlinuz
  • 向内核传递参数:append initrd=initrd.img 参数

选择直接安装 Install CentOS Linux 8,内核参数为:append initrd=initrd.img inst.stage2=hd:LABEL=CentOS-8-2-2004-x86_64-dvd quiet

选择测试媒介,若无误则安装 Test this media & install CentOS Linux 8,内核参数为:append initrd=initrd.img inst.stage2=hd:LABEL=CentOS-8-2-2004-x86_64-dvd rd.live.check quiet

选择在基本图形模式下安装 Install CentOS Linux 8 in basic graphics mode,内核参数为:append initrd=initrd.img inst.stage2=hd:LABEL=CentOS-8-2-2004-x86_64-dvd nomodeset quiet

选择救援系统 Rescue a CentOS Linux system,内核参数为:append initrd=initrd.img inst.stage2=hd:LABEL=CentOS-8-2-2004-x86_64-dvd rescue quiet

比如进入救援模式可以这麽做

一、当光标定位在 Install Centos Linux 8 时,按Tab键

自动化安装系统(一),运维工具,# 系统部署,运维,linux

在末端输入救援模式的内核参数 rescue,即可进入救援模式

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

二、在此界面按ESC键,然后 boot:rescue,进入救援模式

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

常见内核参数

1、text:默认启动GUI图形界面安装接口,可以指定文本方式的安装界面

2、rescue:进入救援模式

3、inst.repo=path:指定安装源文件的路径,可以是以下格式
Centos 6
DVD drive repo=cdrom:device
Hard Drive repo=hd:device/path
HTTP Server repo=http://host/path
HTTPS Server repo=https://host/path
FTP Server repo=ftp://username:password@host/path
NFS Server repo=nfs:server:/path
ISO images on an NFS Server repo=nfsiso:server:/path

Centos 7
Any CD/DVD drive inst.repo=cdrom
Hard Drive inst.repo=hd:device:/path
HTTP Server inst.repo=http://host/path
HTTPS Server inst.repo=https://host/path
FTP Server inst.repo=ftp://username:password@host/path
NFS Server inst.repo=nfs:[options:]server:/path

askmethod:选择安装源文件的获取方法,提供了光盘,本地硬盘,NFS,FTP,HTTP多种安装源,此项Centos 7 以后版已废弃

ks=path: 指定自动化安装应答文件路径,如:initrd=initrd.img inst.ks=http://192.168.8.8/ksdir/ks8.cfg

ip= : 指定IP地址信息
ip=method,method 可以为dhcp
ip=interface:method 指定特定接口
ip=ip::gateway:netmask:hostname:interface:none 静态IP

anaconda

anaconda是Linux系统安装程序,提供两种风格安装界面

1、GUI:图形窗口

2、TUI:基于图形库的curses的文本窗口

anaconda工作过程

1、安装过程使用的语言

2、键盘类型

3、时区和时间

4、安装源文件路径

5、选定要安装的程序包

6、安装目标存储设备及分区设置

Basic Storage:本地磁盘

特殊设备:iSCSI

KDUMP功能

设定主机名和配置网络接口

安全策略

管理员密码

创建一个普通用户

anaconda的配置方式:

1、交互式配置方式

2、通过读取事先给定的配置文件自动完成配置,加内核参数:ks=/path实现指明kickstart文件的位置,各种路径格式如下:

​ 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

实现自动化安装应答文件

实现自动安装需要提前制作对应的安装应答文件,称为kickstart文件,用于保存安装过程需要指定的选项。

kickstart文件使用过程

1、创建kickstart文件。

2、将kickstart文件放在可移动媒体、硬盘驱动器或网络位置上。

3、创建引导介质,将用于开始安装。

4、提供安装源。

5、启动kickstart安装。

kickstart文件格式

root家目录里有anaconda-ks.cfg文件,可参考

1、命令段

指明各种安装前配置,如键盘类型等

keyboard 设定键盘类型
lang 语言类型
zerombr 清除MBR
clearpart 清除分区
part 创建分区
rootpw 设定root密码
timezone 时区
text 文本安装界面
network 指定网络设置
firewall 设置防火墙
selinux selinux设置
reboot 安装完自动重启
user 安装完为系统创建新用户
url 配置安装源

2、程序包段

指明要安装的程序包组或程序包,不安装的程序包等

%packages
@^environment group: 指定环境包组,如:@^minimal-environment
@group_name
package
-package
%end

3、脚本段

%pre: 安装前脚本

%post: 安装后脚本 

注意:

  • CentOS 8,7,6 不同版本的kickstart文件格式不尽相同,不可混用
  • %addon(拓展)、%packages(软件包)、%onerror、%pre、%post 必须以%end结束,否则安装失败

创建kickstart文件

方式

  • 使用创建工具:system-config-kickstart ,注意:此方法 CentOS 8 不再支持
  • 依据某模板修改并生成新配置;CentOS安装完后,会自动参考当前系统的安装过程,生成一个kickstart文件 /root/anaconda-ks.cfg

检查语法

安装pykickstart,使用ksvalidator工具检查kickstart语法错误

[root@wenzi ~]#ls
anaconda-ks.cfg
[root@wenzi ~]#yum -y install pykickstart.noarch

[root@wenzi ~]#ksvalidator anaconda-ks.cfg

在centos7使用system-config-kickstart创建kickstart文件

centos7地址 192.168.28.141

1、物理机上安装xmanager进行图形化操作

2、

[root@wenzi ~]# yum list | grep pykickstart
pykickstart.noarch                          1.99.66.22-1.el7           @base
#192.168.28.1是物理机VMware Network Adapter VMnet8的地址
[root@wenzi ~]# export DISPLAY=192.168.28.1:0.0

[root@wenzi ~]# system-config-kickstart

会出现图形化界面

自动化安装系统(一),运维工具,# 系统部署,运维,linux

踩坑:

若图形化界面出现乱码

自动化安装系统(一),运维工具,# 系统部署,运维,linux

将Linux系统语言从 LANG="zh_CN.UTF-8" 修改为 LANG="en_US.UTF-8"

3、设置安装选项

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

centos7默认网卡名为ens33。若此处写为eth0,需要修改内核参数 net.ifnames=0,使用网卡传统命名方式 eth0

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

选择安装的软件包,以Web Server为例。

 自动化安装系统(一),运维工具,# 系统部署,运维,linux

踩坑:

点击Package Selection右侧加载不出列表,修改文件 vim /etc/yum.repos.d/CentOS-Base.repo 为下图样式。注释掉[base],添加[development];重新system-config-kickstart即可

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

下图中注意yum源的写法,$releasever等变量前要加转义符

自动化安装系统(一),运维工具,# 系统部署,运维,linux

点击左上方File-save保存至系统中,查看ks.cfg文件内容即安装过程配置,还可继续手动修改该文件,比如将时区timezone Africa/Abidjan 改为 timezone Asia/Shanghai

对图形界面配置的修正,否则使用该ks.cfg文件安装系统会启动失败:

bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda

[root@wenzi ~]# ll
total 8
-rw-------. 1 root root 1333 Aug 11 04:39 anaconda-ks.cfg
-rw-r--r--  1 root root 1580 Aug 12 10:56 ks.cfg

[root@wenzi ~]# cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --plaintext admin
# System language
lang en_US
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
firstboot --disable
# SELinux configuration
selinux --disabled


# Firewall configuration
firewall --disabled
# Network information
network  --bootproto=dhcp --device=eth0
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# Use network installation
url --url="http://mirrors.aliyun.com/centos/7.9.2009/os/x86_64/"
# System bootloader configuration
bootloader --append="net.ifnames=0" --location=mbr --boot-drive=sda
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=1024
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1

%post
useradd wenzi
echo admin | passwd --stdin wenzi

mkdir /etc/yum.repos.d/backup
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup
cat > /etc/yum.repos.d/Base.repo <<EOF
[development]
name=CentOS-\$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/\$releasever/os/\$basearch/
        http://mirrors.aliyuncs.com/centos/\$releasever/os/\$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/\$releasever/os/\$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

EOF

yum -y install vim
%end

%packages
@web-server

%end

使用应答文件

在centos7上把ks,cfg文件共享,可通过物理机浏览器进行访问测试,能看到文件内容成功

[root@wenzi ~]# yum -y install httpd

[root@wenzi ~]# mv ks.cfg /var/www/html/
[root@wenzi ~]# systemctl start httpd

新建一台虚拟机,在启动时指定应答文件。在开机进入读条界面时按ESC进入下面流程

自动化安装系统(一),运维工具,# 系统部署,运维,linux

在下面界面选中第二个,按ESC

自动化安装系统(一),运维工具,# 系统部署,运维,linux

进入此界面后输入 linux ks=http://192.168.28.141/ks.cfg 然后回车开始安装

自动化安装系统(一),运维工具,# 系统部署,运维,linux

centos6、centos7、centos8三个系统的kickstart文件各有不同,不可混用。各自最小化安装的kickstart文件可参考自动安装的应答文件 - 运维派

实现基于ISO文件的Linux半自动化安装

centos8准备工作

centos8地址 192.168.28.151

#安装httpd,作为系统镜像、kickstart应答文件网络存放地址

[root@wenzi ~]# dnf -y install httpd

[root@wenzi ~]# systemctl start httpd

一、定制kickstart应答文件

[root@wenzi ~]# cp anaconda-ks.cfg centos8_ks.cfg
[root@wenzi ~]# vim centos8_ks.cfg
#version=RHEL8
#只使用系统中的第一块磁盘
ignoredisk --only-use=nvme0n1
#清除所有磁盘的分区表
zerombr
#文本方式安装
text
#graphical
#成功安装后重启
reboot
# 清除系统上所有分区
clearpart --all --initlabel
#关闭selinux
selinux --disabled
#关闭防火墙
firewall --disabled
#通过http远程服务器的目录树安装
url --url=http://192.168.28.151/centos/8/
#键盘
keyboard --vckeymap=us --xlayouts='us'
#系统语言
lang en_US.UTF-8
#网络配置
network --bootproto=dhcp --device=ens160 --ipv6=auto --activate
#network  --bootproto=static --device=ens160 --gateway=192.168.28.2 --ip=192.168.28.152 --nameserver=223.5.5.5,180.76.76.76 --netmask=255.255.255.0 --ipv6=auto --activate
#主机名
network  --hostname=wenzi
#root加密后的密码
rootpw --iscrypted $6$CEK/siEJwPyzpudd$cJ/rz9oiqDmc8LmI1uZmI8BRFxje4OnuGS0qLBRZ4cAFWqKg482sPuN1BstCMY62NN58ivBzZ.bGD.0QFaYnf/
# Run the Setup Agent on first boot
firstboot --enable
#不启动图形化
skipx
#开机时启动或关闭的服务
services --disabled="chronyd"
#系统时区
timezone Asia/Shanghai --isUtc --nontp
#分区信息
part /boot --fstype="ext4" --ondisk=nvme0n1 --size=1024
part /swap --fstype="swap" --ondisk=nvme0n1 --size=2048
part / --fstype="xfs" --ondisk=nvme0n1 --grow --size=1  #根分区/使用磁盘剩余的所有空间

#需要的安装包
%packages
@^minimal-environment
kexec-tools
vim
%end

%addon com_redhat_kdump --enable --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

二、定制启动菜单

centos8安装autofs启动后会自动出现/misc目录。

在虚拟机设置中添加CD/DVD,使用系统ISO文件,登录系统后mount /dev/cdrom /misc

#创建定制ISO文件目录
[root@wenzi ~]# mkdir /data/myiso -p
[root@wenzi ~]# cp -r /misc/isolinux/ /data/myiso/
[root@wenzi ~]# tree /data/myiso/
/data/myiso/
└── isolinux
    ├── boot.cat
    ├── boot.msg
    ├── grub.conf
    ├── initrd.img
    ├── isolinux.bin
    ├── isolinux.cfg
    ├── ldlinux.c32
    ├── libcom32.c32
    ├── libutil.c32
    ├── memtest
    ├── splash.png
    ├── TRANS.TBL
    ├── vesamenu.c32
    └── vmlinuz

#编辑菜单文件
[root@wenzi ~]# vim /data/myiso/isolinux/isolinux.cfg
......
menu separator # insert an empty line
menu separator # insert an empty line

#自动安装系统
label linux
  menu label ^Auto Install CentOS Linux 8 #菜单名字可自行修改
  kernel vmlinuz
  #指定应答文件路径
  append initrd=initrd.img quiet ks=http://192.168.28.151/centos8_ks.cfg

#救援系统
label rescue
  menu label ^Rescue a CentOS Linux system
  kernel vmlinuz
  #指定救援系统路径
  append initrd=initrd.img rescue quiet inst.repo=http://192.168.28.151/centos/8

#启动本地系统
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

menu separator # insert an empty line
menu separator # insert an empty line

#返回主菜单
label returntomain
  menu label Return to ^main menu
  menu exit

menu end

#安装mkisofs工具
[root@wenzi ~]# dnf install genisoimage.x86_64
#创建自己的ISO文件,此条命令可通用,只修改路径即可
[root@wenzi ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 8.0 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso  /data/myiso/

#boot.iso即是生成的定制ISO文件
[root@wenzi ~]# ls
anaconda-ks.cfg  boot.iso  centos8_ks.cfg

三、将系统镜像资源、kickstart应答文件部署至httpd

[root@wenzi ~]# mv centos8_ks.cfg /var/www/html/centos8_ks.cfg
[root@wenzi ~]# chmod 644 /var/www/html/centos8_ks.cfg
[root@wenzi ~]# mkdir /var/www/html/centos/8 -p
[root@wenzi ~]# mount /dev/cdrom /var/www/html/centos/8/
[root@wenzi ~]# ll /var/www/html/
total 4
drwxr-xr-x 3 root root   15 Aug 13 10:56 centos
-rw-r--r-- 1 root root 1719 Aug 13 17:11 centos8_ks.cfg
[root@wenzi ~]# systemctl restart httpd

通过浏览器访问测试

自动化安装系统(一),运维工具,# 系统部署,运维,linux

自动化安装系统(一),运维工具,# 系统部署,运维,linux

将boot.iso传送至物理机,新建虚拟机,使用boot.iso,选择第一个Auto Install Centos Linux 8,静等安装完毕出现登录界面即可。

自动化安装系统(一),运维工具,# 系统部署,运维,linux文章来源地址https://www.toymoban.com/news/detail-651782.html

到了这里,关于自动化安装系统(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从小白到大神之路之学习运维第60天--------Ansible自动化运维工具(安装、操作、简单使用,模块的作用)

    第三阶段基础 时  间:2023年7月13日 参加人:全班人员 内  容: Ansible自动化运维工具 目录 一、Ansible概述 二、Ansible特点 三、Ansible应用 (一)使用者 (二)Ansible工具集合 (三)作用对象 四、Ansible的搭建 五、Ansible配置 六、Ansible命令 (一)ansible (二)Ansible-doc (三)

    2024年02月16日
    浏览(65)
  • 基于云计算的自动化部署与自动化运维:提高运维效率

    作者:禅与计算机程序设计艺术 随着互联网技术的飞速发展,网站流量日益增长,用户对网站功能及其可用性的需求也越来越高,越来越多的人开始担忧网站的安全和稳定性。因此,如何快速、准确地处理网站故障、迅速恢复网站服务并保障网站高可用,成为企业必须重点关

    2024年02月11日
    浏览(45)
  • ansible自动化IT工具安装部署与使用验证

    目录 一、环境配置 1、关闭防火墙 2、免密登录配置 3、同步时区 二、服务端配置 1、安装软件 2、查看版本  3、实现远程控制huyang3  4、测试  结果验证: systemctl stop firewalld iptables -F setenforce0 【huyang3】ssh-keygen 【huyang3】ssh-copy-id 192.168.1.116 ntpdate huyang1 yum -y install ansible ansi

    2024年02月11日
    浏览(44)
  • Ansible自动化运维工具

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 ansible 自动化运维工具(机器管理工具) 可以实现批量管理多台(成百上千)主机,应用级

    2024年02月14日
    浏览(50)
  • Ansible 自动化运维工具

    目录 一: Ansible 简介   Ansible与其他自动化运维工具对比  二: ansible 环境安装部署   三:ansible 命令行模块 1、command 模块 2、 shell 模块 3、 cron 模块 4、 user 模块 5、 group 模块  6、copy 模块 7、 file 模块  8、hostname 模块 9、ping 模块 10、 yum 模块 11、 service/systemd 模块

    2024年02月15日
    浏览(45)
  • 自动化运维工具—Ansible

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 市面上其他自动化工具:pupet(ruby语言) saltstack(python) chef(C/S模式)等 Ansible能批量配

    2024年02月10日
    浏览(46)
  • 自动化运维工具——Ansible

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月14日
    浏览(50)
  • 自动化运维工具之Ansible

    Ansible是一个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功能,Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比如以前需要切换到每个主机上执行的一或多个

    2024年02月08日
    浏览(69)
  • 自动化运维工具-------Ansible(超详细)

    Ansible是自动化运维工具,基于Python开发,分布式,无需客户端,轻量级,实现了批量系统配置、批量程序部署、批量运行命令等功能, ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架 。 1)、no agents:不需要在

    2024年02月10日
    浏览(40)
  • Ansible 自动化运维工具(完善版)

    目录  Ansible概述 Ansible特点 Ansible应用 1、使用者 2、Ansible工具集合 3、作用对象 Ansible的搭建 环境 ansible主机 1、ansible 2、Ansible-doc Ansible模块 1.command模块 2.shell模块 3.raw模块 Ansible是最近非常火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包