Linux服務之批量部署篇


批量部署步驟:

1.檢查環境

getenforce               #檢查內核防火牆是否關閉

systemctl status firewalld       #檢查firewalld是否開啟

2.配置yum

mkdir /iso

mount /dev/cdrom /iso

ls /iso/

cd /etc/yum.repos.d/

rm -rf ./*.repo

vim suibian.repo

#######################

[suibian]

name=suibianle iso

baseurl=file:///iso

enabled=1

gpgcheck=0

#######################

yum clean all

yum makecache

pxe工作示意圖:

3.安裝dhcp

#給批量裝機的新機器分配IP

yum -y install dhcp

cd /etc/dhcp/

cat dhcpd.conf

cat /usr/share/doc/dhcp*/dhcpd.conf.example |egrep -v '^#' |egrep -v '^$' > dhcpd.conf

vim dhcpd.conf

#############################

option domain-name "example.org";                       

option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;

max-lease-time 7200;

log-facility local7;                         #以上為系統默認數值,需保留

subnet 192.168.10.0 netmask 255.255.255.0 { #自己的子網和掩碼

  range 192.168.10.180 192.168.10.200;         #自動分配的IP范圍

  option routers 192.168.10.105;               #路由,寫本機IP

  filename "pxelinux.0";                     #安裝引導文件

  next-server 192.168.10.105;                   #去哪找引導文件,本機IP

}

################################

systemctl start dhcpd      #啟動DHCP服務

systemctl enable dhcpd

firewall-cmd --add-port=67/udp        #關閉對應端口的防火牆

firewall-cmd --add-port=67/udp --permanent

4.安裝xinetdTFTP

xinetdextended internet daemon)是新一代的網絡守護進程服務程序,又叫超級Internet服務器,常用來管理多種輕量級Internet服務。

使用xinetd啟動守護進程:

原則上任何系統服務都可以使用xinetd,然而最適合的應該是那些常用的網絡服務,同時,這個服務的請求數目和頻繁程度不會太高。像DNSApache就不適合采用這種方式,而像FTPTelnetSSH等就適合使用xinetd模式,系統默認使用xinetd的服務可以分為如下幾類。

標准Internet服務:telnetftp

信息服務:fingernetstatsystat

郵件服務:imapimapspop2pop3pops

RPC服務:rquotadrstatdrusersdspraydwalld

BSD服務:comsatexecloginntalkshelltalk

內部服務:chargendaytimeechoserversservicestime

安全服務:irc

其他服務:nametftpuucp

具體可以使用xinetd的服務在/etc/services文件中指出。

TFTPTrivial File Transfer Protocol,簡單文件傳輸協議)是TCP/IP協議族中的一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務。端口號為69。協議為UDPTFTP server 是一個多線程TFTP服務器,允許任何數量的客戶端連接同時進行。

yum -y install tftp-server xinetd

vim /etc/xinetd.d/tftp

####################

service tftp

{

        socket_type            = dgram

        protocol           = udp

        wait                 = yes

        user                  = root

        server        = /usr/sbin/in.tftpd

        server_args             = -s /tftpboot        #指定tftp服務的目錄-s指定為可以創建文件

        disable             = no              #啟用tftp服務

        per_source              = 11

        cps                   = 100 2

        flags                 = IPv4

}

########################

mkdir /tftpboot         #創建tftp服務的傳輸目錄

systemctl restart xinetd         #啟動xinetd

systemctl enable xinetd

firewall-cmd --add-port=69/udp

firewall-cmd --add-port=69/udp --permanent

5.安裝httpd

httpd是一個wed服務器,用來創建網站

syslinux是一個功能強大的引導加載程序,而且兼容各種介質。它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。它的安裝很簡單,一旦安裝syslinux好之后,sysLinux啟動盤就可以引導各種基於DOS的工具,以及MS-DOS/Windows或者任何其它操作系統。不僅支持采用BIOS結構的主板,而且從6.0版也開始支持采用EFI結構的新型主板。

yum -y install httpd syslinux

cd /var/www/html/

mkdir iso

mount /dev/cdrom /var/www/html/iso/              #將本地系統光盤掛載到Apache網站上

vim /etc/fstab

#####################

/dev/sr0 /var/www/html/iso  iso9660  defaults 0 0     #永久掛載

######################

cd iso/isolinux/         #切換到網站文件目錄里的Linux系統目錄下

cp vmlinuz /tftpboot/       #將系統內核拷貝到tftp傳輸目錄下

cp initrd.img /tftpboot/    #initrd文件拷貝到tftp傳輸目錄下

mkdir /tftpboot/pxelinux.cfg          #創建配置文件存放目錄,名稱最好固定寫成pxelinux.cfg

cp isolinux.cfg /tftpboot/pxelinux.cfg/default

