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

原文链接:麒麟服务器操作系统自动化安装应答文件制作
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 installzerombr
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 ];thenecho y | cp -a /tmp/.kyinfo $ANA_INSTALL_PATH/etc/
fi
if [ -e /tmp/LICENSE ];thenecho y | cp -a /tmp/LICENSE $ANA_INSTALL_PATH/etc/
fiif [ -e /run/install/repo/.kyinfo ];thenecho y | cp -a /run/install/repo/.kyinfo $ANA_INSTALL_PAT                                                                                                 H/etc/
fiif [ -e /run/install/repo/LICENSE ];thenecho 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 ];thenecho y | cp -a /run/install/repo/.kylin-post-actions /tmp                                                                                                 /.kylin-post-actionsecho "repo=/run/install/repo" > /tmp/.kylin-repo
fi
## copy kylin post scripts in new os
if [ -e /tmp/.kylin-post-actions ];thenecho y | cp -a /tmp/.kylin-post-actions $ANA_INSTALL_PATH                                                                                                 /bin
fi
if [ -e /tmp/.kylin-repo ];thenecho 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                                                                                                 enecho 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.mzph.cn/bicheng/282.shtml

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

相关文章

云原生Kubernetes: K8S 1.29版本 部署Kuboard

目录 一、实验 1.环境 2.K8S 1.29版本 部署Kuboard (第一种方式) 3.K8S 1.29版本 部署Kuboard (第二种方式) 4.K8S 1.29版本 使用Kuboard 二、问题 1.docker如何在node节点间移动镜像 一、实验 1.环境 (1)主机 表1 主机 主机架构版本IP备注ma…

全量知识系统 程序详细设计之 刀具库钩子程序和胶水语言(QA 百度搜索)

Q1. 我们聊聊全量知识系统中的三大套:刀具库、钩子程序和胶水语言 全量知识系统中的三大套——刀具库、钩子程序和胶水语言,在软件开发和系统构建中扮演着至关重要的角色。这些概念在不同的技术背景下可能有所不同,但总体来说,它…

css3中有哪些伪选择器?

