Linux 运维工具---pxe&dhcp

Linux 运维工具---pxe&dhcp&tftp

============================================================================

概述:


============================================================================

运维工作

 1.运维工具(Operations)介绍

★BootStraping:安装系统工具

  • Bare Metal(物理设备):pxe, cobbler
  • Virtaul Machine(虚拟设备):image files

Configuration:系统配置工具

  • puppet(ruby) 重量级的工具
  • saltstack(python)
  • ansible      轻量级工具
  • chef
  • cfengine

    ...

Command and Control:指挥控制工具

  • func
  • ansible
  • fabric

    ...

2.程序发布

★方式:

  • 人工智能(手动发布)
  • 脚本
  • 发布程序(运维系统)

要求:

  • 不能影响用户体验;
  • 系统不能停机;
  • 不能导致系统故障或造成系统完全不可用;

灰度模型:

  • 基于主机
  • 基于用户

发布路径:要在老版本的基础上发布,出现故障方便回滚

/webapps/data/waimai

/webapps/data/waimai-1.1

/webapps/data/waimai-1.2

/webapps/data/waimai-1.3

/webapps/data/waimai-1.4

★基于主机灰度发布过程:

  • 在调度器上下线一批主机(标记为维护模式)--> 关闭服务 --> 部署新版本 --> 启动服务 --> 在调度器启用这一批主机;

BootStraping:系统提供(OS Provision)

 1.技术介绍

★涉及技术:

  • pxe --> preboot excution environment(预引导执行环境),inter公司开发
  • cobbler:可以将多个pxe整合在一起,让用户判断选择要安装哪个系统

    Cobbler is a network install server.Cobbler supports PXE, ISO virtualized installs, and re-installing existing Linux machines.


pxe所依赖的服务:

  • dhcp service (ip/nemask, gw, dns; filename, next-server)完成地址自动分配
  • tftp server :提供bootloader, kernel, initrd文件
  • yum repository :可以基于ftp, http, https, nfs提供
  • kickstart

附图:

  pxe装机过程

dhcp server:

 1.服务介绍

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

  • arp --> address resolving Protocol  //地址解析协议

    功能:IP --> MAC

  • rarp --> reverse arp                //反向地址解析协议

    功能:MAC --> IP

bootp --> boot protocol        //引导协议(无盘工作站)

dhcp: lease time, bootp    //引入租约的概念,向后兼容bootp协议

工作流程:

全程都为广播,在局域网内,无法跨域物理路由

  • Client:dhcp discover;客户端发送发现报文
  • Server: dhcp offer(IP/Netmask, GW, DNS Server, NTP Server, Wins Server, .)  服务器收到报文之后提供响应报文
  • Client:dhcp request  //客户端租约的选择
  • Server:dhcp ack      //服务端租约确认

lease time:租约期限;过程

  • 续租:50%, 75%, 87.5%, 93.75%
  • dhcp discover,.
  • 再次续租:(单播)..

    dhcp request

    dhcp ack|nak

dhcp如果想为多个网络提供服务,要用到dhcp relay(中继)

附图:

  dhcp工作流程

★dhcp协议的实现:

  • dhcp(isc.org)

    -The dhcp package provides the ISC DHCP service and relay agent.

  • dnsmasq (dns, dhcp)
[[email protected] ~]# yum info dhcp
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Available Packages
Name        : dhcp
Arch        : x86_64
Epoch       : 12
Version     : 4.2.5
Release     : 42.el7.centos
Size        : 511 k
Repo        : CDROM
Summary     : Dynamic host configuration protocol software
URL         : http://isc.org/products/DHCP/
License     : ISC
Description : DHCP (Dynamic Host Configuration Protocol) is a protocol which
            : allows individual devices on an IP network to get their own
            : network configuration information (IP address, subnetmask,
            : broadcast address, etc.) from a DHCP server. The overall
            : purpose of DHCP is to make it easier to administer a large
            : network.
            : 
            : To use DHCP on your network, install a DHCP service (or relay
            : agent), and on clients run a DHCP client daemon.  The dhcp
            : package provides the ISC DHCP service and relay agent.

 2.DHCP程序环境介绍

★程序环境:

dhcp server:

  • 程序:/usr/sbin/dhcp
  • IPV4网络:

    配置文件: /etc/dhcp/dhcpd.conf

    UNit File:/usr/lib/systemd/system/dhcpd.service

  • IPV6网络

    配置文件: /etc/dhcp/dhcpd6.conf

    UNit File:/usr/lib/systemd/system/dhcpd6.service

dhcrelay:中继器

  • 程序:/usr/sbin/dhcrelay
  • UNit File:/usr/lib/systemd/system/dhcrelay.service

监听的地址和端口:

  • Server: 67/udp
  • Client: 68/udp

3.DHCP配置介绍

★配置文件:

  • /etc/dhcp/dhcpd.conf(CentOS 7需把示例文件复制过来)

