linux运维、架构之路-Kickstart无人值守
一、PXE介绍
PXE全名Pre-boot Execution Environment,预启动执行环境;通过网络接口启动计算机,不依赖本地存储设备或本地已安装的操作系统;Client/Server的工作模式
二、PXE+Kickstart无人值守过程
三、PXE+Kickstart实现自动化安装系统
1、环境
[root@m01 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 ~]# uname -r
2.6.-.el6.x86_64
[root@m01 ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@m01 ~]# getenforce
Disabled
[root@m01 ~]# hostname -I
10.0.0.61 172.16.1.61
2、配置DHCP服务
yum install dhcp -y #安装DHCP服务
cat >>/etc/dhcp/dhcpd.conf<<EOF
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.120 172.16.1.200; #可分配的地址池
option subnet-mask 255.255.255.0; #子网掩码
default-lease-time ; #默认IP租用期限
max-lease-time ; #默认最大的IP租用期限
next-server 172.16.1.61; #指明tftp服务器的IP地址
filename "/pxelinux.0"; #告知客户端从TFTP根目录下载pxelinux.0文件
}
EOF [root@m01 ~]# /etc/init.d/dhcpd start
Starting dhcpd: [ OK ]
[root@m01 ~]# lsof -i:67 #检查dhcp服务是否启动
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhcpd dhcpd 7u IPv4 0t0 UDP *:bootps
3、配置tftp服务
[root@m01 ~]# yum -y install tftp-server
[root@m01 ~]# sed -i '14s#yes#no#' /etc/xinetd.d/tftp
[root@m01 ~]# /etc/init.d/xinetd start
Starting xinetd: [ OK ]
[root@m01 ~]# lsof -i:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd root 5u IPv4 0t0 UDP *:tftp
4、配置HTTP服务
[root@m01 ~]# yum -y install httpd
sed -i "277i ServerName 127.0.0.1:80" /etc/httpd/conf/httpd.conf #去掉提示信息
[root@m01 ~]# /etc/init.d/httpd start
Starting httpd: [ OK ] [root@m01 ~]# mkdir -p /var/www/html/CentOS6.9 #创建镜像目录
[root@m01 ~]# mount /dev/cdrom /var/www/html/CentOS6.9 #挂载光盘到镜像目录
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@m01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 .9G .8G .8G % /
tmpfs 242M 242M % /dev/shm
/dev/sda1 190M 34M 146M % /boot
/dev/sr0 .7G .7G % /var/www/html/CentOS6.
5、配置PXE启动需要的文件
yum -y install syslinux #为了使用pxelinux.0而安装的包
cp /usr/share/syslinux/pxelinux. /var/lib/tftpboot/ #复制pxe启动文件
cp -a /var/www/html/CentOS6./isolinux/* /var/lib/tftpboot/ #从镜像中复制相关文件
mkdir -p /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/CentOS6.9/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@m01 tftpboot]# ll /var/lib/tftpboot/
total 45356
-r--r--r-- 1 root root 2048 Mar 29 2017 boot.cat
-r--r--r-- 1 root root 84 Mar 29 2017 boot.msg
-r--r--r-- 1 root root 321 Mar 29 2017 grub.conf
-r--r--r-- 1 root root 41587792 Mar 29 2017 initrd.img
-r--r--r-- 1 root root 24576 Mar 29 2017 isolinux.bin
-r--r--r-- 1 root root 923 Mar 29 2017 isolinux.cfg #修改此文件可以定制安装系统界面
-r--r--r-- 1 root root 183012 Mar 29 2017 memtest
-rw-r--r-- 1 root root 26759 Oct 11 05:56 pxelinux.0
drwxr-xr-x 2 root root 4096 Oct 11 05:56 pxelinux.cfg
-r--r--r-- 1 root root 151230 Mar 29 2017 splash.jpg
-r--r--r-- 1 root root 2215 Mar 29 2017 TRANS.TBL
-r--r--r-- 1 root root 163728 Mar 29 2017 vesamenu.c32
-r-xr-xr-x 1 root root 4274992 Mar 29 2017 vmlinuz
此时打开浏览器输入
6、配置ks.cfg文件
[root@m01 ks_config]# mkdir /var/www/html/ks_config/ -p
[root@m01 ks_config]# grub-crypt #设置加密密码
Password:
Retype password:
$$3SU6kWgqSBiRVqre$w8L3Tll51SaEWzxyOBDb8AxIT468hMj0hwmQXqAx1ozQKn3rXHRB7hvp6BewtFRlqljqCmTVvaGje5DQVNNXZ. [root@m01 ks_config]# vi /var/www/html/ks_config/CentOS-6.9-ks.cfg
# Kickstart Configurator for CentOS 6.9 by yan xinjiang
install
url --url="http://172.16.1.61/CentOS6.9/"
text
lang en_US.UTF-
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS6
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYG
WlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
clearpart --all --initlabel
[root@m01 ks_config]# cat /var/www/html/ks_config/CentOS-6.9-ks.cfg
# Kickstart Configurator for CentOS 6.7 by yao zhang
install
url --url="http://172.16.1.61/CentOS6.9/"
text
lang en_US.UTF-
keyboard us
zerombr
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
network --bootproto=dhcp --device=eth1 --onboot=yes --noipv6 --hostname=CentOS6
timezone --utc Asia/Shanghai
authconfig --enableshadow --passalgo=sha512
rootpw --iscrypted $$X20eRtuZhkHznTb4$dK0BJByOSAWSDD8jccLVFz0CscijS9ldMWwpoCw/ZEjYw2BTQYGWlgKsn945fFTjRC658UXjuocwJbAjVI5D6/
clearpart --all --initlabel
part /boot --fstype=ext4 --asprimary --size=
part swap --size=
part / --fstype=ext4 --grow --asprimary --size=
firstboot --disable
selinux --disabled
firewall --disabled
logging --level=info
reboot %packages #选择安装系统需要的一些库和安装包
@base
@compat-libraries
@debugging
@development
tree
nmap
sysstat
lrzsz
dos2unix
telnet %post #可以放安装执行的脚本,可以把自己的优化放在其中
wget -O /tmp/optimization.sh http://172.16.1.61/ks_config/optimization.sh &>/dev/null
/bin/sh /tmp/optimization.sh
%end
7、配置default文件
[root@m01 ks_config]# cat /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt label ks
kernel vmlinuz
append initrd=initrd.img ks=http://172.16.1.61/ks_config/CentOS-6.9-ks.cfg ksdevice=eth1 #告诉安装程序ks.cfg文件在哪里
ksdevice=eth1#指定从eth1网卡安装,不指定的话会让你选择
8、完成无人值守自动安装系统
打开系统电源,喝个小茶,上个厕所回来系统就OK了
linux运维、架构之路-Kickstart无人值守的更多相关文章
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
- Linux运维企业架构实战系列
Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...
- Linux运维企业架构项目实战系列
Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...
- Linux 运维入门到跑路书单推荐
一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...
- 从零起步做到Linux运维经理, 你必须管好的23个细节
“不想成为将军的士兵,不是好士兵”-拿破仑 如何成为运维经理? 一般来说,运维经理大概有两种出身:一种是从底层最基础的维护做起,通过出色的维护工作,让公司领导对这个人非常认可,同时对Linux运维工作 ...
- linux运维工程师面试题收集
面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...
- 从零起步做到Linux运维经理,你必须管好的23个细节
不想成为将军的士兵,不是好士兵-拿破仑 如何成为运维经理?成为运维经理需要什么样的能力?我想很多运维工程师都会有这样的思考和问题. 如何成为运维经理.一般来说,运维经理大概有两种出身,一种是从底层最基 ...
随机推荐
- 《Using Databases with Python》Week3 Data Models and Relational SQL 课堂笔记
Coursera课程<Using Databases with Python> 密歇根大学 Week3 Data Models and Relational SQL 15.4 Design ...
- excel 导入导出测试点
目前,为方便操作,很多系统都会增加批量导入导出的功能.文件导入导出一般格式都是excel.由于用户直接在excel在填写内容,无法控制填写的格 式,加上excel解析比较困难,所以一般涉及到excel ...
- java文件编译后,出现xx$1.class的原因
java编译后的文件名字带有$接数字的就是匿名内部类的编译结果,接名字的就是内部类的编译结果 例如:TestFrame$1.class是匿名内部类的编译结果, TestFrame$MyJob.clas ...
- java锁的使用
1 synchronize和ReentrantLock synchronize锁是jvm内置的锁,它锁的是synchronize所在的类的对象,要同步那么就只能有一个对象. ReentrantLock ...
- urllib基本库的使用
get方法的学习 1import urllib.request 2import ssl 3#设置全局证书 4ssl._create_default_https_context = ssl._creat ...
- PostgreSQL设计之初的大量论文
引自:https://www.docs4dev.com/docs/zh/postgre-sql/11.2/reference/biblio.html#STON86 该网站是一个PostgreSQL手册 ...
- Dubbo 序列化协议 5 连问,你接得住不?
1)dubbo 支持哪些通信协议? 2)支持哪些序列化协议? 3)说一下 Hessian 的数据结构? 4)PB 知道吗? 5)为什么 PB 的效率是最高的? 面试官心理分析 上一个问题,说说 dub ...
- Luogu P4040 [AHOI2014/JSOI2014]宅男计划
题目 显然存活天数与叫外卖次数的函数是凸函数. 所以三分买外卖的次数. 然后把食品按保质期升序排序. 并且单调栈搞一下,把又贵又保质期短的丢掉. 那么随着保质期的增加,食品的价格一定上涨. 所以我们从 ...
- thinkphp整合Ueditor编辑器
编辑器下载地址:http://ueditor.baidu.com/website/download.html#ueditor 放在项目Public或者入口同级目录均可. 前台代码 <div cl ...
- Python 入门之 闭包
Python 入门之 闭包 1.闭包 (1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包 (2)_ closure _ 判断是不是闭包 def func(): a = 1 def foo(): ...