批量部署linux系统,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-servers114.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 <

[base]

name=xxxxxx

baseurl=http://172.18.0.1/centos/7

gpgcheck=0

enabled=1

EOF

cat > /root/.ssh/authorized_keys <

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值