自动化安装linux

简介:

 个人使用的linux的安装没有太多难度,但是一旦到生产环境内,那种随性而装系统的,将会给服务器管理员带来极大的麻烦,这里需要对生产系统进行一定的定制,定制取决于公司的计算机的类型,公司的计算机往往都是一个类型一个型号。这里定制就很方便了,把分区都设置一样,这样可以批量部署大批的机器。

 linux安装原理

  回忆一下手动安装一个系统的步骤:1选择语言,2选择键盘布局,3分配分区,4选择安装类型,5选择额外的包,6选择时区,7设置root密码。安装时候的主观感受是配置一步系统执行一步,其实不然,等所有的配置都配置完后,安装进程才开始,只有分配分区是实时执行的。

  安装的进程叫anaconda,使用anaconda安装系统后,在root目录下会生成一个文件anaconda-ks.cfg文件,这个文件就是安装当前系统时的全部配置信息,分区情况的那几行被注释掉了。以下简称ks文件,我们可以直接去掉分区那几行的注释,直接使用这个配置安装一个和当前系统一模一样的系统。

 ks文件

 1 ks文件格式

配置文件分为三段:

第一段是主要定义的是分区、grub密码、用户及密码等等,格式如下(这里的配置内容仅适合我的网络环境):

install

url--url=http://172.16.0.1/cobbler/ks_mirror/6/

lang en_US.UTF-8

keyboard us

network --onbootyes --device eth0 --bootproto dhcp --noipv6

# Reboot afterinstallation

reboot

firewall--disabled

authconfig --useshadow  --passalgo=sha512

selinux--disabled

timezoneAsia/Shanghai#part /boot --fstype=ext4 --size=200

#part pv.008002--size=61440

#volgroup vg0--pesize=8192 pv.008002

#logvol /--fstype=ext4 --name=root --vgname=vg0 --size=20480

#logvol swap--name=swap --vgname=vg0 --size=2048

#logvol /usr--fstype=ext4 --name=usr --vgname=vg0 --size=10240

#logvol /var--fstype=ext4 --name=var --vgname=vg0 --size=20480

repo--name="CentOS" --baseurl=http://172.16.0.1/cobbler/ks_mirror/6/ --cost=100

#开头的这几行就是我的分区情况

第二段定义的是安装的包组和安装的包

%packages

@                 代表包组

                     代表包

%end

第三段定义的是系统安装前和安装后的执行的脚本,格式如下

%pre

这部分定义的安装前脚本

%end

%post

这部分定义的是安装后脚本

%end

配置文件生成

  配置文件的格式比较简单也比较好理解,但是靠手写定制一个ks文件还是有一定难度,linux中有一个基于图形界面定制ks文件的工具。

安装ks文件生成工具kisckstart

yum install system-config-kickstart -y

运行kisckstart

system-config-kickstart

这个界面我们按照linux的界面基本类似,只有两个部分不一样,一个是display configuration,这里选择是否安装图形界面,不安装图形界面的话就是最小安装;另一个是package selection,这里是选择安装的包。

centos7使用这个是会有一点问题,可以参考我的另一博客:http://oldking.blog.51cto.com/10402759/1876181

 ks文件的使用

 1 手动输入ks文件位置

  安装linux的时候,在最开始的选择安装还是升级系统那一个界面按exc,进入命令行模式,输入linux ks=ks文件的位置

这个ks文件可以是在http服务器、ftp服务器或本地文件系统上。位于本地文件系统的格式(这个格式只适用我,要用的话需要适当的变更):

ks=cdrom:/myks.cfg

位于网络的格式(同样这个格式只适用我)

ks=http://172.16.29.1/myks.cfg

ks=ftp://172.16.29.1/pub/myks.cfg

  2 开机自动安装系统

这里我们需要定制引导盘,定制步骤如下:

  • cp /media/cdrom/isolinux//tmp/myiso/

  • vim/tmp/myiso/isolinux/isolinux.cfg

  • timeout 600               这一行是开机后选择安装等待的时间,600=60s

  • initrd=initrd.img textks=cdrom:/myks.cfg     text是以字符样子安装系统

  • cp /root/myks.cfg /tmp/myiso/

  • cd /tmp

  • mkisofs -R -J -T -v--no-emul-boot --boot-loadsize 4 --boot-info-table -V "CentOS 7.2 x86_64boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.isomyiso/

这时会在/root/目录下生成boot.iso文件,我们把这个文件发送到windows中就可以使用了,或者直接使用dd命令把这个文件写到光盘或u盘,就可以自动化安装系统了。

总结

  这一节主要是为了实现自动化安装linux,大规模部署linux。首先我们要有一个ks文件,使用system-config-kisckstart定义我们想要安装的系统样式;然后就是制作引导光盘boot.iso



      本文转自Ailu0li 51CTO博客,原文链接:http://blog.51cto.com/oldking/1880509,如需转载请自行联系原作者







相关文章
|
14天前
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
56 20
|
6天前
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
48 7
|
1月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
202 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
1月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
1月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
164 20
|
1月前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
182 7
|
1月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
53 2
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
102 4
|
2月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
88 5
|
2月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
328 0