linux自动化部署

系统安装的方式
1 本地关盘
2 本地硬盘
3 URL
4 NFS
5 手动指定安装源
esc进入光盘引导;再esc呼出; boot:linux askmethod
yum安装及启动菜单
iso里关于启动的相关文件
MBR:isolinux/boot.cat
stage2:isolinux/isolinux.bin
配置文件:isolinux/isolinux.cfg(菜单文件)
    每个对应的菜单选项:
        加载内核:isolinux/vmlinux
        向内核传递参数:append initrd=initrd.img ...
装载根文件系统,并启动anaconda
    默认启动GUI
    若是显示指定使用TUI接口:向内核传递参数即可
        tab;增加text
        ESC;boot:定义的lable
         参数

配置yum源
yum可以通过http,ftp,
dhcp协议进行配置。这里实验是dhcp的yum源。
步骤
    1 将关盘路径放在dhcp的/var/www.html/centos/6/下;
    2 在确保yum没有问题之后;
    在装机端esc:
    boot:linux ip=192.18.32.16 netmask=255.255.255.0 repo=http://192.168.32.6/centos/6/

装机的主机配置yum,安装必所须的软件
    1.挂在光盘
    2./etc/yum.repo.d/base.yum
        [bsse]
        baseurl:file:///mut/
        gpgcheck=0
    
    3.yum安装包组 yum grouplist

安装包组的图形界面包
    yum groupinstall desktop
自动化安装及kickstart文件
kickstart文件制作-系统自带
每个系统安装成功之后都会在用户的家目录下生成anaconda-ks.cfg文件,此文件定义了当前系统安装时的设定。

1 命令段:指名安装前各种配置
2 anaconda-ks.cfg 程序包段格式:
%packages
@代表包组
autofs 没有@代表包
vim-enhanced
-package 删除某个包
%end
3 脚本段格式:
%pre;安装前脚本
程序
%end
%post;安装后脚本
程序
%end
设置完成之后(非全英文输入)
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
#文本界面安装
text
#安装完成之后自动重启   
reboot
#自定义url下载路径
url --url=http://192.168.31.6/cengtos/6/ 
#cdrom
lang en_US.UTF-8
keyboard us
network --onboot no --device eth0 --bootproto dhcp --noipv6
firewall --disabled #防火墙关闭
authconfig --enableshadow --passalgo=sha512
selinux --disaled #关闭selinux
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#清空分区表;不然会有等待的界面
zerombr
#启动分区
clearpart --all --initlabel #分区全部初始化
part /boot --fstype=ext4 --size=1024
part / --fstype=ext4 --size=50000
part /data --fstype=ext4 --size=30000

part swap --size=2048

#指定安装仓库
repo --name="CentOS"  --baseurl=http://192.168.32.6/centos/6/ --cost=100

#安装包自定义
%packages
@core
@base
@workstation-policy
autofs
vim-enhanced
%end

