自动化部署操作系统-Kickstart+PXE自动部署

Kickstart+PXE自动部署

目录:

  • 无人值守安装简介
  • 实战:PXE批量部署linux操作系统
    • 前言
    • 部署dhcp服务
    • HTTP服务
    • TFTP服务
    • 复制PXE启动时需要的文件
    • 修改引导启动菜单
    • 配置kickstart自动安装文件(ks.cfg)
    • 装机测试

无人值守安装简介

无人值守安装(Unattended Setup)指软件安装时无需任何用户干预,直接按默认或通过应答文件设置安装,这对于无特殊需求的用户或企业大批量部署安装操作系统及软件时非常方便。无人值守安装也称为静默安装,在安装过程中可以静默安装好预先设计集成的一些常用软件,安装结束以后软件就已经可以使用,很多软件都支持静默安装


PXE:Pre-boot Execution Environment:一种引导方式,计算机含有个PXE支持的网卡(NIC),即网卡中必须要有PXE Client,这样就可以通过PXE协议从网络启动计算机(网卡必须有PXE芯片),协议分为Client和Server端,PXE Client在网卡的ROM中,当计算机启动引导时,BIOS把PXE Client调入内存运行,由PXE Client将放置在远端的文件通过网络下载到本地运行。运行PXE协议需要设置DHCP服务器和TFTP服务器,DHCP服务器用来给PXE Client (需要安装系统的主机)分配一个IP地址,由于是给PXE Client分配IP地址,所以在配置DHCP服务器时需要增加相应的PXE设置!此外,PXE Client的ROM中,已经存在了TFTPClient。PXE Client 通过TFTP协议到TFTPServer上下载所需文件!


KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装

实战:PXE批量部署linux操作系统

前言

在真实的生产环境中,我们如果遇到新上线很多服务器的话,装系统是件很麻烦的事情,而且工作效率很低,机房辐射这么大,我们掌握了批量安装的技能,就可以在一个小时内,解决几百台或者更多的系统安装,下面来讲下Kickstart+PXE自动部署,以后还会更新Cobbler大家记得关注下

部署dhcp服务

安装dhcp服务器并关闭selinux及iptables

[root@localhost ~]# setenforce 0            #设置selinux为permissive模式        [root@localhost ~]# getenforcePermissive[root@localhost ~]# service iptables stop   #关闭防火墙

[root@localhost ~]# yum -y install dhcp                            #安装[root@localhost ~]# rpm -ql dhcp |grep "dhcpd.conf"                  #检查[root@localhost ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf cp: overwrite `/etc/dhcp/dhcpd.conf‘? y[root@localhost ~]# vim /etc/dhcp/dhcpd.conf                        #配置

配置dhcp服务器

ddns-update-style none;    # 不进行DDNS的更新 ignore client-updates;     # 不允许客户机更新DNS记录

subnet 192.168.1.0 netmask 255.255.255.0    # 与下面的range配合声明可分配IP的范围{        option routers 192.168.1.1 ;        # 设置网关        range 192.168.1.110 192.168.1.120;   # 可分配的起始IP 结束IP        option subnet-mask 255.255.255.0;      # 设定netmask        default-lease-time 21600;              # 设置默认的IP租用期限        max-lease-time 43200;                 # 设置最大的IP租用期限        next-server 192.168.1.2 ;           # 用来告知主机TFTP服务器的ip        filename "/pxelinux.0";      # tftp服务器根目录下面的文件名(pxelinux.0是PXE专用的一个boot loader 文件)}

启动服务

[[email protected] ~]# service dhcpd start                      #启动[[email protected] ~]# chkconfig dhcpd on                       #设置开机启动[[email protected] ~]# netstat -nlptu |grep dhcp                  #检查服务[[email protected] ~]# sed -i ‘s/DHCPDARGS= /DHCPDARGS=eth1/g‘ /etc/sysconfig/dhcpd     #仅在eth1上提供dhcp服务[[email protected] ~]# sed -i ‘s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g‘ /etc/sysctl.conf&&sysctl -p  #开启路由功能

HTTP服务

[[email protected] ~]# yum -y install httpd                     #安装[[email protected] ~]# chkconfig httpd on                      #开机自启动[[email protected] ~]# service httpd start                      #启动服务[[email protected] ~]# mkdir -p /var/www/html/os/6                #创建挂载目录[[email protected] ~]# mount /dev/cdrom /var/www/html/os/6           #挂载系统镜像

TFTP服务

[[email protected] ~]# yum -y install tftp-server                     #安装[[email protected] ~]# vim /etc/xinetd.d/tftp                         #配置service tftp{        socket_type                = dgram        protocol                  = udp        wait                     = yes        user                    = root        server                  = /usr/sbin/in.tftpd        server_args               = -s /tftpboot        #指定默认目录        disable                 = no                    #由原来的yes,改为no        per_source              = 11        cps                     = 100 2        flags                   = IPv4}

