Linux系统基于网络的自动化安装

    安装一个操作系统对一个普通人来说是一件非常麻烦的事了。而对于一个专业人士来说,应该是一个非常轻松的事。但是这样的情况也仅限于有限的几台需要安装。在实际工作的中,我们经常会遇到这样的情况:有大批量的计算机需要同时安装Linux,或者想要安装Linux但是计算机没有光驱,或者是通过光驱的方式一个个安装。这样安装不仅效率低,也不利于以后的维护。这个时候你就需要利用网络的强大功能了。它可以帮你基于网络来完成全自动化的安装,中间不需要人工去干预。这就是cobbler服务

    cobbler服务是一个快速网络安装linux 操作系统的服务。它支持众多的Linux 发行版本:Red Hat 、Fedora 、CentOS 、Debian 、Ubuntu和SuSE ,也可以支持网络安装windows。它同时提供了CLI 和Web的页面管理形式。

    本文所提到的基于网络的系统自动化安装方案主要用到了以下的几个协议和技术:

       -- PXE(Preboot Execution Environment / 远程引导技术)

      -- DHCP(Dynamic Host Configuration Protocol / 动态主机配置协议)

      -- TFTP(Trivial File Transfer Protocol / 普通文件传输协议)

      -- HTTP(Hyper Text Transfer Protocal /超文本传输协议)

    cobbler的工作流程:

      1、client 裸机配置了从网络启动后,开机后会广播报文请求DHCP 服务器(cobbler server )为其发送一个分配好的IP地址

      2、DHCP 服务器(cobbler server )收到请求后会返回一个responese ,包括其分配的ip 地址

      3、client 裸机拿到ip 后再向cobbler server 发送一个安装OS引导文件的请求

      4、cobbler server 告诉裸机OS 引导文件的名字和TFTP server 的ip和port

      5、client 裸机通过上面告知的TFTP server 的通信地址,下载引导文件

      6、client 裸机执行执行该引导文件,确定加载信息,选择要安装的OS,期间会再向cobbler server 请求kickstart 文件和os image

      7、cobbler server 再次回应请求的kickstart 和OS iamge文件位置
      8、client 裸机加载kickstart 文件
      9、client 裸机接收OS image ,安装该OS image

      10、客户端启动

    下面就来说说配置cobbler的步骤:

      一、先安装cobbler、dhcp服务,并开启对应服务(在CentOS 7 上安装)

        yum  install  -y  cobbler  dhcp(安装cobbler和dhcp)   

        systemctl enable cobblerd(设置cobbler服务为开机自启)
       systemctl start cobblerd(打开cobbler服务)
       systemctl enable tftp(设置tftp服务为开机自启)
       systemctl start tftp(打开tftp服务)
       systemctl enable httpd(设置httpd服务为开机自启)
       systemctl start httpd(打开httpd服务)

     二、检查cobbler的配置文件

       cobbler  check:这一步会检查cobbler的配置文件是否完整。第一次执行会出现很多的错误报告,我们需要跟着这些错误报告来一步步的更改它。

      根据cobbler  check的提示,我们来一步步的完善它。

      1)修改配置文件

        vim  /etc/cobbler/setting

        这里面我们只需要更改四处就可,

        找到这一行:default_password_crypted: "$1$8ckh4FrM$ayLsgQi85bi8Nt5Gj4Drj/" 这里的密码是需要更改的

        先利用openssl passwd -1 生成口令,然后把生成的口令来替换掉这一窜随机数
        这一行:next_server: 127.0.0.1   这里把你本机的ip地址更改上去就可(他是提供tftp里repo源文件位置的地址)
        这一行:manage_dhcp: 0  这里0改为1 (表示打开DHCP为client分配ip地址)
        这一行:server: 1172.0.0.1 这里改为自己本机的ip(12.168.35.5)地址(表示为client提供cobbler服务的主机地址)

      2)更改tftp配置文件

        这个根据提示修改/etc/xinetd.d/tftp里的disabled 为on

          vim  /etc/xinetd.d/tftp

      3)配置DHCP服务模板

        vim  /etc/cobbler/dhcp.template

      

        这里就修改两个地方:subnet 192.168.25.0 netmask 255.255.255.0 {
                    range dynamic-bootp 192.168.25.100 192.168.25.254;

        修改完成后重启cobbler服务,并同步cobbler配置文件

          systenctl  restart  cobbler

          cobbler  sync

        这样DHCP文件就配置完成,可以打开DHCP服务了

          systemctl  enable  dhcpd(设置dhcp为开机自启)

          systemctl  start  dhcpd (打开dhcp服务)

      4)准备启动文件和和菜单风格文件

        如果主机连接在internet上那么就好办了,我们只需要一步就可
          cobbler get-loaders (执行这条命令,他会自动连网下载所需的启动文件与菜单界面)

          他会把下载到的文件放置到 /var/lib/cobbler/loaders这个目录下

      5)关闭本机的selinux与防火墙,这是为了能使外部的网络请求可以不被这些策略拒绝在外而接收不到请求

        setenforce  0  (关闭selinux策略)

        iptables  -F  (关闭防火墙)

        当然这些方法都是临时的,如果想长期更改还需要更改他们的配置文件。当然这样并不安全,所以这里我们就临时更改一下

      6)像提示里的rsync、debmirrior与fencing  tools这几个提示可以不用理会,因为这里我们用不到它。

      然后重新启动cobbler服务:

        systemctl  reestart cobblerd(重启服务)

        cobbler  sync (重新载入配置文件)

     三、配置安装系统所需要的yum源

        这需要把光盘里的文件导入到cobbler的服务目录里,为系统的安装准备好文件

        cobbler  import  --path=/misc/cd  --name=centos7_test  --arch=x86_64 (导入光盘文件)
        cobbler distro list (这时就可查看导入的文件所生成的yum的库名了)

     四、生成kickstart引导文件

        到这里我们就要导入自己制作的安装的引导文件了,这个引导文件需要我们根据安装所需要的包来自己手动制作,同时也可根据系统生成的文件来加以修改也可以。下面就是一个根据系统的配置文件修改的ks引导文件ks.cfg

    vim /anaconda-ks.cfg

    
       

    到此kickstart  文件编辑完成

    我们要把这个文件导入进cobbler的服务路径里

    cp  anaconda-ks.cfg  /var/lib/cobbler/kickstarts/ks7.cfg (复制这个制作好的文件到cobbler的目录下存放)

    chmod +r  ks7.cfg  (要记得更改这个文件的权限,不然其他人是无权查看这个引导文件的)

    cobbler  profile  add  --name=centos7_hello  --distro=centos7_test  --kickstart=/var/lib/cobbler/kickstarts/ks7.cfg(导入ks.cfg文件为centos7_hello 这个菜单名下的引导文件)

    systemctl  restart  cobblerd (再次重启这个服务)

    cobbler sync(同步配置文件)

      服务端的配置准备完成。

    五、配置客户端。将客户端连入这个网内,启动电源,选择菜单

      

     安装中:

      

      安装完成后,就可以以root的身份来登录进系统,它的密码就是当初设定在ks.cfg文件里的密码。登录后就可以进行各种操作了