#开启之后执行的脚本
%post
useradd wang
echo mage |passwd --stdin wang &> /dev/null
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/* /etc/yum.repo.d/bak
#设置yum仓库
cat > /etc/yum.repo.d/base.repo <<EOF
[base]
name base
baseurl=file:///misc/cd
gpgcheck=0
EOF
#设置key
mkdir /root/.ssh
cat /root/.ssh/authorized_keys <<EOF
#拷贝公钥的内容
EOF
chmod 600 /root/.ssh/authorized_keys
chmod 700 /root/.ssh
%end

检查引导文件语法
安装命令需要的包:
yum install system-config-kickstart
验证引导文件语法:
ksvalidator /var/www/html/ks/ks_centos6.cfg

图形界面制作应答文件:
包名:system-config-kickstart
执行:system-config-kickstart
在7上面yum仓库包必须改成[development],否则打开界面之后不能选择安装的包

安装ssh客户端:
yum install openssl-client

查看yum的repo:
yum repolist
开始安装
1.光盘启动
2.通过应答文件定义的内容传给安装向导:
boot:linux ks=http://192.168.32.6/ks/ks_centos6.cfg 192.168.32.11 netmask=255.255.255.0
制作boot.iso实现自动安装
  1. 相关文件
    光盘isolinux目录文件;拷贝到/data/boot下
    准备好的ks应答文件;将应答文件拷贝到/data/boot/ksdir里面

  2. 修改isolinux.cfg文件制作启动菜单文件,^快捷键

default vesamenu.c32
default vesamenu.c32
#prompt 1   #默认第一个启动
timeout 600  #60秒的选择时间

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.10!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

#自定义启动
label linux
  menu label ^Auto Install an  system
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ksdir/ks_centos6.cfg
label desktop
  menu label Install An ^Desktop system
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/ksdir/ks_centos6_desktop.cfg
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -
  1. 刻录光盘命令(里面的路径是相对于/data/boot/的相对路径)
    我们将上述的文件拷贝到/data/boot下,分别做成两个文件夹,然后把该目录做成iso文件
命令:
    mkisofs -R -J -T -v --no-meul-boot --boot-load-size 4 --boot-info-table -V "CentOS 6.10 x86_64 boot" -b isolinux/isolinux.bin -c isolinux/boot.cat -o /root/boot.iso /data/boot/
模拟u盘;将光盘的文件内容拷贝到磁盘
  1. iso转换工具
isopybrid boot.iso
  1. 完成之后可以查看文件是否有完整的引导扇区
hexdump -C boot.iso -n 512
  1. 刻录命令
dd if=boot.iso of/dev/sdb
  1. 载有iso数据的磁盘放进虚拟机

  2. 设置bios启动:F2
    注意:由于是硬盘模拟u盘,可能存在路径不匹配,安装失败

DHCP
网络配置
    静态制定
    动态获取:bootp强制将ip与mac做一一对应;dhcp是增强的bootp,可以实现动态分配。
DHCP:
    动态主机配置协议
    句以往协议,UDP协议

续租:
    50%
    87.5%
DHCP中继代理
dhcp是基于广播
    通过中继代理解决不在同一个网段的情况。
工作原理:
    中继代理,是搜集网络中的require广播,然后单播传给dhcp server和shcp client ,现在的路由器端口支持这个功能

DHCP八种报文.
DHCP DISCOVER
DHCP OFFER
DHCP REQUEST
DHCP ACK

DHCP NAK
DHCP DECLINE
DHCP INFORM
DHCP RELEASE
DHCP服务
服务包及文件:
安装包名:dhcp,dnsmasq(dns,dhcp)
rpm -ql dhcp
1./usr/sbin/dhcpd;二进制程序所在文件夹
2./etc/dhcp/dhcp.conf,一般为空,所以直接启动服务不能,需要查看/usr/share/doc/dhcp*/dhcp.conf.example 进行修改替换
3./usr/sbin/dhcrelay 中继程序
4.  .server 是服务程序
5./var/lib/dhcpd/数据库文件,存放ip的地址的数据库

端口的分配:
dhcp server:UDP的67端口
dhcp client:UDP的68端口
/var/lib/dhclient;客户端程序所在文件夹
/etc/resolv.conf 查看dns 

客户端命令:
dhclient;直接触发网卡会在在次获取一个ip地址
    -d 跟踪网络连接的详细信息

主配置文件(/etc/dhcp/dhcp.conf;此时已经经过替换):
1.domain-name "mage.org";设置默认网段
2.domain-name-servers 114.114.114.114,1.1.1.1 指定dns的ip,在文件原默认制定的是域名存在一定的问题
3.lease-time 默认租期
4.subnet 192.152.187.0 netmask 255.255.255.0 {
    range 192.168.32.10 192.168.32.200;指定网段范围
    option routers 192.168.32.123;指定网关
    option domain-name-server 8.8.8.8 dns也可以放在subnet里面,但是dns指定时跟它来之那个网段有一定的关系
}
5.host fantasia { mac地址和ip可以实现固定的绑定
} 

6.filename "pxelinux.0"; 指名引导的文件名称,相当于grub
 next-server 192.168.100.100 ;引导文件的服务器地址;此两项是指定tftp服务器的ip和文件所在的位置。

7.检查语法
6版本  service dhcpd configtest
7版本 systenctl     

arping 192.168.32.10 可以测试网络ip冲突的机子。

PXE工作原理
PXE(与启动执行环境),基于C/S的网络模式,可以引导和安装window,linux等多种操作系统     

工作原理
1. udp发送广播,filename和next-service
2. 访问tftp服务器
3. 通过PXElinux.0启动
4. 去tftp在下载内核和伪根文件
5. tftp服务器下载应答文件,url通过yum仓库进行安装0.
tftp服务
    服务器包:tftp-server
    客户端包:tftp
    服务名:tftp-server/socket
    两个都可以
    主程序:in.tftpd 
    依赖xinted,systemd
    启用:systemctl start tftp.socket/servive
    工作目录:/var/lib/tftpboot
    客户端包:tftp
    端口号:UDP的69 
下载文件命令
    tftp ip
    get filename
自动安装实验

7版本

