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

news2024/11/26 19:40:27

原文链接:麒麟服务器操作系统自动化安装应答文件制作
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加密的密码策略。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1606779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】ip子网划分--超详细例题解析

Hello!这一篇主要是计算机网络中的ip地址子网划分的例题,这里例举了四个题型。保证即便从0也可以掌握!(前面是一些预备知识,不熟悉的小伙伴一定要看下学习下哦~) 这也是博主的学习过程,做题中仅仅我的理解哦。若文章中…

【k8s】:kubectl 命令设置简写启用自动补全功能

【k8s】:kubectl 命令设置简写&启用自动补全功能 1、设置kubectl命令简写2、启用kubectl自动补全功能 💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(K8s)是一个强大的容器编排平台&#…

Grid Controller

完整、易于使用的基于网格的第一人称控制器,具有《格里姆洛克传奇》、《地下城大师》和《巫师》的风格。 网格控制器是一种基于网格的第一人称控制器,设置简单,但具有鲁棒性和通用性。不需要脚本。 特征: 实时或基于回合的移动 平滑移动或即时捕捉到网格位置 倾斜、下降和蹲…

DevOps(七)Jenkins发布第一个流水线任务

Jenkins的流水线(Pipeline)是一种强大的工具,用于定义和管理持续集成和持续交付(CI/CD)过程。它允许你以代码的形式(即"Pipeline as Code")定义整个构建、测试和部署流程,…

Linux中用户通过系统调用实现硬件驱动全流程

驱动全流程: 以基于设备树、Pinctrl、gpio子系统,打开一个字符设备为例: 1、通过系统调用open进入内核 当我们在用户空间调用open之后,应用程序会使用系统调用指令(在上图中可看到,ARM架构中软中断汇编指…

浏览器工作原理与实践--浏览上下文组:如何计算Chrome中渲染进程的个数

经常有朋友问到如何计算Chrome中渲染进程个数的问题,那么今天就来完整地解答这个问题。 在前面“04 | 导航流程”这一讲中我们介绍过了,在默认情况下,如果打开一个标签页,那么浏览器会默认为其创建一个渲染进程。不过我们在“04 |…

搜维尔科技:【工业仿真】煤矿机械安全事故VR警示教育系统

产品概述 搜维尔科技 煤矿机械安全事故VR警示教育系统 系统内容: 系统采用虚拟现实技术模拟矿井井下机械安全技术及事故,展现井下常见机械伤害事故,表现伤害事故的隐患点,能够模拟事故发生和发展过程;营造井下灾害发…

C#基于SSE传递消息给Vue前端实现即时单向通讯

一、简述 通常前端调用后端的API,调用到了,等待执行完,拿到返回的数据,进行渲染,流程就完事了。如果想要即时怎么办?如果你想问什么场景非要即时通讯,那可就很多了,比如在线聊天、实…

HQL,SQL刷题,尚硅谷(中级)

目录 相关表结构: 1、order_info表 2、order_detail表 题目及思路解析: 第一题,查询各品类销售商品的种类数及销量最高的商品 第二题 查询用户的累计消费金额及VIP等级 第三题 查询首次下单后第二天连续下单的用户比率 总结归纳&#xff1a…

C#版Facefusion:让你的脸与世界融为一体!-02 获取人脸关键点

C#版Facefusion:让你的脸与世界融为一体!-02 获取人脸关键点 目录 说明 效果 模型信息 项目 代码 下载 说明 C#版Facefusion一共有如下5个步骤: 1、使用yoloface_8n.onnx进行人脸检测 2、使用2dfan4.onnx获取人脸关键点 3、使用arcfa…

【MATLAB源码-第36期】matlab基于BD,SVD,ZF,MMSE,MF,SLNR预编码的MIMO系统误码率分析。

操作环境: MATLAB 2022a 1、算法描述 1. MIMO (多输入多输出):这是一个无线通信系统中使用的技术,其中有多个发送和接收天线。通过同时发送和接收多个数据流,MIMO可以增加数据速率和系统容量,同时提高信号的可靠性。…

算法1: 素数个数统计

统计n以内的素数个数 素数:只能被1和自身整除的自然数,0和1除外; 举例: 输入:100 输出:25 import java.util.*; class Test1{public static void main(String[] args){int a 100; //输入数字//…

41、二叉树-二叉树的层序遍历

思路: 层序遍历就是从左到右依次遍历。这个时候就可以使用队列的方式。例如先把头节点入队,然后遍历开始,首先计算队列长度,第一层,长度为了,遍历一次,依次出队,头结点出队&#xff…

Redis的RedisObject和对外可见的5种数据结构

目录 RedisObject Redis的编码方式 对外可见的5种数据结构 1.string string结构的源码 为什么是小于44字节会采用embstr编码? embstr和raw区别 2.list list结构的源码 3.set set结构的源码 4.zset zset结构的源码 5.hash hash结构的源码 Redis中…

淘宝客订单产品设计:连接商家与推广者的智能桥梁

随着电商行业的迅速发展,淘宝客作为一种常见的推广方式,为商家引流、提升销量发挥了重要作用。而淘宝客订单产品的设计,则是连接商家与推广者的智能桥梁,本文将对其进行探讨与分析。 ### 1. 淘宝客订单产品的定义 淘宝客订单产品…

梯度提升树(Gradient Boosting Trees)

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个梯度提升树(Gradient Boosting Trees)模型程序,最后打印5个条件分别的影响力。 示例一 梯…

【目标检测】Focal Loss

Focal Loss用来解决正负样本不平衡问题,并提升训练过程对困难样本的关注。 在一阶段目标检测算法中,以YOLO v3为例,计算置信度损失(图中第3、4项)时有目标的点少,无目标的点多,两者可能相差百倍…

WSL(Ubuntu)、PC物理机,linux开发板三个设备通讯,镜像模式

文章目录 一、前言二、使用2.1 需要的系统信息2.2 添加 .wslconfig 文件 三、如何从局域网访问WSL中的服务 一、前言 最近在使用Linux开发板的环境下,由于使用的 WSL的子系统,并不是虚拟机,导致 网络传输 这方面不是很方便,由于 W…

AGM AG32 MCU在汽车UWB应用方案

AG32的汽车UWB应用方案 汽车电子产品的日益成熟,包括ADAS和车载信息娱乐,正在推动对CPLD的需求。例如,利用安装在车上的各种传感器(如雷达、摄像头和激光雷达等)来感知周围环境,实现实时监测和数据处理。这…

docker容器技术篇:数据卷的常用操作

Docker数据卷的使用 在docker中,为了方便查看容器内产生的数据或者将多个容器中的数据实现共享,就涉及到容器数据卷管理,那什么是数据卷呢,往下看!!! 1 数据卷概念 数据卷是一个共给容器使用…