复制PXE启动时需要的文件

[[email protected] ~]# yum -y install syslinux  #安装引导程序(提pxelinux.0文件)[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/              #复制引导文件到TFTP的根目录[[email protected] ~]# cp /usr/share/syslinux/{vesamenu.c32,boot.msg,splash.jpg} /tftpboot/ [[email protected] ~]# cp /var/www/html/os/6/images/pxeboot/vmlinuz /tftpboot/     [[email protected] ~]# cp /var/www/html/os/images/pxeboot/initrd.img /tftpboot/[[email protected] ~]# mkdir -p /tftpboot/pxelinux.cfg               [[email protected] ~]# cp /var/www/html/os/6/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default    #拷贝启动菜单

修改引导启动菜单

[root@localhost ~]# vim /tftpboot/pxelinux.cfg/default                                  //然后修改下22行(即在后面添加ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp)。第22行的意思是使安装程序通过http服务器访问kickstart文件。#配置文件label linux  menu label ^Install or upgrade an existing system  menu default  kernel vmlinuz  append initrd=initrd.img ks=http://192.168.1.2/ks.cfg ksdevice=eth0 ip=dhcp

//检测文件[root@localhost ~]# chmod 644 /tftpboot/pxelinux.cfg/default                    #设置文件权限[root@localhost ~]# ls /var/lib/tftpboot       #检查boot.msg  initrd.img  pxelinux.0  pxelinux.cfg  splash.jpg  vesamenu.c32  vmlinuz

配置kickstart自动安装文件(ks.cfg)

[[email protected] ~]# yum -y install system-config-kickstart  #建议在图形化界面内安装配置[[email protected] ~]# echo $LANGen_US.UTF-8[[email protected] ~]#.UTF-8[[email protected] ~]# system-config-kickstart

图形化界面配置:(终端中运行system-config-kickstart命令)图形界面不在介绍,可设置中文,和安装的选项没什么区别(保存到/var/www/html/目录下)前面引导菜单里面指定了

作者的ks.cfg 我是通过system-config-kickstart制作的

#platform=x86, AMD64, 或 Intel EM64T#version=DEVEL# Firewall configuration    firewall --disabled                     #禁止防火墙# Install OS instead of upgradeinstall                                 #告知安装程序,这是一次全新安装,而不是升级# Use network installationurl --url="http://192.168.1.2/os/6"# Root passwordrootpw --iscrypted $1$H8k1EIfB$BD1WyfZ4SkDNsypX1jjgR0   #设定root的密码# System authorization informationauth  --useshadow  --passalgo=sha512    #设置密码加密方式为sha512 启用shadow文件# Use text mode installtext                                    #使用文本模式安装firstboot --disable                     #禁止firstboot,firstboot就是我们使用图形化安装完系统,重启后有一个初始设置# System keyboardkeyboard us                             #使用美式键盘# System languagelang en_US                              #默认语言是英语# SELinux configurationselinux --disabled                      #禁止selinux# Installation logging levellogging --level=info                    #设定安装过程中的日志级别# Reboot after installationreboot                                  #设定安装完成后重启# System timezonetimezone  Asia/Shanghai                 #设置时区# Network informationnetwork  --bootproto=dhcp --device=eth0 --onboot=on #设置安装完成后的网络# System bootloader configurationbootloader --location=mbr# Clear the Master Boot Recordzerombr                                 #清空mbr# Partition clearing informationclearpart --all --initlabel             #清空所有分区# Disk partitioning informationpart /boot --fstype="ext4" --size=200   #新建/boot分区part swap --fstype="swap" --size=2048   #新建swap分区part / --fstype="ext4" --grow --size=1  #新建swap分区

%post#加上优化脚本mkdir /shellcd /shell/usr/bin/wget http://192.168.1.2/shell.tar.gz/bin/tar -zxf shell.tar.gz/bin/sh *.sh %end#安装包我选择的是Basic模式,添加了中文支持%packages@base@chinese-support@development@kde-desktop

%end

注意:如果自己制作ks.cfg  root的密码生成

grub-crypt                            #密方式为sha512生成的密码Password: rhceRetype password: rhce$6$QHOksakPohOoVUL9$CNCHfAMYDZZZzZixAGGKCWdPkK8qVvpRk9DkaDOJtrRXlJkzk5GHMZ9zqCTdr8Qiozl9qHOVT5XnbGaZKt06d0

装机测试

新建一台虚拟机,如果不是千万不要把网卡调到第一位,不然会一直重装,客户端必须能获取分配的地址

安装成功,登录界面

时间: 2024-12-22 06:46:11

自动化部署操作系统-Kickstart+PXE自动部署的相关文章