cp /usr/share/syslinux/pxelinux.0 /tftpboot/

cd /tftpboot/

ls

cd pxelinux.cfg/

vim default        #編輯isolinux.cfg文件

#########################

default ks          #更改默認程序段名

label ks              #配置默認的引導程序

  MENU LABEL Install CentOS 7 x86_64

  KERNEL vmlinuz

  APPEND initrd=initrd.img label ks

  menu label ^Install CentOS 7

  kernel vmlinuz

  append initrd=initrd.img method=http://192.168.10.105/iso ks=http://192.168.10.105/ks.cfg devfs=nomount

###########################

文件簡介:

1isolinux

SYSLINUXISOLINUX制作啟動U盤或光盤 SYSLINUX/ISOLINUX 是專門用來引導可移動介質的輕量級引導程序,因為這樣的介質通常不會固定只針對一種硬件。ISOLINUX其實是一個簡單的Linux系統

2vmlinuz

vmlinuz可引導的、壓縮的內核。“vm”代表 Virtual Memory”。Linux 支持虛擬內存,不像老的操作系統比如DOS640KB內存的限制。Linux能夠使用硬盤空間作為虛擬內存,因此得名“vm”。vmlinuz是可執行的Linux內核,它位於/boot/vmlinuz,它一般是一個軟鏈接。

3initrd.img

Linux初始RAM磁盤(initrd)是在系統引導過程中掛載的一個臨時根文件系統,用來支持兩階段的引導過程。initrd文件中包含了各種可執行程序和驅動程序,它們可以用來掛載實際的根文件系統,然后再將這個 initrd RAM磁盤卸載,並釋放內存。在很多嵌入式Linux系統中,initrd 就是最終的根文件系統。

4isolinux.cfg

ISOLINUX啟動后,默認會去讀出cd光盤根目錄的一個isolinux.cfg 文件,用來指定的內核鏡像位置等。

5pxelinux.0

編輯pxelinux.0的配置文件,以使pxelinux可以正確載入Red Hat Linux安裝程序。對於每一個要被安裝的Red Hat Linux版本,都需要執行一次該操作。 啟動鏡像pxelinux.0文件在執行過程中,會讀取配置文件以確定它應該載入什么Linux內核文件來運行。所有的配置文件都放在啟動服務器的 /tftpboot/pxelinux.cfg/目錄下。pxelinux.0根據一定的規則來搜索合適的配置文件名

6.編輯ks文件

anaconda-ks.cfg這個文件記錄的是安裝系統時的一些基本信息

這個配置文件經修改之后可以用於雷同環境下,使用Kickstart來自動安裝大量同樣的操作系統,可以把這個文件經修改之后放入U盤,命名為ks.cfg

在裝系統時,出現boot界面時就可以輸入:

linux ks=/dev/sdb:/yourpath/ks.cfg  #ks的路徑視你的U盤的為哪個盤而定

也可以放入nfs服務器,通過網絡安裝,出現boot界面時就可以輸入:

linux ks=nfs:servername:/yourpath/ks.cfg

cd

cp anaconda-ks.cfg /var/www/html/ks.cfg         #ks文件放入httpd工作目錄下

cd /var/www/html

vim ks.cfg

################################

#version=DEVEL

# System authorization information     #系統授權信息

auth --enableshadow --passalgo=sha512

# Use CDROM installation media       #使用哪種安裝方式

install

url --url="http://192.168.10.105/iso"

# Use graphical install

graphical

# Run the Setup Agent on first boot

firstboot --enable

ignoredisk --only-use=sda

# Keyboard layouts

keyboard --vckeymap=cn --xlayouts='cn'

# System language

lang zh_CN.UTF-8

# Network information    #網絡配置信息

network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --no-activate

network  --hostname=localhost.localdomain

# Root password      #root密碼

rootpw --iscrypted $6$9oIvP8ebYe9.bidH$zDjlVMJdPGnWttUXbHTrSUu0upERGQV5OBEgcv9vqh36Dnmw/OJ132AkmiUr9dt/ExfPt3mtlsm1Ej.A8.dF60

# System services

services --enabled="chronyd"

# System timezone   #系統時區

timezone Asia/Shanghai --isUtc

# System bootloader configuration      #啟動引導分區

bootloader --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information    #磁盤分區信息

clearpart --all --initlabel --drives=sda

%packages        #安裝是選擇的軟件包

@^minimal

@core

chrony

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda

pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty

pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok

pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty

%end

########################

chmod a+r ks.cfg            #ks文件增加所有人可讀權限

systemctl enable httpd   #啟動Apache服務

systemctl restart dhcpd xinetd httpd

netstat -anp|grep httpd

firewall-cmd --add-port=80/tcp  #添加防火牆端口

firewall-cmd --add-port=80/tcp --permanent


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM