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

原文链接:麒麟服务器操作系统自动化安装应答文件制作
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…

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

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

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…

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;云计算的核…

量子时代加密安全与区块链应用的未来

量子时代加密安全与区块链应用的未来 现代密码学仍然是一门相对年轻的学科&#xff0c;但其历史却显示了一种重要的模式。大多数的发展都是基于几年甚至几十年前的研究。而这种缓慢的发展速度也是有原因的&#xff0c;就像药物和疫苗在进入市场之前需要经过多年的严格测试一样&…

心学从0开始学习rust-十万个为什么篇章(持续更新篇章)

问答环节 1.const x 1;和let x 1有何区别呢&#xff0c;const申请的是全局变量所以会一直有效对吗&#xff1f; const 声明的常量具有全局作用域&#xff0c;但它们不能直接在函数内部声明。常量通常用于定义整个程序中使用的值&#xff0c;如配置常量或数学常量。 let 声明…

tcp网络编程——2

1.一个服务器只能有一个客户端连接&#xff08;下面代码&#xff09; ​​​​​​​tcp网络编程&#xff08;基础&#xff09;-CSDN博客 2.一个服务器可以有多个客户端连接&#xff08;多线程&#xff09; server端创建多个线程&#xff0c;每个线程与不同的client端建立连…

浅写个登录(无js文件)

全部代码如下&#xff0c;无需编写wxss文件&#xff0c;渲染都在style里面&#xff1a; <view style"height: 250rpx;width: 100%;"> <!-- 背景图片 --><view style"position: absolute; background-color: antiquewhite; height: 250rpx;width…

IDEA中Docker相关操作的使用教程

一、引言 Docker作为当前最流行的容器化技术&#xff0c;极大地简化了应用的部署和管理。而IntelliJ IDEA作为一款强大的集成开发环境&#xff0c;也提供了对Docker的集成支持。本文将介绍如何在IDEA中配置和使用Docker&#xff0c;包括远程访问配置、服务连接、Dockerfile编写…

【C语言】冒泡排序算法详解

目录 一、算法原理二、算法分析时间复杂度空间复杂度稳定性 三、C语言实现四、Python实现 冒泡排序&#xff08;Bubble Sort&#xff09;是一种基础的排序算法。它重复地遍历要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。遍历数列…

微信小程序开发笔记

微信小程序开发笔记 1 微信小程序的项目结构 2 页面组成 一个微信小程序是由一个或多个页面组成的&#xff0c;这些页面被存放在pages目录中。下面以pages 目录下的index页面为例展示其组成部分&#xff0c;index页面的组成部分如下图所示。 由上图可知&#xff0c;index页面…

hbase-2.2.7分布式搭建

一、下载上传解压 1.在官网或者云镜像网站下载jar包 华为云镜像站&#xff1a;Index of apache-local/hbase/2.2.7 2.上传到linux并解压 tar -zxvf hbase-2.2.7-bin.tar.gz -C /usr/locol/soft 二、配置环境变量 1. vim /etc/profile export HBASE_HOME/usr/local/soft/h…

前端三剑客 HTML+CSS+JavaScript ② HTML相关概念

他们这样形容我 是暴雨浇不灭的火 —— 24.4.18 学习目标 理解 HTML的概念 HTML的分类 HTML的关系 HTML的语义化 应用 HTML骨架格式 sublime基本使用 一、HTML初识 HTML指的是超文本标记语言&#xff0c;是用来描述网页的一种语言 超文本&#xff1a;暂且理解为“超级的文本”&…

【opencv】dnn示例-segmentation.cpp 通过深度学习模型对图像进行实时语义分割

模型下载地址&#xff1a; http://dl.caffe.berkeleyvision.org/ 配置文件下载&#xff1a; https://github.com/opencv/opencv_extra/tree/4.x/testdata/dnn 该段代码是一个利用深度学习进行语义分割的OpenCV应用实例。下面将详细解释代码的功能和方法。 引入库 引入了一些必要…