在虚拟机关闭虚拟网卡自动的dhcp
1.关闭selinux ,iptables
    iptables  -vnL
    gentenforce
2.启动相关的三个服务
    yum install dhcp tftp-server httpd
3.准备仓库
    cd /var/www/html
    mkdir centos/7 -pv
    mount /dev/sr0 centos/7
4.应答文件
    修改url,root密码
    mkdir ksdir
    将自制的应答文件ks_centos7.cfg导入到当前目录:ksdir
    修改ks_centos7中的:
        url --url="http://192.168.32.7/centos/7"
    修改rootpw密码:自己生成或者将anacode里面的密码拷贝
5.修改dhcp配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    修改:
    domain-name-servers 114.114.114.114;
    subnet 192.168.32.0 netmask 255.255.255.0 {
        range 192.168.32.10 192.168.32.200;
        next-server 192.168.32.7;
        filename "pxelinux.0";
        
    }
    systemctl restart dhcpd重启服务

6.tftp配置
cd /var/lib/tftpboot/
systemctl enable httpd tftp dhcpd设置服务为开机启动。
    注意将挂载命令写道tftp文件

yum install syslinux安装syslinux 引导启动工具,包含pxelinux.0包
rpm -ql
cp /usr/share/syslinux/pxelinux.0 .;拷贝到当前目录
cp /usr/share/syslinux/menu.c32 .;复制蓝色背景启动菜单到当前目录
cp /misc/cd/isolinux/{initrd.img,vmlinuz} .;虚拟磁盘文件和内核文件到当前目录
mkdir pxelinux.cfg
cp /misc/cd/isolinux/isolinux.cfg pxelinux.cfg/default
修改default文件
最终tftp目录下文件:

tftp
    initrd.img
    menu.c32
    pxelinux.0
    pxelinux.cfg
        default
    vmlinuz
    
7. 再次确认服务是否全部启动
8. 开启网卡引导启动PXE安装

实现PXE自动化安装cnetos系统

实验:centos7实现PXE自动化安装centos7

1 yum install httpd dhcp tftp-server syslinux 
systemctl enable httpd tftp dhcpd

2 准备yum 和ks文件
mkdir /var/www/html/centos/7 -pv
mount /dev/sr0  /var/www/html/centos/7

mkdir /var/www/html/ksdir 

cp ks7.cfg /var/www/html/ksdir/

vim /var/www/html/ksdir/ks7.cfg
url --url="http://192.168.32.6/centos/7"
rootpw  xxx

systemctl restart httpd

3 配置dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
vim /etc/dhcp/dhcpd.conf
subnet 192.168.32.0 netmask 255.255.255.0 {
        range 192.168.32.10 192.168.32.200;
        next-server 192.168.32.7;
        filename "pxelinux.0";
}

systemctl restart dhcpd


4 准备启动相关文件
cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
cp /misc/cd/isolinux/{initrd.img,vmlinuz}  /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
vim /var/lib/tftpboot/pxelinux.cfg/default

default menu.c32
timeout 60
menu title  PXE CentOS Install    
label linux
  menu label Auto Install ^Mini CentOS 7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.32.7/ksdir/ks7.cfg
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff

systemctl start tftp

5测试,网卡启动


实验:centos6上实现PXE自动化安装centos6

1 syslinux-nonlinux 
chkconfig tftp on
chkconfig httpd on
chkconfig dhcpd on
service xinetd start

准备yum仓库
cd /var/www/html
mkdir centos/6 ksdir pv
mount /dev/sr0 centos6
2 yum ks
创建应答文件并拷贝到当前目录(ksdir)重命名叫ks6.cfg

3 dhcp服务
主要的配置内容
subnet 192.168.32.0 netmask 255.255.255.0 {
    range 192.168.32.10 192.168.32.100;
    net-server 192.168.32.6;
    filename "pxelinux.0"
}
service dhcpd restart
4 启动相关文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cp /misc/cd/isolinux/{boot.msg initrd.img splash.jpg  vesamenu.c32 vmlinuz} /var/lib/tftpboot/

修改
vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Auto Install an Mini system
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.32.6/ksdir/ks6.cfg
label vesa
  menu label ^Manual Install an  system
  kernel vmlinuz
  append initrd=initrd.img repo=http://192.168.32.6/centos/6
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue repo=http://192.168.32.6/centos/6
label local
  menu default
  menu label Boot from ^local drive
  localboot 0xffff
  
[root@centos6 tftpboot]#tree 
.
├── boot.msg
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│?? └── default
├── splash.jpg
├── vesamenu.c32
└── vmlinuz
cobbler
cobbler web服务
pam验证
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值