麒麟服务器操作系统自动化安装应答文件制作

原文链接:麒麟服务器操作系统自动化安装应答文件制作

Hello,大家好啊!今天我们将探讨如何为麒麟服务器操作系统制作自动化安装应答文件。在部署大量服务器时,自动化安装是提高效率和确保安装一致性的关键技术。通过使用应答文件,系统管理员可以预先定义安装过程中的所有选择和配置,从而实现无人值守的安装。这对于规模化部署和管理非常有用。下面,我们将详细介绍如何创建这样的应答文件。

什么是应答文件?

应答文件(通常为XML或文本格式)包含了操作系统安装过程中所需的所有配置信息,如分区信息、用户设置、网络配置等。在麒麟服务器操作系统安装过程中,安装程序会读取这个文件,按照其中的指示进行安装,而不需要用户交互。

制作应答文件的步骤

1. 确定需求

在创建应答文件之前,你需要确定安装过程中需要自动化设置的各项参数,包括但不限于:

  • 系统语言和时区
  • 磁盘分区方案
  • 网络配置
  • 用户和密码
  • 安装的软件包
2. 创建应答文件模板

麒麟服务器操作系统通常提供了默认的应答文件模板。你可以从安装介质中找到这个模板,或者从系统的帮助文档中获取。下载或复制这个模板作为开始。

3.加密密码

安全是自动化安装中的一个重要考虑因素。确保使用加密的密码在应答文件中。你可以使用如openssl等工具来生成加密的密码。

echo "your-password" | openssl passwd -1 -stdin
4.使用应答文件进行安装

将编辑好的应答文件放在一个网络位置或者安装介质上,根据麒麟操作系统的安装指南进行配置,以便在安装过程中使用这个应答文件。

5.测试安装

在正式部署之前,使用一个测试机器来验证应答文件的准确性和安装流程的正确性。确保所有预期的配置都被正确应用。

1.查看系统信息

[root@pdsyw ~]# cat /etc/os-release
[root@pdsyw ~]# uname -a

2.查看模板文件

[root@pdsyw ~]# ll


initial-setup-ks.cfganaconda-ks.cfg这两个文件都与Kickstart安装有关,但它们用途不同:

  1. initial-setup-ks.cfg
    • 这个文件通常在安装系统时创建,用于记录系统安装向导(Initial Setup)过程中用户做出的选择。
    • 它的目的是为了在系统首次启动后完成一些初次设置,比如网络配置、用户账户的创建等。
  2. anaconda-ks.cfg
    • anaconda-ks.cfg文件则是由Anaconda安装程序在系统安装完成后生成的。这个文件包含了安装过程中所有的配置选项,可以用来复制安装或进行自动化安装。
    • 它详细记录了安装过程中用户的所有选择,包括分区信息、所安装的软件包、网络设置等。
    • 如果你想要进行一个完全相同配置的系统安装,可以直接使用这个文件进行Kickstart自动化安装。

简而言之,initial-setup-ks.cfg 更侧重于系统安装后的初次设置,而anaconda-ks.cfg 则提供了一种方法来重现一个完全一样的系统安装。在进行系统克隆或大规模部署时,anaconda-ks.cfg特别有用。

3.编辑模板文件

[root@pdsyw ~]# cp anaconda-ks.cfg kylinsp3.cfg
[root@pdsyw ~]#
[root@pdsyw ~]# vim kylinsp3.cfg

4.编辑后的文件

[root@pdsyw ~]# cat kylinsp3.cfg
#version=DEVEL
# Use graphical install

zerombr
xconfig  --startxonboot
graphical
url --url=http://192.168.80.111/kylin/sp3/os/x86_64/

%post --nochroot

#####copy kyinfo and LICENSE
if [ -e /tmp/.kyinfo ];then
  echo y | cp -a /tmp/.kyinfo $ANA_INSTALL_PATH/etc/
fi
if [ -e /tmp/LICENSE ];then
  echo y | cp -a /tmp/LICENSE $ANA_INSTALL_PATH/etc/
