Linux自动化批量部署安装系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自动化批量部署安装系统相关的知识,希望对你有一定的参考价值。

运维自动化之系统安装

系统启动流程(详情见之前文档):

bootloader-->kernel(initramfs)-->rootfs-->/sbin/init


anaconda:系统安装工具(安装操作系统向导)

gui:图形窗口

tui:curses安装;蓝色背景的文本方式窗口安装

MBR:isolinux/boot.cat

第二阶段:isolinux.bin

配置文件:isolinux/isolinux.cfg(光盘启动的安装菜单,文件当中的^代表了快捷键对应的按键)

timeout的倒计时是十分之一秒

menu default代表进入菜单后的默认选择

nomodeset:不修改模式设置,就会加载显卡的最基本驱动

rescue:救援模式

在光盘启动的菜单中按ESC后输入linux askMethod选择使用安装系统的方式

   text字符界面安装


初级:

 半自动安装:

系统安装完成后,root家目录会生成一个anaconda.cfg应答文件,当中拥有安装系统时候的一系列步骤

1 system-config-kickstart:用来制作无人值守的应答文件      #生成应答文件

2 制作完成后会保存为一个ks.cfg文件,最终需要安装什么包在文件中编辑即可,可参考anaconda.cfg文件;    #修改应答文件

3 ksvalidator ks.cfg                                      #检查文件语法是否有误

4 将ks.cfg文件存放在ftp的共享目录中   

5 使用光盘启动,在菜单键入tap键,在initrd.img后面输入ks=ftp://172.18.0.6/pub/ks.cfg ip=172.18.0.123 netmask=255.255.0.0 #读取ks.cfg文件并配置ip地址


Centos7:

7上面的system-config-kickstart打开后Package位置可能没有包,要在yum源中将第一个仓库改为[development];


搭建PXE批量安装系统步骤


1 yum -y install dhcpd tftp-server httpd syslinux                #安装后续所需的服务

2 DHCP服务:

静态指定

动态获取:bootp协议:MAC与IP一一静态对应

dhcp:动态分配地址

dhcp工作过程

UDP协议的67(服务端)68(客户端)端口


跨网段分配IP地址:

dhcp中继:dhcrelay(收到客户端的广播discover单播给跨路由的DHCP服务器)

DHCP Server:

yum -y install dhcpd           #安装dhcp服务

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #将范例文件拷贝并覆盖到指定位置

vim /etc/dhcp/dhcpd.conf #编辑配置文件

option domain-name "kaikai.com";            #客户端获取的域名

option domain-name-servers 114.114.114.114,8.8.8.8;  #客户端获取到的dns

option routers 192.168.27.1; #客户端获取到的网关


default-lease-time 86400; #指定默认租约时间

max-lease-time 864000; #最大租约时间

log-facility local7; #日志

subnet 192.168.27.0 netmask 255.255.255.0 {     #指定网段与掩码

        range 192.168.27.50 192.168.27.200;         #指定IP地址池

        option routers  192.168.27.1; #设置网关

        option domain-name-servers 114.144.144.144; #设置dns

        filename "pxelinux.0"; #启动文件名称

        next-server 192.168.27.144; #存放后续启动文件IP地址

}

/var/lib/dhcpd/dhcpd.leases     #客户端获取ip后的日志记录(服务端)

/var/lib/dhclient/dhclient.leases #客户端获取dhcp服务端的详细信息(客户端)

systemctl enable dhcpd                          #设置dhcpd服务器开机自动启动

systemctl start dhcpd #启动dhcpd服务


3 TFTP Server:轻量级的文件传输服务器(udp 69端口)

工作目录/var/lib/tftpboot;

1 yum -y install tftp-server    #安装tftp服务

2 systemctl enable tftpd    #设置tftpd服务开机启动

3 systemctl start tftp      #启动tftpd服务


