linux服务器⾃动化部署和管理
互联⽹从诞⽣开始,就打破了计算机各⾃独⽴的局⾯,将⽆数的计算机连接成巨⼤的信息交互⽹络。⼀⽅⾯⽹络中的每⼀个节点都需要提供稳定的服务,⼀个节点可能就是由数⼗上百台的服务器构成,如果这些服务器需要完全⼀致的安装设置和软件配置,靠⼈员⼿动操作效率太低和难免出错。
另⼀⽅⾯,⽹络的⼀端到另⼀端可能跨越半个地球,要想对相距遥远的两台服务器进⾏统⼀的安装和初始化,除了派送⼈员安装,另外⼀个不错的⽅法就是利⽤覆盖全球的⽹络进⾏远程安装。
这就引出2个系统安装的需求:能全⾃动地对数⼗台服务器做统⼀的安装设置;能通过⽹络对远程的服务器进⾏安装。
pxe技术就完全满⾜了这2个需求,pxe相较于前者有着不少的优势,使⽤pxe不需要额外添加硬件设备,在原有的⽹卡固件上就能实现。它解决了tftp+b00tp+dhcp⽅案不能提供定制设置的问题。另外⼩型化的pxe占⽤的资源很少。其能⽀持的客户端很多,从功能完备、算⼒强⼤的⼤型计算机到功能专⼀且⼩巧的单⽚机,都有很好的⽀持,本研究有⼀定的现实意义。
⼀、整体⽅案
pxe需要dhcp服务的⽀持,dhcp给客户端分配⼀个合法ip地址并告知tftp的ip地址,使客户端能从tftp获取引导⽂件pxelinux.0、内核⽂件vmlinuz和initrd.img等。再根据菜单配置⽂件defau11提供的光盘镜像⽂件和应答⽂件在⽹络中的位置,客户端取得光盘镜像,并根据应答⽂件的设置进⾏⾃动安装。最后运⾏应答⽂件中的初始化脚本,完成初始化。服务器响应服务图如图1所⽰。
⼆、pxe各个服务的具体部署
(1)pxe服务器提供dhcp服务
⽤命令yum-y install dhcp进⾏dhcp服务的安装,安装后⽤命令rpm-qdhcp进⾏确认。dhcp配置⽂件的路径/etc/f,下⾯⼏个是配置dhcp的重要参数以及说明。
range
dynamic-bootp192.168.233.26192.168.233.30,可分配给客户端的ip范围,将192.168.233.0⽹段中的26~30作为ip
池。optionrouters192.168.233.2,指定客户端的⽹关。optiondomain-name-servers223.5.5.5,指定客户端的dns。
default-lease-time21600,默认租约时间,单位为s。max-lease-time43200,最⼤租约时间,单位为s。next-
server192.168.233.50,tftp服务器在内⽹中的位置,即ip地址。filename"pxelinux.0",引导⽂件的名称。客户端从dhcp服务器(pxe 服务器)中获得ip地址192.168.233.26,并得知dhcp服务器的ip地址192.168.233.50和⽹关地址192.168.233.2。
(2)pxe服务器提供tftp服务
⽤命令yum-yinstalltftp-server进⾏tftp服务的安装,安装后⽤命令rpm-qtftp-server进⾏确认。tftp的配置⽂件为/etc/xinetd.d/tftp,其中参数server⼀args=-s/var/lib/tftpboot,其含义为安装所⽤到的引导⽂件和内核⽂件等都是放在此⽬录下的。安装syslinux服务,将usr/share/syslinux/pxelinux.0复制到tftp根⽬录。挂载光盘到空⽬录,将内核⽂件vmlinuz和initrd.img,菜单样式⽂件
vesamenu.c32,窗⼝提⽰信息⽂件boot.msg复制到tftp根⽬录。最后将菜单配置⽂件isolinux.dg复制到tftp根⽬录下的pxelinux.cfg⽬录中,并重命名为default。
(3)pxe服务器提供安装源
1、http⽅式
⽤命令yum-y install httpd进⾏安装,安装后⽤命令rpm-q httpd进⾏确认。默认的http的主配置⽂件的路径是/etc/httpd/conf/httpd. conf , http ⽂件根⽬录的位置是/var/www/html,此位置为挂载光盘镜像的⽬录,客户端也从该⽬录读取镜像⽂件来进⾏安装操作。
接着⽤命令
mount-bind/media//var/www/html/centos7/将/media的光盘映射再映射到空⽬录centos7。客户端通过http服务器的ip地址就能进⼊服务器,并且进⼊的是⽂件根⽬录/var/www/html/,在这个⽬录下就有⼀个放着光盘镜像的⽬录centos7/。
2、ftp⽅式
⽤命令yum-yinstallvsftpd进⾏安装,安装后⽤命令rpm-qvsftpd进⾏确认,⽤命令systemctl restart vsftpd启动vsftp服务,并设置为开机⾃启动systemctl enable vsftpd。vsftp服务默认的根⽬录在/var/ftp/,使⽤命令\
cp-r/media//var/ftp/centos7/将光盘镜像⽂件全部复制到vsftpd服务的根⽬录的centos7/⽬录下。
与http⽅式相同,通过ftp服务器获取光盘镜像的⽹络位置为
ftp://192.168.233.50/centos7/。修改default的指定安装源的参数,append initrd=initrd.img
3、nfs⽅式
⽤命令yum-yinstall nfs-utils进⾏安装,安装好后⽤命令rpm-q nfs-utils进⾏确认。
设置共享⽬录,在系统根⽬录新建/data/nfs/⽤ 于共享⽂件,接下来同FTP ⼀样复制光盘镜像⽂件 进/data/nfs/CentOS7/⽬录。为了让这个共享⽬录⽣ 效,需要在配置⽂件/etc/exports中声明共享⽬录的 位置、可以访问共享⽬录的⽹段以及对应的权限。 写出光盘镜像⽂件的完整路径/data/nfs/CentOS7。歌 式为nfs: [NFS服务器IP地址]:]光盘镜像⽂件的 绝对路径],依照此格式将inst. stage2 = hd: LABEL =CentOS \ x207 \ x20x86_64 修改为 inst. repo = nfs: 192. 168. 233 . 50 : /data/nfs/CentOS7 。
客户端使⽤快照还原回刚配置好硬件的状态。 还原好后启动客户端,等待请求IP、获取引导⽂件、 获 取 菜 单 配 致 ⽂ 件 , ⾦ ⼊ 到 菜单 后 选 择I n s t a l l CentOS 7,选择语⾔后,NSTALLATION SOURCE (安装源)变成了 NFS Server 192.168. 233.50,虽然 在default中写了光盘镜像的绝对路径,但这⾥也不会显⽰出来。接下来进⾏正常的安装流程就可以了。
三、应答⽂件设计
免费永久的linux服务器
Kickstart作为应答⽂件⽆需额外安装服务,真正 做到轻便°且Kickstart的功能⼗分强⼤,在Kickstart ⾥⾯不仅能替代⼿⼯⾃动完成在安装页⾯的设置, 如设置语⾔、门必⽤户密码、磁盘分区,还能利⽤安 装源⾃定义安装所需服务。思⾄能携带脚本,并在 系统安装完成后⾃动运⾏这些脚本,这就给管理⼈ 员减少了很多不必要的重复⼯。
四、客户端初始化设计
系统初始化要做的事主要有设置时间同步、安全策略、配置⽹卡、优化内核。这些都可以写在应 答⽂件⾥⾯,在系统安装完成后⾃动执⾏。也可以 写成⼀个独⽴的初始化脚本,通过应答⽂件下我和 设置运⾏时间。
五、客户端SSH免密设计
⽆ 论是通过S S H登录客户端,还是通过scp传输⽂件给客户端,都需要输⼊密码,这是⼀种保障 客户端安全的措施。管理⼈员通过⼀台管理终端管 理数⼗台客户端,登录管理终端这个过程已经有⾜ 够的安全保障,但批量管理客户端还要反第输⼊数 ⼗次密码,这反倒降低了管理效率,所以需要客户端对管理终端开启SSH免密。
将ssh-keygen⽣成的密钥写进⼀个⽂件, 再将⽂件发送给管理终端。先测试了 scp命令在 Kickstart脚本
执⾏的时候可以正常使⽤,再将⽂件⾥ ⾯的内容写进管理终端的“密钥库”⾥⾯,这样就完成了与 ssh-copy-id 192. 168. 233. 50 相同的功能, 实现了 S5H免密。
本⽂使⽤经典的PXE + Kickstart⽅式实现⽹络⾃动部署服务器,并使⽤HTTP、FTP和NFS作为安装源,丰富了客户端获取光盘镜像的来源,可以根据不同的服务需求和实际情况灵活选取安装源。
另外在应答⽂件Kickstart中添加初始化脚本和SSH免密脚本,让服务器在系统安装完成后,⾃动实现系统初始化,使服务器在短时间内便可投⼊⽣产环境。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。