配置指令

  • option选项:配置给客户端的相信息(如网关,dns等);
  • 指令:定义dhcp server的工作特性;

配置有级别之分:

  • 全局配置
  • 子网配置
  • 主机配置

注意:作用范围越小,优先级越高

常用的配置:

实验:

1.实验环境描述:

  • 准备两台虚拟主机(我这里是两台CentOS 7),一台作为DNS服务器,一台作为客户端;
  • 因为dns是局域网的协议,所以要保证两台主机要在同一网段,为了保证外网不受干扰,我这里的两台虚拟机模式为 VMnat1通信;

2.配置DNS服务器,设定子网和起始地址;

 1)编辑配置文件/etc/dhcp/dhcpd.conf(这里是复制的示例文件),添加自己定义的配置均项,如下:

 2)保存退出,然后启动dhcp服务,并查看监听的端口67/udp

[[email protected] dhcp]# systemctl start dhcpd.service
[[email protected] dhcp]# ss -unl
State       Recv-Q Send-Q                                      Local Address:Port                                                     Peer Address:Port              
UNCONN      0      0                                                       *:67                                                                  *:*                  
UNCONN      0      0                                                       *:68                                                                  *:*                  
UNCONN      0      0                                                       *:43328                                                               *:*                  
UNCONN      0      0                                               127.0.0.1:323                                                                 *:*                  
UNCONN      0      0                                                       *:16300                                                               *:*                  
UNCONN      0      0                                                       *:514                                                                 *:*                  
UNCONN      0      0                                                      :::20100                                                              :::*                  
UNCONN      0      0                                                     ::1:323                                                                :::*                  
UNCONN      0      0                                                      :::63303                                                              :::*                  
UNCONN      0      0                                                      :::514                                                                :::*

3.启动客户端主机,查看能否自动获取的地址,地址是否在我们限定的子网网段中

  1)客户端主机获取地址过程如下,获取到的地址为10.1.249.202,在我们限定的子网中;

客户端网关如下

4.我们也可以给一个主机固定分配地址,只要获取该主机的MAC地址即可

 1)首先编辑dns服务器的配置文件,添加 host passacaglia配置段即可,如下:

 2)再次查看客户端的ip,发现我们设置的地址成功作用在客户端,IP地址如下:

 网关如下:(说明:全局配置段中已经指明网关,但是作用范围越小,优先级越高)

如上,DNS服务器的配置和使用的整个过程。。。

=======================================================================================

PXE用到的其他指令:

在pxe主机启动时,除了会分配ip地址外,还要告诉其内核文件的引导文件名称和地址,所用到的指令如下:

★filename:指明引导文件名称;

next-server:指明引导文件所在的服务器的主机IP;(为tftp server)


示例:

 filename “pxelinux.0";
 next-server 10.1.0.6;()
    tftp server

tftp server:

 安装配置详解

★tftp:Trivial File Transfer Protocol(简单文件传输协议)

☉作用:用于引导无盘工作站

[[email protected] ~]# yum info tftp-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Available Packages
Name        : tftp-server
Arch        : x86_64
Version     : 5.2
Release     : 12.el7
Size        : 44 k
Repo        : CDROM
Summary     : The server for the Trivial File Transfer Protocol (TFTP)
URL         : http://www.kernel.org/pub/software/network/tftp/
License     : BSD
Description : The Trivial File Transfer Protocol (TFTP) is normally used only for
            : booting diskless workstations.  The tftp-server package provides the
            : server for TFTP, which allows users to transfer files to and from a
            : remote machine. TFTP provides very little security, and should not be
            : enabled unless it is expressly needed.

★安装

  • # yum install tftp-server tftp -y

★监听端口:

  • 69/udp

★启动程序

  • CentOS 7:

# systemctl start tftp.socket

  • CentOS 6:

# chkconfig tftp on

# service xinetd restart

默认的文件根目录:

  • /var/lib/tftpboot/

演示:

  1.安装tftp-server,tftp(客户端),然后查看其生成的文件如下:

