树莓派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

subnet192.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的主要内容,如果未能解决你的问题,请参考以下文章

树莓派4B基于docker搭建devops平台

树莓派(CentOS7.8)配置国内源

树莓派搭载CentOS7系统初始配置

Centos7 树莓派安装NFS服务

树莓派(centos7)安装mysql

Win7+Centos7双系统安装/树莓派安装Centos7