Kickstart+PXE自动部署CentOS6.6

生产环境中对于部署大量的相同系统的服务器,如果逐台安装操作系统的话是非常浪费时间的工作,还好CentOS提供了无人值守安装系统的功能,下面就详细介绍一下配置步骤. 一.配置本机的yum源 因为需要安装一些软件来达到我们的目的,所以最好先把yum源配置好. 将光盘挂载到/media/目录下. 二.安装所需要用到的软件 tftp:简单文件传输协议,用于向客户端提供安装引导相关的文件. dhcp:动态主机配置协议,为客户端分配IP地址. http:为客户端提供系统安装时所需的文件. system-co

Linux PXE 自动部署操作系统

服务器搭建环境:server1:eth0:192.168.10.10/24 RHEL 5.8 一.安装必要的软件包mount /dev/hdc /mnt/iso/yum -y install vsftpd tftp tftp-server syslinux dhcp 二.配置DHCP服务器,注意1echo 'ddns-update-style interim;ignore client-updates; allow booting;allow bootp; subnet 192.168.10.0

eclipse上部署到tomcat不能自动部署maven管理的额jar包

原文地址:https://www.cnblogs.com/microcat/p/9026878.html

CentOS6.5PXE自动部署

设置好本机IP 关闭防火墙和Selinux 配置好yum仓库 安装dhcp.http.tftp 启动http,xinetd设置开机自启动 配置dhcp 把模板复制到配置文件 进入配置dhcp 找到并编辑成如下 配置成功 在httpd的默认目录下新建centos6.5目录,并将光盘挂载或将光盘内容复制到该目录上,这里用挂载 复制pxe安装需要的内核文件文件到tftpboot 注意这个. 代表复制到当前目录下 安装syslinux,提取pxelinux.0到tftpboot下 在tftpboot下新

jenkins实现项目自动部署

背景 整体思路 实现方式 1 自动化部署脚本 2 远程执行 3 配置jenkins任务 背景 之前给公司搭建过一套gitlab+gerrit+jenkins的持续集成环境,由于操作起来有点繁琐,自己也没太搞清楚该怎么用,所以一直就只用了gitlab来做代码管理.最近要做一个项目自动部署的功能,使用过jenkins一定知道他的自动化功能.所以就从jenkins创建自动部署任务的方式来入手. 整体思路 jenkins可以配置触发器,当有新的提交时,触发执行相应的任务.由于jenkins和项目部署不在

Gitlab+Jenkins实现自动部署

系统环境: Gitlab主机 IP:192.168.1.2 Jenkins主机 IP:192.168.1.3 一.为何要做自动部署 #为什么要做自动部署,因为懒啊!!! 二.配置Gitlab #首先,你得有一个代码仓库,赶紧到gitlab上创建一个,然后创建个分支并创建一个文件. #其次,你得配置一个ssh公钥到gitlab上,这样才能模拟开发上传代码到gitlab. #至于ssh公钥私钥怎么生成,自己百度去. #克隆代码仓库,然后测试是否能够上传代码到gitlab git clone [ema

运维自动化之系统部署(kickstart、PXE)

anaconda anaconda负责安装系统向导,默认为GUI界面,如果我们使用ks自动应答安装的话建议使用TUI界面来安装 在安装启动界面我们可以按esc键来自己手动指定安装启动选项 anaconda选项: 1)linux askmethod 在稍后的安装中手动选择安装源 本地光盘.硬盘.NFS.FTP.HTTP 2)linux dd 加载驱动盘 3)linux ks=xxx   指定安装ks文件 DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE Har

kickstart自动部署centos

kickstart自动部署centos 工作中,我们有时候需要安装几十上百台服务器,这种情况下用u盘或者光驱逐台安装,太花时间与人力,显然不现实,所以应该选择自动化部署操作系统的方式,自动化部署操作系统的工具有很多,这里我用的是kickstart这个工具. kickstart原理: kickStart是一种无人职守安装方式.KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为ks.cfg的文件:在其后的安装过程中(不只局限于生成KickStart安装文

他们真的来了:PXE远程部署装机,进阶版kickstart无人值守装机(实验可跟做)

各位小伙伴今天给大家带来的是:PXE远程部署装机以及kickstart无人值守装机的内容,我们将从以下几点进行解析和实验 部署PXE远程安装服务: 1.搭建PXE远程安装服务器 2.验证PXE网络安装 实现Kickstart无人值守安装: 1.准备安装应答文件 2.实现批量自动装机 服务器的批量部署: 1.规模化:同时装配多台服务器 2.自动化:安装系统.配置各种服务 3.远程实现:不需要光盘.U盘等安装介质 PXE远程装机实验: 实验环境: 1.建议在局域网环境下使用(两台centos7,一台