设为首页 收藏本站
查看: 656|回复: 0

[经验分享] CentOS7 下PXE+kickstart自动化安装系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-8-23 09:43:19 | 显示全部楼层 |阅读模式
本帖最后由 2台y 于 2017-8-23 09:45 编辑

一、实验环境

    操作系统:CentOS Linux release 7(Core)

    网卡地址:192.168.100.147/24

    光盘镜像:CentOS-7-x86_64.iso

    安装工具:kickstart + dhcp + tftp + ftp

二、准备工作
2.1 关闭防火墙

[iyunv@localhost ~]# systemctl stop iptables
[iyunv@localhost ~]# systemctl stop firewalld

2.2 关闭selinux

[iyunv@localhost ~]# setenforce 0
[iyunv@localhost ~]# getenforce
Permissive

三、原理和流程图

kickstart+PXE系统自动化安装流程图
pxe_process.png
四、DHCP服务安装及配置
4.1 安装dhcp

[iyunv@localhost ~]# yum install dhcp -y

4.2 配置dhcpd

[iyunv@localhost ~]# vi /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.100.0 netmask 255.255.255.0 {
        option routers                  192.168.100.2;
        option subnet-mask              255.255.255.0;
        option domain-name-servers      192.168.100.2;
        option time-offset              -18000; # Eastern Standard Time  
        range dynamic-bootp 192.168.100.60 192.168.100.100;
        default-lease-time 21600;
        max-lease-time 43200;
        next-server 192.168.100.147;
        filename "pxelinux.0";
}

4.3 启动dhcpd

[iyunv@localhost ~]# systemctl start dhcpd

4.4 dhcp服务测试

[iyunv@localhost ~]# ss -nulp | grep dhcpd
UNCONN     0      0            *:67                       *:*                   users:(("dhcpd",pid=8769,fd=7))
UNCONN     0      0            *:7773                     *:*                   users:(("dhcpd",pid=8769,fd=20))
UNCONN     0      0           :::55406                   :::*                   users:(("dhcpd",pid=8769,fd=21))

也可以启动新服务器,看看能否获取到IP地址
4.5 设置开机自启动(可选)

[iyunv@localhost ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

五、ftp服务安装及配置
5.1 安装vsftpd

[iyunv@localhost ~]# yum install -y vsftpd

5.2 配置vsftpd

使用默认配置即可
5.3 挂载系统盘

系统安装盘挂载到 /var/ftp/pub 目录下,不要挂载到其它地方,因为 /var/ftp 是 anonymous 匿名用户的家目录

如果是光驱,可以这样挂

[iyunv@localhost ~]# mount /dev/cdrom /var/ftp/pub
mount: /dev/sr0 is write-protected, mounting read-only

如果是光盘镜像,可以这样挂

[iyunv@localhost ~]# mount /opt/CentOS-7-x86_64-Minimal-1511.iso /var/ftp/pub -o loop
mount: /dev/loop0 is write-protected, mounting read-only

查看光盘内容

[iyunv@localhost ~]# ls /var/ftp/pub
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

5.4 启动vsftpd服务

[iyunv@localhost ~]# systemctl start vsftpd

5.5 ftp服务器测试

[iyunv@localhost ~]# ftp 192.168.100.147
Connected to 192.168.100.147 (192.168.100.147).
220 (vsFTPd 3.0.2)
Name (192.168.100.147:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,100,147,113,88).
150 Here comes the directory listing.
-rw-r--r--    1 0        0            1068 Aug 09 08:56 ks.cfg
dr-xr-xr-x    8 0        0            2048 Dec 09  2015 pub
226 Directory send OK.
ftp> get ks.cfg
local: ks.cfg remote: ks.cfg
227 Entering Passive Mode (192,168,100,147,126,155).
150 Opening BINARY mode data connection for ks.cfg (1068 bytes).
226 Transfer complete.
1068 bytes received in 6.8e-05 secs (15705.88 Kbytes/sec)
ftp> quit
221 Goodbye.
[iyunv@localhost ~]# ls
anaconda-ks.cfg  ks.cfg

成功拿到 ks.cfg 则表示 ftp 服务正常
5.6 设置开机自启动(可选)

[iyunv@localhost ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

六、tftp服务安装及配置
6.1 安装tftp和xinetd服务

[iyunv@localhost ~]# yum install -y xinetd
[iyunv@localhost ~]# yum install -y tftp-server tftp syslinux-tftpboot

6.2 配置xinetd

[iyunv@localhost ~]# vi /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        #默认disable是yes的,把它改为no即可
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

6.3 配置tftp-server

[iyunv@localhost ~]# cp /var/ftp/pub/images/pxeboot/initrd.img  /var/lib/tftpboot/
[iyunv@localhost ~]# cp /var/ftp/pub/images/pxeboot/vmlinuz     /var/lib/tftpboot/
[iyunv@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[iyunv@localhost ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 60
display boot.msg
label linux
  kernel vmlinuz
  append initrd=initrd.img text ks=ftp://192.168.100.147/ks.cfg

6.4 配置kickstart

以 ~/anaconda-ks.cfg 为模板,再做一些适当的修改

[iyunv@localhost ~]# cp ~/anaconda-ks.cfg /var/ftp/ks.cfg
[iyunv@localhost ~]# vi /var/ftp/ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Install OS instead of upgrade  
install  
# Use network installation  
url --url=ftp://192.168.100.147/pub
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8 --addsupport=zh_CN.UTF-8

# Network information
network  --bootproto=dhcp --device=eno16777736 --onboot=yes --ipv6=auto
network  --hostname=localhost.localdomain

# Root password
# root密码是: rootroot
rootpw --iscrypted $6$7gdZF8XhDef10LyT$2uRiP4qFYaBBTgpggKU/BXKgMDJLWN/BriXXgBwyzkjaz9G9YP/xD08I1OJfgBcPMoURsE5inVIoX.J6aERmR0
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
clearpart --none --initlabel

%packages
@^minimal
@core

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

修改访问权限

[iyunv@localhost ~]# ll /var/ftp/ks.cfg
-rw-------. 1 root root 1083 Aug  8 16:39 /var/ftp/ks.cfg
[iyunv@localhost ~]# chmod +r /var/ftp/ks.cfg
[iyunv@localhost ~]# ll /var/ftp/ks.cfg
-rw-r--r--. 1 root root 1083 Aug  8 16:39 /var/ftp/ks.cfg

6.5 启动tftp服务

[iyunv@localhost ~]# systemctl start xinetd

6.6 测试tftp服务

[iyunv@localhost ~]# ls
anaconda-ks.cfg  ks.cfg
[iyunv@localhost ~]# tftp 192.168.100.147
tftp> get vmlinuz
tftp> quit
[iyunv@localhost ~]# ls
anaconda-ks.cfg  ks.cfg  vmlinuz

如果能成功拿到 vmlinuz 文件,则表示 tftp 服务器状态正常
6.7 设置开机自启动(可选)

[iyunv@localhost ~]# systemctl enable xinetd
Created symlink from /etc/systemd/system/multi-user.target.wants/xinetd.service to /usr/lib/systemd/system/xinetd.service.

七、启动安装

到这里已经配置完成了。

系统安装前,需要设置BIOS从网卡启动,安装完后马上改回去
八、注意事项

    注意dhcp冲突

    注意权限

    注意防火墙

    注意selinux





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-403378-1-1.html 上篇帖子: CentOS6安装和配置rsync 下篇帖子: linux CentOS 7 中LVM讲解配置实例及磁盘扩容等
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表