fi

if [ -e /run/install/repo/.kyinfo ];then
  echo y | cp -a /run/install/repo/.kyinfo $ANA_INSTALL_PAT                                                                                                 H/etc/
fi

if [ -e /run/install/repo/LICENSE ];then
  echo y | cp -a /run/install/repo/LICENSE $ANA_INSTALL_PAT                                                                                                 H/etc/
fi

##### kylin postaction
## cdrom install, copy .kylin-post-actions
if [ -e /run/install/repo/.kylin-post-actions ];then
  echo y | cp -a /run/install/repo/.kylin-post-actions /tmp                                                                                                 /.kylin-post-actions
  echo "repo=/run/install/repo" > /tmp/.kylin-repo
fi
## copy kylin post scripts in new os
if [ -e /tmp/.kylin-post-actions ];then
  echo y | cp -a /tmp/.kylin-post-actions $ANA_INSTALL_PATH                                                                                                 /bin
fi
if [ -e /tmp/.kylin-repo ];then
  echo y | cp -a /tmp/.kylin-repo $ANA_INSTALL_PATH/tmp/
fi

## copy and run .kylin-post-actions-nochroot
if [ -e /run/install/repo/.kylin-post-actions-nochroot ];th                                                                                                 en
  echo y | cp -a /run/install/repo/.kylin-post-actions-noch                                                                                                 root /tmp/.kylin-post-actions-nochroot
fi
if [ -e /tmp/.kylin-post-actions-nochroot ];then
  /bin/bash -x /tmp/.kylin-post-actions-nochroot &> $ANA_IN                                                                                                 STALL_PATH/var/log/.kylin-post-actions-nochroot.log
fi


%end

%post
systemctl disable systemd-networkd-wait-online.service
systemctl disable multipathd.service

### do kylin post action
if [ -e /bin/.kylin-post-actions ];then
  /bin/bash -x /bin/.kylin-post-actions &> /var/log/.kylin-                                                                                                 post-actions.log
fi

%end

%packages
@^kylin-desktop-environment

%end

# Keyboard layouts
keyboard --xlayouts='cn'
# System language
lang zh_CN.UTF-8 --addsupport=en_US.UTF-8

# Network information
network  --bootproto=static --device=ens160 --gateway=192.1                                                                                                 68.80.254 --ip=192.168.80.112 --nameserver=223.5.5.5 --netm                                                                                                 ask=255.255.255.0 --ipv6=auto --activate
network  --hostname=pdsyw

# Run the Setup Agent on first boot
firstboot --disable
# System services
services --enabled="chronyd"

ignoredisk --only-use=nvme0n1
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=nvme0n1 --size=1536
part pv.450 --fstype="lvmpv" --ondisk=nvme0n1 --size=100862
volgroup klas --pesize=4096 pv.450
logvol / --fstype="ext4" --size=43511 --name=root --vgname=                                                                                                 klas
logvol /home --fstype="ext4" --size=40960 --name=home --vgn                                                                                                 ame=klas
logvol swap --fstype="swap" --size=16384 --name=swap --vgna                                                                                                 me=klas

# System timezone
timezone Asia/Shanghai --utc

# Root password
rootpw --iscrypted $6$PAl5KzyHjDvqz0Cl$L0qBHHGHg5sqKFFV46Lh                                                                                                 udHq5Ls7UzcsVYgyKIeY3PIfZjzXfqrlFESATPfRXbvwZLUjf5ASepm8yDl                                                                                                 5kISA8/
user --groups=wheel --name=pdsyw --password=$6$DP0g8xEaXyIu                                                                                                 DX9d$RKb.Rf2IpDyEPol6YekqJG7xw3k6/fYUZfSSjk1kDtzVA9zm8nP31p                                                                                                 SFdctmLFQSksUGqlAa4/mugBsDv9irR/ --iscrypted --gecos="pdsyw                                                                                                 "

reboot
eula --agreed
#skipx
%addon com_redhat_kdump --enable --reserve-mb='1024M'