[[email protected] ~]# yum install tftp-server tftp -y
[[email protected] ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket     # 启动服务
/usr/sbin/in.tftpd                      # 主程序文件
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot                       # 默认的文件根目录

 2.启动tftp-server服务,查看端口69/udp

[[email protected] ~]# systemctl start tftp.socket
[[email protected] ~]# ss -unl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
UNCONN      0      0              *:68                         *:*                  
UNCONN      0      0      127.0.0.1:323                        *:*                  
UNCONN      0      0              *:3031                       *:*                  
UNCONN      0      0              *:514                        *:*                  
UNCONN      0      0             :::69                        :::*                  
UNCONN      0      0             :::46863                     :::*                  
UNCONN      0      0            ::1:323                       :::*                  
UNCONN      0      0             :::514                       :::*

 3.现在我们用客户端命令tftp验证tftp-server服务能否正常工作

[[email protected] tmp]# cp /etc/fstab /var/lib/tftpboot/ # 首先向默认目录下复制一个文件
[[email protected] tmp]# tftp 10.1.249.201                # 使用客户端命令连接服务器
tftp> help
tftp-hpa 5.2
Commands may be abbreviated.  Commands are:

connect 	connect to remote tftp
mode    	set file transfer mode
put     	send file
get     	receive file
quit    	exit tftp
verbose 	toggle verbose mode
trace   	toggle packet tracing
literal 	toggle literal mode, ignore ‘:‘ in file name
status  	show current status
binary  	set mode to octet
ascii   	set mode to netascii
rexmt   	set per-packet transmission timeout
timeout 	set total retransmission timeout
?       	print help information
help    	print help information
tftp> get fstab    # 下载复制过去的文件
tftp> quit         # 退出
[[email protected] tmp]# ls
fstab              # 查看下载成功


综上,有了DHCP和tftp-server之后我们就可以配置pxe环境了。。。

Linux 运维工具---pxe&dhcp

时间: 2024-10-27 07:08:10

Linux 运维工具---pxe&dhcp的相关文章

自学Linux运维工具1.1-htop

自学Linux运维工具 自学Linux运维工具1.1-htop 2002年10月DeviceNet被批准为中国国家标准GB/T18858.3-2002,并于2003.4.1起实施.目前,Devicenet技术属于"开放DeviceNet厂商协会"ODVA组织所有及推广.ODVA在世界范围拥有300多家著名自动化设备厂商的会员(如Rockwell.ABB.Omron等).我国的ODVA组织由上海电器科学研究所牵头成立,目前正积极推广该技术. 关于DeviceNet,后面详细介绍. 1.D

linux运维工具nc

Netcat被称为tcp/ip最好用的工具,也是linux开发/运维人员的必备技巧: 1.安装nc yum install nc -y 2.常用功能 2.1 端口测试 查看服务器的某个端口是否开启 nc -vz ip portnc -vz 192.168.1.1 80-v:显示多点信息-z:不发送数据 例如: 端口范围扫描 nc -v -v -w3 -z 192.168.1.1 80-88两次-v显示更详细的内容:-w3:设置扫描超时时间 3秒: 2.2 传输测试 192.168.1.1 nc

奔跑中的2015:Linux运维学习八大禁忌

随着Linux服务器在企业中的日益普及,高级Linux运维工程师岗位缺口也在递增.目前,为企业人才输送人才的各大院校,很少有开设Linux课程.我所了解和接触从事Linux运维工作同事和朋友多半是半路出家,很少有一出校门就去做Linux运维的相关工作.问其为何学习Linux因为技术?有的人说是兴趣所致,也有的人说是由于工作需要,可以说后者有点被迫无奈,但是痛并快乐着. Linux运维学习可以说"入门不易,深入更难",由于Linux系统主要是使用命令和脚本操作的特点:尤其多数Linux操

46 puppet master-agent模型、运维工具介绍及pxe环境的实现、cobbler简单实现、CentOS7 cobbler

01 puppet master-agent模型 配置环境 node1 192.168.1.131 CentOS7.2 node2 192.168.1.132 CentOS7.2 node3 192.168.1.133 CentOS7.2 node4 192.168.1.134 CentOS7.2 1.agent节点扩展为master节点 [[email protected] ~]# yum -y install puppet-server-3.8.4-1.el7.noarch.rpm [[em

要做linux运维工程师的朋友,必须要掌握以下几个工具才行 ...

   本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了.linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 .....工具如下: 1.linux系统基础,这

<zz>linux运维自动化shell脚本小工具

from http://www.cnblogs.com/wang-li/p/5728461.html linux运维shell 脚本小工具,如要分享此文章,请注明文章出处,以下脚本仅供参考,若放置在服务器上出错,后果请自负 1.检测cpu剩余百分比 #!/bin/bash #Inspect CPU #Sun Jul 31 17:25:41 CST 2016 PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/hom

【转】 要做linux运维工程师的朋友,必须要掌握以下几个工具才行

      本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧 说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具. 我就大概列出这几方面,这样入门就基本没问题了. linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 ..... 工具如下: 1.linu

13款Linux运维比较实用的工具

本文介绍几款Linux运维比较实用的工具,希望对Linux管理员有所帮助. 1.查看进程占用带宽情况-Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽. 下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download [[email protected] ~]#yum  -y install libpcap-devel  ncurse

linux运维工程师,必须掌握以下几个工具

本人是linux运维工程师,对这方面有点心得,现在我说说要掌握哪方面的工具吧说到工具,在行外可以说是技能,在行内我们一般称为工具,就是运维必须要掌握的工具.我就大概列出这几方面,这样入门就基本没问题了.linux系统如果是学习可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,但学习者还是以这2个版本学习就行,因为这两个版本都是兄弟,没区别的,有空可以再研究一下SUSE,有些公司也喜欢用,例如我公司 .....工具如下: 1.linux系统基础,这个不用