CSS3中有以下伪选择器: :active(选中的元素处于活动状态):checked(选中的表单元素):disabled(禁用的表单元素):empty(没有子元素的元素):enabled(可用的表单…

Hive进阶(5)----yarn的资源调度策略

yarn的资源调度策略 YARN(Yet Another Resource Negotiator)是Apache Hadoop的资源管理器。它负责集群资源的管理和作业调度。YARN的资源调度是通过几个关键组件来实现的: ResourceManager(RM):RM是YARN集群…

如何在Python中有效地使用列表推导式和生成器表达式? —— 编写更简洁、高效的代码

列表推导式和生成器表达式是Python中非常强大和常用的工具,可以帮助我们编写更简洁、高效的代码。下面是一些使用列表推导式和生成器表达式的技巧和建议: 使用列表推导式创建新的列表: 从已有的列表中选择满足特定条件的元素:new_…

tp8 在构造函数中实例化模型

在ThinkPHP 8(TP8)中,如果你需要在控制器或其他类的构造函数中实例化模型,你可以按照以下步骤进行: 首先,确保你已经定义了模型类。例如,如果你有一个名为User的模型,你应该有一个a…

安全开发之碰撞检测与伤害计算逻辑

一、什么是碰撞检测逻辑? 用通俗移动的话来说,碰撞检测就是一门检测两部分运动轨迹是否碰到一起的逻辑,在游戏中一般至少包含2方面的碰撞检测逻辑:一、核心玩法的碰撞检测逻辑;二、运动碰撞检测逻辑。 关于核心玩法的…

手写一个民用Tomcat (06)

我们这次是引入获取参数,比如你的GET 请求 或者post 请求 如何吧请求参数进行封装 成map 集合 。 先看下erquest。请求类里边改造 private void parseRequestLine() 这个方法 改造成 依据 ?进行分割处理因为 http://localhost:8080/servlet/com.yixin.HelloWor…

负载均衡原理|算法

负载均衡(Load Balancing)是一种计算机网络技术,其目的是将大量的并发请求或网络流量分散到多个服务器上,以此来提高服务的可用性、响应速度、以及系统的总体处理能力,同时减轻单个服务器的负担。负载均衡不仅能够避免…

太阳能路灯光伏板的朝向设计问题

题目:太阳能路灯光伏板的朝向设计问题 难度对标几乎每一年的国赛A题。 QQ群:592697532 公众号:川川菜鸟 文章目录 背景问题问题一问题二问题三 题目解读相关公式(必备)太阳辐射的计算光伏板接收的辐射光学效率大 气透…

OpenXR手部追踪实现详解

在虚拟现实(VR)和增强现实(AR)应用中,手部追踪技术是提高用户交互自然性的关键技术之一。本文将详细介绍如何使用OpenXR API实现手部追踪功能,包括系统属性的查询、手部追踪器的创建和手部关节的定位。 开…

Spring Cloud Gateway详细介绍以及实现动态路由

一. 简介 Spring Cloud Gateway This project provides a libraries for building an API Gateway on top of Spring WebFlux or Spring WebMVC. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide cross cutting concerns to …

C++的线程

#include<iostream> #include<thread> #include<unistd.h> using namespace std; void myrun() {while(true){cout<<"I am a thread"<<endl;sleep(1);} } int main() {thread t(myrun);t.join();return 0; } 如果不添加-lpthread就会报…

基于ChatGPT打造安全脚本工具流程

前言 以前想要打造一款自己的工具&#xff0c;想法挺好实际上是难以实现&#xff0c;第一不懂代码的构造&#xff0c;只有一些工具脚本构造思路&#xff0c;第二总是像重复造轮子这种繁琐枯燥工作&#xff0c;抄抄改改搞不清楚逻辑&#xff0c;想打造一款符合自己工作的自定义的…

Day 25 组合(优化)216.组合总和III 17.电话号码的字母组合

组合&#xff08;优化&#xff09; 先给出组合问题的回溯部分代码&#xff1a; vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, int k, int startIndex) {if (path.size() k) …

【opencv】dnn示例-person_reid.cpp 人员识别(ReID,Re-Identification)系统

ReID(Re-Identification&#xff0c;即对摄像机视野外的人进行再识别) 0030_c1_f0056923.jpg 0042_c5_f0068994.jpg 0056_c8_f0017063.jpg 以上为输出结果&#xff1a;result文件夹下 galleryLIst.txt queryList.txt 模型下载&#xff1a; https://github.com/ReID-Team/ReID_e…

简搜,一个安卓应用,用于扫描纸质书,把它变成可以用多个关键词搜索的电子书

下载连接&#xff1a;简搜scanner-app资源-CSDN文库 扫描纸质书&#xff0c;让它变成可以像百度搜索一样使用的电子书。 诸如自考、公务员考试考试中&#xff0c;需要大量刷题时&#xff0c;大部分知识点就在书中&#xff0c;但是要找到它&#xff0c;通常要花几分钟甚至个把…

OpenHarmony网络通信-socket-io

简介 socket.io是一个在客户端和服务器之间实现低延迟、双向和基于事件的通信的库。建立在 WebSocket 协议之上&#xff0c;并提供额外的保证&#xff0c;例如回退到 HTTP 长轮询或自动重新连接。 效果展示 下载安装 ohpm install ohos/socketio OpenHarmony ohpm 环境配置等更…

VulnHub靶机 DC-5 打靶 渗透测试详情过程

VulnHub靶机 DC-5 打靶 详细渗透测试过程 目录 VulnHub靶机 DC-5 打靶 详细渗透测试过程一、将靶机导入到虚拟机当中二、渗透流程主机发现端口扫描目录爆破文件包含getshell反弹shell提权 一、将靶机导入到虚拟机当中 靶机地址&#xff1a; https://download.vulnhub.com/dc/…

【云计算】云计算八股与云开发核心技术(虚拟化、分布式、容器化)

【云计算】云计算八股与云开发核心技术&#xff08;虚拟化、分布式、容器化&#xff09; 文章目录 一、什么是云计算&#xff1f;1、云计算的架构&#xff08;基础设施&#xff0c;平台&#xff0c;软件&#xff09;2、云计算的发展 二、如何做云计算开发&#xff1f;云计算的核…