时间: 2024-10-12 16:58:13

Linux系统基于网络的自动化安装的相关文章

基于cobbler实现自动化安装系统

基于cobbler实现自动化安装系统 环境介绍 centos6.8 为centos6.8提供两块网卡 (非必要) 一块为桥接,方便xshell连接和测试 一块为vmnet3:用来搭建dhcp,tftp,和为客户端提供cobbler服务 前提,(确保安装TFTP,dhcp,rsync) # yum install httpd cobbler cobbler-web pykickstart debmirror 1.启动对应的服务 # service httpd start # service cob

Linux系统下手把手完成无人值守安装服务

Linux系统下手把手完成无人值守安装服务 刚入职的运维新手经常会被要求去做一些安装操作系统的工作,如果按照用镜像光盘安装操作系统,效率会相当低下.那么如何提升效率,搭建出一套可以批量安装Linux系统的无人值守的安装系统? PXE+TFTP+FTP+DHCP+Kickstart服务可以搭建出一个无人值守安装系统.这种无人值守安装系统可以自动的为数十台服务器安装系统,将运维人员从重复性的工作中解救出来,大大提升了系统安装的效率. 如上图所示,是无人值守安装系统的工作流程. PXE(Preboot

推荐一款轻量级的linux系统和网络监控工具

Monitorix介绍: 是一款开源.免费,功能强大的轻量级Linux系统和网络监控工具,它通过搜集系统和网络的信息,并且通过web接口展示出来. 使用perl语言编写,使用rrdtool生成图形,并且在web上展示. 安装 for centos,rhel,fedora 1.安装依赖包 # yum install rrdtool rrdtool-perl perl-libwww-perl perl-MailTools perl-MIME-Lite perl-CGI perl-DBI perl-X

WMware 下linux系统连接网络

近日因学习需要尝试安装Linux开源操作系统,当然是在虚拟机环境下安装,选择的Distribution是CentOS(Community Enterprise Operating System).用惯了Windows,初步用起来还是步履维艰,遇到的第一个问题就是安装好Linux操作系统之后连不上Internet.下面就这一问题的解决过程总结一下,由于博主对网络技术领域的知识知之甚少,下面关于原理方面的介绍属于个人理解,重点在于解决遇到的实际问题. 首先介绍一下VMware的网络连接方式.我们的主

pxe+kickstart 实现基于网络的无人值守安装操作系统

基于网络的无人值守安装操作系统 简介: 1.pxe PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议

Linux下基于源码方式安装MySQL 5.6

MySQL为开源数据库,因此可以基于源码实现安装.基于源码安装有更多的灵活性.也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整.本文描述了如何在源码方式下安装MySQL. 1.安装环境及介质#安装环境SZDB:~ # cat /etc/issueWelcome to SUSE Linux Enterprise Server 10 SP3

Linux系统下JDK和Tomcat安装配置

Linux系统下JDK安装配置 1. 从oracle网站下载需要的JDK软件 :jdk-6u39-linux-i586.bin http://www.oracle.com/technetwork/java/javase/archive-139210.html 然后通过FTP上传到linux服务器上. 2. 将文件copy到/usr目录下 [[email protected] wendy]# cp jdk-6u39-linux-i586.bin /usr/ 3. 给文件添加执行权限: [[emai

在Linux系统中为PHP5.3安装Zend Guard Loader

从PHP5.3开始如果要支持ZendGuard加密的PHP代码,必须安装Zend Guard Loader,老的zend optimizer将不被支持. 本文介绍如何在Linux系统中为PHP5.3安装Zend Guard Loader支持的过程. 操作系统为CentOS5.5,PHP版本为5.3.8(CentOS5.5中的PHP默认版本较低,如果要升级到PHP最新版,可以使用remi的report源进行升级). 1.Zend Guard Loader官方下载地址: i386版下载地址: htt

(转)Linux系统基础网络配置老鸟精华篇

Linux系统基础网络配置老鸟精华篇 原文:http://blog.51cto.com/oldboy/784625 对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太多的初学者徘徊在门外就不奇怪了,这里,老男孩老师花了一些时间总结了这个文档小结,也还不够完善,欢迎大家补充,交流.谢谢大家!20120827补充:http://oldboy.blog.51cto.com/2561410/974194 深入浅出route命令小结目录:1)配置修改主机名hostname