%end

%anaconda
pwpolicy root --minlen=8 --minquality=1 --strict --nochange                                                                                                 s --notempty
pwpolicy user --minlen=8 --minquality=1 --strict --nochange                                                                                                 s --emptyok
pwpolicy luks --minlen=8 --minquality=1 --strict --nochange                                                                                                 s --notempty
%end

[root@pdsyw ~]#

1.注释和版本信息

#version=DEVEL
# Use graphical install

这些行是注释(由 # 标识),用来向阅读文件的人提供信息。第一行可能表明这是一个开发版本的配置,第二行建议使用图形化安装界面。

2.基础安装设置

zerombr
xconfig  --startxonboot
graphical
url --url=http://192.168.80.111/kylin/sp3/os/x86_64/

zerombr:清除磁盘的主引导记录(MBR)。

xconfig --startxonboot:设置系统启动时自动启动X Windows系统。

graphical:使用图形化安装方法。

url:指定安装媒体的位置URL。

3.安装后脚本(第一个 %post --nochroot 块)

包含处理特定文件(如 kyinfo、LICENSE、.kylin-post-actions 等)的各种命令:
if [ -e /tmp/.kyinfo ];then... 等类似块检查某些文件是否存在,然后将它们复制到新安装中的指定位置。
echo y | cp -a:此命令复制文件,并自动以 'yes' 回答提示。

4.安装后服务管理(第二个 %post 块)

systemctl disable systemd-networkd-wait-online.service
systemctl disable multipathd.service
这些行禁用特定的服务,这些服务在安装后立即不需要,以加快启动速度。

5.包安装

%packages
@^kylin-desktop-environment

表示安装Kylin桌面环境及相关包。

6.键盘和语言设置

keyboard --xlayouts='cn'
lang zh_CN.UTF-8 --addsupport=en_US.UTF-8

设置键盘布局为中文,并将系统语言设置为简体中文,同时支持美国英语。

7.网络配置

network  --bootproto=static --device=ens160...
network  --hostname=pdsyw

定义静态IP设置和系统主机名

8.首次启动设置

firstboot --disable

禁用首次启动时通常运行的初始化设置代理。

9.系统服务

services --enabled="chronyd"

启用chronyd服务,该服务用于网络时间同步。

10.磁盘分区

ignoredisk --only-use=nvme0n1
clearpart --all --initlabel
part /boot...

指定使用的磁盘,清除现有分区,并为系统不同用途(/boot、卷组、/、/home 和 swap 的逻辑卷)创建新分区。

11.系统时区和根密码

timezone Asia/Shanghai --utc
rootpw --iscrypted $6$PAl5KzyHjDvqz0Cl...

设置系统时区为上海并配置加密的根用户密码。

12.用户账户

user --groups=wheel --name=pdsyw...

添加一个新用户,并设置加密密码,包括用户在wheel组中,该组通常具有管理权限。

13.重启和许可协议

reboot
eula --agreed

安装完成后指令系统重启,并表明已同意最终用户许可协议(EULA)。

14.崩溃处理

%addon com_redhat_kdump --enable --reserve-mb='1024M'

启用kdump服务,该服务帮助捕捉崩溃转储。

15.密码策略

%anaconda
pwpolicy root...
pwpolicy user...
pwpolicy luks...

在安装过程中定义root用户、普通用户和LUKS加密的密码策略。

应答文件的制作虽然需要仔细规划和测试,但它为大规模部署节省了大量时间,降低了出错率,是系统管理员不可或缺的工具。希望这篇文章能帮助你理解并开始使用麒麟服务器操作系统的自动化安装功能。如果你觉得这篇文章有用,请分享和转发。同时,别忘了点个关注和在看,以便未来获取更多有用的技术信息和解决方案。非常感谢大家的阅读,我们下次再见!

相关推荐
九河云2 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock2 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零3 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
云飞云共享云桌面4 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq4 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮5 小时前
Linux 使用中的问题
linux·运维
dsywws6 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零7 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
free8 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程8 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法