4 mkdir /var/www/html/centos/{6,7} -pv   #在httpd服务的工作目录下创建两个文件夹用来存放分别挂载不同系统的光盘

  mount /dev/sr0  /var/www/html/centos/7 #将第一块centos7磁盘挂载到后方目录

  mount /dev/sr1  /var/www/html/centos/6 #将第二块centos6的系统挂载到后方目录


5 yum -y install system-config-kickstart #安装图形化的回应文件

  system-config-kickstart  #分别在centos6与centos7的图形界面键入此命令生成ks.cfg文件

  案例采用的是最小化安装,配置界面是图形化的,没有难度,在此不再举例,按照实际情况配置,最后保存在root的家目录下名为ks.cfg文件

  在centos 7的/var/www/html/下创建ksdir文件夹用来存放两个系统的ks.cfg文件

  scp ~root/ks.cfg [email protected]:/var/www/html/ksdir  将ceonts 6上面生成的文件scp到服务端也就是centos 7上面

  在图形化中选项的最后一项安装后脚本可以写如下内容:

  rm -rf /etc/yum.repos.d/*

cat > /etc/yum.repos.d/base.repo <<EOF

[base]

name=xxxxxx

baseurl=http://172.18.0.1/centos/7

gpgcheck=0

enabled=1

EOF

cat > /root/.ssh/authorized_keys <<EOF

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKxH6ZjOlmJadhQvZvc+ho1rdq2hNejdeY+VFBQqZxaFQ6W7fwvwCTQVeoFYVOmelkhByTJAQwg720j

Fvg5zPF8+UP7ms1yJXd4d220AAAiqJm1/Ql5wJiHIOTp+8biPDPkmQUqc4751ZumCB6hEtv9LblEA6jgLU9dDTxPrYFkKj8yd/2a3V38vtzj0tRIQZOco

xExvY2FC4v0P+jxcSrrXkv2u5AUb8ZxBYiIBZBmXNfbOKuNFoQOpr4w2JOmiOxpyhtLDYMcJxFoFjZe4Jb3KMPES6AK/3Rw0Kg8MyPZphy/nDandZyoxz

q+dpG0utY8Ttta6XFXEwmgEiZf517 [email protected]

EOF

chmod 664 /root/.ssh/authorized_keys

useradd fang

echo fang | --stdin fang &>/dev/null

systemctl set-default multi-user.target:安装完成后自动重启


6 cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot     #将此文件拷贝到tftp的工作目录

  menu.c32:菜单风格

  cp /var/www/html/centos/7/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot #将启动文件和内核拷到tftp的工作目录

  mkdir /var/lib/tftpboot/pxelinux.cfg                     #创建pxelinux.cfg目录,用于存放isolinux.cfg

  cp /var/www/html/centos/7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #将文件拷贝并改名为default

 注意:如果装6和7还要单独复制6的内核一系列文件


7 vim  /var/lib/tftpboot/pxelinux.cfg/default 

default menu.c32

timeout 600


menu title PXE INSTALL CentOS 


label desktop

  menu label ^Install  Desktop CentOS 7

  kernel 7/vmlinuz

  append initrd=7/initrd.img ks=http://192.168.27.7/ksdir/ks7-pxe.cfg


label mini

  menu label Install ^Destkop CentOS 6

  kernel 6/vmlinuz

  append initrd=6/initrd.img  ks=http://192.168.27.7/ksdir/ks6-desktop.cfg 


label local

  menu default

  menu label Boot from ^local drive

  localboot 0xffff

menu end

  

 


以上是关于Linux自动化批量部署安装系统的主要内容,如果未能解决你的问题,请参考以下文章

亲测可用Cobbler自动批量部署Linux系统

Linux 通过配置Cobbler服务器全自动批量安装部署

Linux系统中Kickstart+HTTP+DHCP+TFTP全自动批量安装部署

Linux服务之cobbler批量部署篇

Cobbler自动批量装机linux

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)