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