因为项目需要(实际是没有人手。。。),需要搞开发的我自己来搭建服务器集群环境,并完成软件服务的自动化部署。本文及后续文章,记录运维部署自动化实践中的每一步工作,便于以后追踪参考。
本文先完成第一步工作:远程自动化安装Linux系统
技术方案选择:PXE+dhcp+tftp+kickstart 安装ubuntu1604 server
宿主机:ubuntu1604 desktop
目标服务器:(1)Dell Poweredge R540
(2)VMware虚拟机
安装镜像: ubuntu-16045-server-amd64iso
安装isc-dhcp-server
sudo apt-get install isc-dhcp-server
修改/etc/default/isc-dhcp-server
修改/etc/dhcp/dhcpdconf,添加如下配置:
运行dhcp服务
sudo service isc-dhcp-server start
安装tftpd-hpa
sudo apt-get install tftpd-hpa
修改/etc/default/tftpd-hpa
创建tftp目录
sudo mkdir /var/lib/tftpboot
sudo chmod 777 /var/lib/tftpboot
运行tftp
sudo service tftp-hpa start
安装apache2
sudo apt-get install apache2
apache 默认的根目录是/var/> 通过浏览器访问>
当年Novell下的无盘DOS工作站很是流行 后来又流行过Win 无盘工作站 只是由于问题多多 后来微软自己停止了对无盘Windows的支持 随着Linux的日益流行 使用Linux的人越来越多 其实Linux 对远程引导的支持非常好 Linnx内核自身又支持网络文件系统 因此非常适合做无盘工作站 本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法 这个网络是一个小的局域网 有 台服务器和 台 Linux 无盘工作站 彼此之间用双绞线通过HUB连接 服务器的IP地址定为 名字是server 台无盘工作站的地址由服务器动态分配 地址范围从 到 名字分别是c c c c 服务器和无盘工作站使用的都是NE 兼容网卡 无盘工作站使用的网卡上都安 装了BOOTROM 启动芯片 服务器 *** 作系统安装的是 RedHat Linux 安装时选用定制安装 并安装了全部软件 Linux的远程引导有两种方式 一是利用Bootp协议 有一个专门的项目EtherBoot 提供支持() 这种方式引导 Linux 的速度是最快的 但这种方式有一个最大的问题 就是在市场上找不到支持这种远程引导协议的 BOOTROM 启动 芯片(除非自己刻录) 因为市场上几乎所有的 BOOTROM 启动芯片都是遵循NOVELL远程引导 协议的 于是有人提出另外一种方式 就是服务器端用 NetWare 服务器 客户端就可以用现 有的BOOTROM 启动芯片了 说到这里大家一定胡涂了 作Linux无盘工作站岂不是还一台 NetWare 服务器?不是的 因为神通广大的 Linux 可以模拟 NetWare 服务器 就象Samba 可以把 Linux 模拟成 NT 一样 mars_nwe 可以把 Linux 模拟成 NetWare 不仅能提供 NetWare 文件和打印服务 还能提供远程引导支持(知道Linux的厉害了吧) 本文讲述的 Linux 无盘工作站就是用这种方式作远程引导的 准备启动盘 由于在 Linux 下没有制作符合 NetWare 远程引导协议启动映象的工具 所以只能用早期的Win 提供的工具(遗憾) 找一台装有 Win 的机器启动后按 F 进入纯DOS方式 格式化一张启动盘 format a: /s 然后将RedHat Linux安装光盘上 dosutils 目录下的 loadlin exe复制到启动盘 在启动盘上作一个 autoexec bat 文件 代码只有一行 loadlin exe bzImage root=/dev/nfsroot从 Windows 安装光盘的 Win 目录下的cab文件中解出 rplboot sys 文件放在启动 盘上 命令如下 extract exe /a /l a:\ win cab rplboot sys一张用来做启动映象的启动盘就作好了 保存好启动盘 以后作启动映象时会用到它 编译内核 用于无盘工作站的Linux内核与用于从本地硬盘引导的Linux内核是不同的 无盘工作站的内核必须支持NFS作为根文件系统 即远程根文件系统 所以必须编译无盘工作站专用的内核 笔者使用的内核代码版本是 将内核源代码解压到/usr/src下 cd /usr/src/linux 进入内核子目录 执行命令make menuconfig 进行内核编译配置 下列项目必须按要求设置 Processor type and features 该项目下面的选项必须根据无盘工作站的CPU类型设置 而不是根据服务器的CPU类型设置Loadable module support 该项目下面的所有选项都禁止 即不支持模块功能Plug and Play support设置为有效Block devices该项目下面的Loopback device supportNeork block device support都设置为有效Neorking option该项目下面的kernel level autoconfigurationDHCP support (NEW)都设置为有效Neork device support 该项目下面的选项必须根据无盘工作站使用的网卡进行设置 本例中使用的是NE 兼容网卡 选项Ethernet ( or Mbit)Other ISA cardsNE /NE support (NEW)都设置为有效Filesystems 该项目下面的Neork File Systems子项目下面的NFS filesystem supportRoot file system on NFS (NEW)都设置为有效以上设置完成后 退出内核编译设置程序 会出现一个对话框 Do you wish to save your new kernel configuration然后执行make dep && make bzImage进行内核编译 这个过程得花一点时间 特别是如果计算机的速度不快的话 花的时间会更长一些 编译内核如果没有错误 会得到内核映象文件/usr/src/linux/arch/i /boot/bzImage 将启动软盘插入计算机 执行下面的命令 mount t vfat /dev/fd /mnt/floopy cp /usr/src/linux/arch/i /boot/bzImage /mnt/floppy umount /dev/fd 好了 启动盘上的文件都准备齐全了 等会儿用它到Win 环境下制作启动映象 服务器设置 服务器端需要运行nfsd dhcpd mars_new等几个服务进程 这些软件在ReHat Linux 发行套件里都有 如果在安装 Linux 的时候选择全部安装 这些软件都会随着安装 *** 作 系统而装好了 下面对这些软件进行设置 注意 下面的 *** 作要以 root 身份进行 NFS 守护进程nfsd首先要建立几个供无盘工作站使用的目录 并通过nfsd 导出 命令如下:mkdir /tftpboot然后编辑文件 /etc/hosts 加入下面的内容 server server domain c c domain c c domain c c domain c c domain第一台工作站的工作目录设置方法如下:mkdir /tftpboot/ cd /tftpboot/ c p a /bin cp a /dev mknod dev/nd b chmod dev/nd cp a /etc cp a /home cp a /lib rm rf lib/modulescp a /root cp a / in cp a /var mkdir procmkdir usrmkdir tmpchmod tmptouch fastbootchattr +i fastbootcd etc编辑文件 sysconfig/neork scripts/ifcfg eth 保留其中的DEVICE=eth ONBOOT=yes其余的行全部删除 然后增加一行BOOTPROTO=dhcp编辑文件 rc d/rc sysinit 在文件最后加上两行mount t nfs server:/usr /usr/usr/X R /bin/xfs编辑文件 fstab保留其中的none/procprocdefaults 其余的行全部删除 然后增加一行server:/tftpboot/ /nfs defaults 其它工作站的工作目录设置方法就简单多了cd /tftpbootcp a cp a cp a 编辑文件 /etc/exports 加入以下内容/usr (ro no_root_squash)/tftpboot/ (rw no_root_squash)/tftpboot/ (rw no_root_squash)/tftpboot/ (rw no_root_squash)/tftpboot/ (rw no_root_squash) 动态主机配置协议服务器 dpchd检查一下文件/etc/dhcpd leases是否存在 若不存在就用命令touch /etc/dhcpd leases 创建一个 然后编辑文件 /etc/nf 加入以下内容subnet netmask {range ;} NetWare 模拟器 marsw_nwe编辑文件 /etc/nf 找到下面的行# x eth 将该行开头的 # 去掉 再找到 x 在该行开头加上 # 制作启动映象进入Win 将Win (早期的版本 可以用服务器安装方式安装)安装光盘的admin\nettools\netsetup\rplimage exe 复制到硬盘 将启动软盘插入软驱 然后在纯MSDOS方式下执行 rplimage a: 就会得到启动映象 net$dos sys 再将启动映象 net$dos sys 复制到启动盘上(如果启动盘空间不够 可以先删除启动盘上的一些文件以留出空间) 启动 Linux 服务器 以 root 用户登录 将启动软盘插入软驱 执行下面的命令 mount t vfat /dev/fd /mnt/floppycp /mnt/floppy/net\$dos sys /var/mars_nwe\sys\login umount /dev/fd 然后执行 setup 移动光棒至 System services 选项回车 出现 Services 设置画面 将dhcpd nfs mars nwe 都设为有效 退出 setup 程序 执行以下的命令以启动上述服务进程:/etc/rc d/rc d/mars nwe restart/etc/rc d/rc d/dhcpd restart/etc/rc d/rc d/nfs restart下一次再启动服务器时 上述服务进程会自动 lishixinzhi/Article/program/Oracle/201311/17626
第一部分:TFTP开发环境搭建流程
1
第一步: 安装tftp所需的软件(黑色加粗字体为linux命令,下同)
搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,其中:
tftp-hpa : 是客户端软件; root# apt-get install tftp-hpa
tftpd-hpa : 是服务程序; root# apt-get install tftpd-hpa
xinetd : 是新一代进程守护程序。 root# apt-get install xinetd
2
第二步: 配置xinetdconf配置文件
进入/etc目录,首先看目录中有没有一个xinetdconf文件,如果没有则新建一个,有的话查看其内容:
root# cat xinetdconf
看是否与下面的一致,内容如下所示:
若不一致则运行如下命令,修改为相同即可。
root# gedit xinetdconf
3
第三步: 配置tftpd-hpa配置文件
修改tftpd-hpa配置文件的内容:
root# gedit /etc/default/tftpd-hpa
将内容修改成:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0000:69"
TFTP_OPTIONS="-l -c -s"
修改成功后,如下图所示,保存退出。
注解:TFTP_DIRECTORY="/tftpboot"表示tftp服务器的工作目录,用户可根据自己的实际情况进行更改。
指定了tftp服务的工作目录后,我们需要在相应的路径下建立该tftp工作目录,命令如下:
root# mkdir –p /tftpboot
修改工作目录的权限为777,777是最松的权限,这样不仅可以允许别的主机或者目标机下载,同时允许其上传文件。命令为:
root# chmod 777 /tftpboot
4
第四步:配置tftp配置文件
进入/etc下面的xinetdd文件夹,查看是否有一个tftp文件,如果没有的话,就新建一个并输入以下内容,如果有的话就查看内容是否与下面的一致,不一致则修改,内容如下:
root# gedit tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/intftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags =IPv4
}
修改之后,如图所示:
其中server_args一行是配置服务器的文件存放的位置,就是进行tftp传输的时候,都是从该文件夹中搜索文件的。然后保存文件,并退出编辑。
5
第五步:重新启动TFTP
重启tftpd-hpa,提示如下图:
root# service tftpd-hpa restart
6
第六步:重新加载xinetd
重新加载xinetd进程,提示如下图:
root# /etc/initd/xinetd reload
7
第七步:重新启动xinetd
重启xinetd服务,提示如下图:
root# /etc/initd/xinetd restart
每次修改完配置文件后,都需要重新启动一下服务。
至此,嵌入式Linux系统下搭建TFTP开发环境大功告成,下面介绍如何测试TFTP
END
第二部分:测试TFTP服务
1
第一步:新建测试文件
首先在tftp的工作目录"/tftpboot"中新建一个文件test,在其中输入任意内容,例如内容如下图:
2
第二步:进入测试目录
然后进入任意一个不同于/tftpboot的目录(例如/opt目录下),然后在终端中输入如下命令,进入tftp命令符下,如下图:
root# tftp localhost
3
第三步:获取测试文件
输入如下命令,再按回车,获取存放在tftp工作目录/tftpboot中的"test"文件。如果没有任何提示,就说明传输成功了,如下图所示:
root# get test
4
第四步:退出TFTP测试
输入 q 退出tftp命令行,如下图所示:
5
修改test文件后,可以在tftp命令中输入 如下命令,把修改过的test文件上传到服务器文件夹中。
root# put test
其效果图,在此不再给出,读者可以自行测试。
END
第三部分:脚本程序自动搭建TFTP开发环境
鉴于TFTP服务的安装过程十分繁复,且容易出错,下面给出脚本代码,自动安装该服务。
新建一个空文件,将下面代码复制,保存之后,修改文件权限,使之具有执行权限后,就可以自动搭建嵌入式TFTP开发环境了。
以下为脚本代码:
#!/bin/bash
####################################################
# 搭建TFTP服务所需要安装的软件有tftp-hpa,tftpd-hpa以及xinetd,#
# 其中: #
# tftp-hpa : 是客户端软件; #
# tftpd-hpa : 是服务程序; #
# xinetd : 是新一代进程守护程序。 #
####################################################
function creat_xinetd_conf
{
echo "# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetdd/
defaults
{
# Please note that you need a log_type line to be able to use
log_on_success
# and log_on_failure The default is the following :
# log_type = SYSLOG daemon info
}
includedir /etc/xinetdd" > /tmp/xinetdconf
}
function config_xinetd_conf
{
creat_xinetd_conf
filename=/etc/xinetdconf
example=/tmp/xinetdconf
test -f $filename #返回值为0,代表文件存在 返回值为1,代表文件不存在
if [ "$" -eq 0 ];then
echo "xinetdconf文件存在"
diff -E $example $filename
case $ in
1) #文件内容有误
rm -rf $filename
mv -f $example $filename
echo "xinetdconf文件内容修改成功";;
0) #文件内容正确
rm -rf $example
echo "xinetdconf文件内容正确";;
)
rm -rf $example
echo "未知错误,程序终止";;
esac
else
echo "xinetdconf文件不存在,正在创建该文件"
mv -f $example $filename
echo "xinetdconf文件创建成功"
fi
}
#=============================================#
function modify_tftpd_hpa
{
echo "# /etc/default/tftpd-hpa
TFTP_USERNAME=\"tftp\"
TFTP_DIRECTORY=\"/tftpboot\"
TFTP_ADDRESS=\"0000:69\"
TFTP_OPTIONS=\"-l -c -s\"" > /tmp/tftpd-hpa
rm -rf /etc/default/tftpd-hpa
mv -f /tmp/tftpd-hpa /etc/default/tftpd-hpa
echo "tftpd_hpa 文件内容修改成功"
mkdir -p /tftpboot
chmod 777 /tftpboot
}
#=============================================#
function modify_tftp
{
echo "service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/intftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags =IPv4
}" > /tmp/tftp
rm -rf /etc/xinetdd/tftp
mv -f /tmp/tftp /etc/xinetdd/tftp
echo "tftp 文件内容修改成功"
}
#=============================================#
function test_tftp
{
echo "This is a test file" > /tftpboot/TEST
cd /tmp
echo "请在终端命令行中依次键入\"get TEST\"以及\"quit\""
tftp localhost
cat /tmp/TEST # 返回值为0,表示成功查看指定的文件 返回值为1,表示不能正常查看指定的文件
if [ $ -eq 0 ]; then
echo "tftp 测试成功,可以正常使用"
rm -rf /tftpboot/TEST /tmp/TEST
else
echo "tftp 测试失败,请检查tftp配置"
rm -rf /tftpboot/TEST /tmp/TEST
fi
}
#=============================================#
function step_1 #安装TFTP相关服务
{
apt-get update #安装软件之前,先升级一下数据库,获取软件包的最新相关信息
apt-get install tftp-hpa #安装TFTP服务的客户端软甲
apt-get install tftpd-hpa #安装TFTP服务的服务器端软件
apt-get install xinetd #安装新一代进程守护程序
}
function step_2 #配置TFTP相关服务
{
config_xinetd_conf #配置/etc/xinetdconf文件
modify_tftpd_hpa #修改/etc/default/tftp-hpa文件
modify_tftp #安装TFTP服务的服务器端软件
}function step_3 #重启TFTP相关服务
{service tftpd-hpa restart #重新启动tftpd-hpa
/etc/initd/xinetd reload #重新加载xinetd服务程序
/etc/initd/xinetd restart #重新启动xinetd服务程序
}function step_4 #测试TFTP相关服务
{
test_tftp #测试tftp服务
}
echo "选项1 安装TFTP相关服务"
echo "选项2 配置TFTP相关服务"
echo "选项3 重启TFTP相关服务"
echo "选项4 测试TFTP相关服务"
echo "键入quit,退出TFTP安装"
echo "请键入数值,执行您所需要的 *** 作: "
read -r Step
while [ $Step != quit ]
do
while [ $Step -lt 1 -o $Step -gt 4 ]
do
echo "对不起,您输入的选项有误,请输入数字1—4之间的数值!"
read -r Step
done
case "$Step" in
1)
read -p "安装过程中出现的选项,请直接确定,不必更改,按任意键继续安装"
step_1;;
2)
step_2;;
3)
step_3;;
4)
step_4;;
)
echo "出现致命错误,请检查脚本程序!";;
esac
echo " *** 作已完成!"
echo "============================="
echo " "
echo " "
echo " "
echo " "
echo "选项1 安装TFTP相关服务"
echo "选项2 配置TFTP相关服务"
echo "选项3 重启TFTP相关服务"
echo "选项4 测试TFTP相关服务"
echo "键入quit,退出TFTP安装"
echo "请键入数值,执行您所需要的 *** 作: "
read -r Step
echo " "
echo " "
done
exit
启动首选项也叫启动第一选项相应还有启动第二选项,启动第三选项
这是BIOS设置启动程序从哪里开始的一个设置
是从硬盘启动,还是从光驱启动,还是从软驱启动,还是从USB启动,顺序是什么
比如:
启动第一选项设置为光驱启动,第二项设置为软驱启动,第三项设置为硬盘启动
当你启动电脑后,它就会逐个检查,如果光驱有光驱并是 *** 作系统光盘,那么它就会在这里启动,进入安装了如果没光盘,它就会检查第二项,有没有软盘,如果没有,它就会检查第三项,然后从硬盘启动了
一般人,都设置成第一选项光驱启动,第三项硬盘启动如发生故障,直接用光盘启动就可以了
以上就是关于bxp 3.0,这是个什么软件全部的内容,包括:bxp 3.0,这是个什么软件、什么是TFTP,怎么用、运维部署自动化实践(一)利用PXE远程自动化安装Ubuntu16.04 server等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)