树莓派centos平台自动部署centos7
Posted 宏缘帮帮忙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派centos平台自动部署centos7相关的知识,希望对你有一定的参考价值。
最近发现树莓派在IDC机房实际生产环境中有一个非常好的应用,批量安装服务器的操作系统,方便携带,方便取电,还不影响自己的笔记本修改安装前、后服务器的各项配置。
树莓派以centos7平台用xinetd
tftp httpd dhcp syslinux配置自动部署centos7。也可以用VSFTP替代httpd实现部署环境的实现,这里使用的是httpd服务。
安装并配置启动tftp服务
TFTP服务用于将安装服务器master中的安装文件自动传送到待安装系统的目标服务器。安装如下:
yum
-y install syslinux xinetd tftp
-server wget
mkdir/
var/lib/tftpboot/pxelinux
.cfg
cp/usr/share/syslinux/pxelinux
.0 /
var/lib/tftpboot
/
cp/usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /……/syslinux/syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32/var/lib/tftpboot/
检查是否所有软件包都安装成功,如果是树莓派的centos环境,syslinux可能会安装失败。
syslinux在x86架构的centos7系统环境中,可以通过yum命令直接从网上下载安装,但在树莓派arm架构的centos系统环境中,暂时(本次安装时)还没有syslinux包可用,所以在树莓派arm架构的centos系统环境中需要到syslinux或者其镜像网站手动下载syslinux压缩包。下载后直接解压,提取所需文件即可。
#tar -zxvf syslinux-6.03.tar.gz
syslinux版本不同,需要的启动文件也不相同。在syslinux-4.05版本中,调用的是menu.c32,这个版本中还没有ldlinux.c32这个文件;在syslinux-6.03版本中,调用的引导文件是ldlinux.c32。所以需要注意拷贝到/var/lib/tftpboot/
路径下的文件,如果不确定,把menu.c32和ldlinux一起拷贝到tftpboot路径下。
修改TFTP配置文件,按照原配置文件格式,修改disable的参数为no,保存退出并启动。
#vi etc/xinetd.d/tftp
disable = no
#systemctl start xinetd.service
#systemctl enable xinetd.service
#systemctl status xinetd.service
使用netstat命令查看69端口,确认tftp服务是否开启,出现下面则开启成功。
#netstat -nlp|grep 69
udp0 0 0.0.0.0:690.0.0.0:* 3092/
修改Selinux策略
Selinux保持开启状态系统有可能会阻止tftp客户端的下载,所以将它关闭。关闭selinux有两种方法:
使用命令临时关闭selinux服务的命令如下:
# setenforce 0
# getenforce
Permissive
用getenforce查看状态为“Permissive”便可以。
修改防火墙策略
防火墙也会阻止客户端访问需要的端口和服务,需要开相应的端口或关闭防火墙。
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
安装并配置启动DHCP服务
yuminstall -y dhcp
vi /etc/dhcp/dhcpd.conf
#specify domain name
option domain-name
"master";
#specify name
server's hostname or IP address
#
option domain-name-servers master;
option domain-name-servers
192.168.184.11;
#add follows near line
8 (specify PXE
server's hostname or IP for"next-server")
filename
"pxelinux.0";
next-
server
192.168.184.11;
#
default lease
time
default-lease-
time600;
#max lease
time
max-lease-
time7200;
#this DHCP
serverto bedeclared valid
authoritative;
#specify network address
andsubnet mask
subnet
192.168.184.0 netmask
255.255.255.0
{
# specify the range of lease IP address
range dynamic-bootp
192.168.184.20192.168.184.120;
# specify broadcast address
optionbroadcast-address
192.168.184.255;
# specify
default gateway
Option routers
192.168.184.1;
}
systemctl restart dhcpd
.service
systemctl enable dhcpd
.service
systemctl status dhcpd
.service
配置系统镜像文件
下载或导入centos的ISO镜像到/home/iso/
下
,并配置系统镜像。在执行mount镜像时,需要填写实际镜像的文件名,不同版本的镜像名称不同。
mkdir-p /var/pxe/centos7
mkdir/var/lib/tftpboot/centos7
mount-t iso9660 -o loop /home/iso/
CentOS-7-x86_64-DVD-1708.iso /var/pxe/centos7
cp/var/pxe/centos7/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7/
cp/var/pxe/centos7/images/pxeboot/initrd.img /var/lib/tftpboot/centos7/
配置部署方式
通过配置/var/lib/tftpboot/pxelinux.cfg/default文件内参数实现自动部署。
#vi /var/lib/tftpboot/pxelinux.cfg/default
defaultauto
prompt0
labelauto
kernelcentos7/vmlinuz
appendks=http://192.168.184.11/ks/ks.cfg initrd=centos7/initrd.imgmethod=http://192.168.184.11/centos7 devfs=nomount
配置http服务
在/var/lib/tftpboot/pxelinux.cfg/default文件中的ks.cfg文件是通过http方式传递给待安装操作系统的服务器的,所以需要安装、配置http服务。
yum-y install httpd
rm-f /etc/httpd/conf.d/welcome.conf
vi
/etc/httpd/conf/httpd.conf
#line 86: change to admin's email address
ServerAdmin root@master
#line 95: change to your server's name
ServerName master:80
#line 151: change
AllowOverride All
#line 164: add file name that it can access only with directory's name
DirectoryIndex index.html index.cgi index.php
#add follows to the end
#server's response header
ServerTokens Prod
#keepalive is ON
KeepAlive On
保存推出后,设置httpd服务开机自动启动
systemctlrestart httpd
systemctlenable httpd
systemctlstatus httpd
编辑/etc/httpd/conf.d/pxeboot.conf文件,
Alias/centos7 /var/pxe/centos7
<Directory/var/pxe/centos7>
Options Indexes FollowSymLinks
# IP address you allow to access
Require ip 127.0.0.1 192.168.184.0/24
</Directory>
自动部署配置文件:ks
根据模板修改配置文件:
先生成未来要安装服务器的root用户密码。执行下面命令,输入要设置到待安装服务器的root密码,经过加密计算后输出一串字符,在设置ks.cfg时配置root密码使用。
#python -c 'import crypt,getpass; print(crypt.crypt(getpass.getpass(),crypt.mksalt(crypt.METHOD_SHA512)))'
然后创建并编辑/var/www/html/ks/ks.cfg文件,配置自动安装过程中需要自动设置的相关配置和参数。
mkdir/var/www/html/ks
vi /var/www/html/ks/ks.cfg
#platform=x86,AMD64, or Intel EM64T
#version=DEVEL
#Install OS instead of upgrade
install
#Keyboard layouts
keyboard 'us'
#Root password
rootpw --iscrypted $1$2bhXRlVg$ppu5cKvICstbniAMN80Mt.
#Use network installation
#url--url="ftp://192.168.184.14/centos7"
#System language
lang en_US
#Firewall configuration
firewall --disabled
#System authorization information
auth --useshadow --passalgo=sha512
#Use text mode install
text
#Use graphical install
#graphical
firstboot --disable
#SELinux configuration
selinux --disabled
#Network information
network --bootproto=dhcp--device=eth0
#Reboot after installation
reboot
#System timezone
timezone Asia/Shanghai
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype="ext4" --size=1024 --label=swap --ondisk=sda
part swap --fstype="swap" --size=4096 --label=swap --ondisk=sda
part / --fstype="ext4" --grow --size=1 --label=swap --ondisk=sda
%packages
@^minimal
@core
chrony
kexec-tools
%end
chmod644 /var/www/html/ks/ks.cfg
systemctl restart httpd.service
知此配置完成,客户端网络与安装服务器连通加电,开始安装操作系统。至此自动部署centos系统的环境搭建完成,把其接入到需要安装centos系统的网络环境中,只要服务器支持网卡启动,就可以自动安装操作系统。注意控制此机器接入环境,只能是需要安装操作系统的服务器与之连通,
以上是关于树莓派centos平台自动部署centos7的主要内容,如果未能解决你的问题,请参考以下文章