Linux 第56,57天 anacoda,cobller

Linux 第56,57天 anacoda,cobller

时间: 20180918

时间: 20180919


目录

kickstart文件

DHCP服务

制作pxe自动安装linux

自动化安装系统cobbler

总结


kickstart文件

一个Linux安装时可以实现自动化的配置文件,当为安装系统的内核传递某参数让其读取此配置

文件时可以使手动的应答安装如选择语言,格式化硬盘,安装什么软件,键盘布局,时区,网络

等,全都不需要再次选择,将所有的选择放置kickstart文件中,即会自动的将上述配置自动化

完成。即可实现自动化安装,而不需要手式人为选择,当然此配置文件有一定的语法格式


常规选项

rootpw (required) 指定root密码

--iscrypted 使密码加密放在后方

part or partition (required) 格式化分区

part|partition mntpoint --name=name --device=device --rule=rule

--size=#M 指定分区大小

--grow 指定设置为硬盘分区所有容量

--maxsize= 如果和--grow连用,即成长容量,最大不可超过此值

--noformat 不格式化分区

--onpart= 指定分区

--ondisk= 指定硬盘

--asprimary 设置为主分区(激活分区)

--fstype= 指定文件系统类型

lang (required) 设置语言

en_US.UTF-8 设置语言为英文

keyboard (required)设置键盘布局

--vckeymap=us    设置VConsole键盘布局

--xlayouts='us' 设置x键盘布局X个人感觉是图形终端的意思

bootloader (required) 设置bootloader如何安装,安装位置

--append=" crashkernel=auto"  指定额外的内核参数

--location=mbr 指定boot记录写在哪里

--boot-drive=sda 指定哪个设备 

timezone (required) 设置时区

Asia/Shanghai  时区为上海

--isUtc     

--nontp 不使用network time pro

clearpart (optional) 清除原来盘上的分区

--drives=/dev/sda 指定清除分区的设备

--none 不清除原分区

--initlabel 

The --initlabel option has been deprecated. To initialize disks 

with invalid partition tables and clear their contents, use the

zerombr command.

firewall (optional) 启用或禁用firewall

ignoredisk (optional) 忽略硬盘检查,如果使用SAN设置时需要忽略

--only-use=sda 表示只使用sda硬盘做为安装盘

network (optional) 配置网络

--bootproto=dhcp|static

--device=ifname

--onboot=on|off

--activate

--no-activate

--hostname

repo (optional) 配置额外的yum repositories

--name=repoID

--baseurl=repo-link

selinux (optional) 设置是否启用selinux

--enforcing

--permissive

--disable

text (optional) 使用文本模式安装系统,即不显示图形方式(占用资源少)

user (optional) 配置添加某用户

-name=USERNAME

--password=加密的密码

--iscrypted 加此选项表示密码已经加密

volgroup (optional) LVM管理

volgroup name partition[PVname] [options]

--pesize=4MB 默认

logvol montpoint --fstype --size=# --name=lvname --vgname=vgName

zerombr (optional) 初始化硬盘首部

firstboot (optional) 是否第一次启动就执行安装步骤

--enable

--disable

install (optional) 默认的安装方式 cdrom harddrive nfs liveimg url

url --url=/path/ISOpath 如使用网络安装一般为此选项常用

cdrom 使用光盘安装则使用此选项

auth or authconfig (optional) 设置系统认证方式

--enableshadow 使用shadow password来做系统的认证

--passalgo=sha512  设置密码hashing 算法

services (optional) 设置要启用或禁用哪些服务

--disabled="chronyd"

reboot (optional) 安装完成后自动重启系统

skipx (optional) If present, X is not configured on the installed system.



硬盘分区设置lvm

ignoredisk --only-use=sda

zerombr

clearpart --drives=sda --all

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda

part /boot --fstype="xfs" --ondisk=sda --size=1024

part pv.01 --fstype="lvmpv" --ondisk=sda --size 1 --grow

volgroup --pesize=4096 skyVG pv.01

logvol swap --fstype="swap" --size=2048 --name=swap --vgname=skyVG

logvol / --fstype="xfs" --size=50000 --name=root --vgname=skyVG

logvol /data --fstype="xfs" --size=1 --grow --name=data --vgname=skyVG


注意:可选不代表不指定哦,有的可选选项也很重要

%packages 指定要安装的包@为包组 

@^minimal

@core

kexec-tools

%end


%pre 安装前脚本

%end

%post 安装后执行脚本

%end


DHCP服务

DHCP的8种报文

DHCP DISCOVER 

DHCP OFFER

DHCP REQUEST

DHCP ASK

DHCP NAK

DHCP DECLINE

DHCP RELEASE

DHCPINFORM




制作pxe自动安装linux

原理

客户端设置基于网络pxe启动,服务器端开启dhcp,tftpd,http。 dhcp为客户端分发地址,并为

其指定一个tftp服务器地址并指引给客户端向tftp服务器请求文件名为pxelinux.0的文件,此文

件会让客户请求读取tftp服务器上pxelinux.cfg目录下的default配置文件,根据default配置

文件内容客户端则会下载tftp服务器上的vmlinuz以及initrd文件等并在本地执行,此时内核文

件便会被本地加载至内存,然后就可以读取ks文件,即事先建立好的http服务相应的路径下便会

有yum仓库文件和自动应答文件kickstart,并下载相应的包来进行安装配置,由此便可实现基

于网络的linux系统安装完成


配置步骤

1.配置http建立yum仓库和ks文件

yum -y install httpd

ks文件格式已经在上述讲过这里直接生成一个ks文件名为cent7.ks

cp cent7.ks /var/www/html/ks/

将光盘镜像下的仓库放置于/var/www/html/os/7

systemctl start httpd

2.开启tftp服务以及,相应目录的配置文件/var/lib/tftpboot

yum install -y tftp-server syslinux

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

挂载ceotos原版光盘copy其isolinux目录下的vmlinuz和initrd.img 我挂载在/mnt下

cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/

mkdir /var/lib/tftpboot/pxelinux.cfg

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

timeout 600

label linux

  menu label ^Install CentOS 7  

  kernel vmlinuz

  append initrd=initrd.img inst.ks=http://192.168.48.72/ks/cent7.ks

label local

  menu label Boot from ^local drive

  menu default

  localboot 0xffff


systemctl start tftp


3.配置dhcp服务

yum install dhcp

vim /etc/dhcp/dhcpd.conf

subnet 192.168.48.0 netmask 255.255.255.0 {

range 192.168.48.200 192.168.48.230;

filename "pxelinux.0";

next-server 192.168.48.72;

}

systemctl start dhcpd


自动化安装系统cobbler

cobbler是一个方便的自动化系统安装工具,它可以帮且你配置tftp目录,以及安装系统使用

uefi,gpt分区等,简化了用户的配置,把大多数的配置都集成到cobbler里,而不需要用户再

去配置各服务的配置文件。

1. 安装

yum install -y cobbler dhcp

2. 配置

启动服务

systemctl start httpd cobblerd tftp

检查cobbler配置 使用cobbler check 会提示错误将其逐角解决即可,如完成后

重启cobbler服务  并执cobbler sync同步

常见需要修改的有

vim /etc/cobbler/settings

server: 127.0.0.1  修改cobbler 服务器IP

next_server: 127.0.0.1 修改为tftp服务的IP

default_password_crypted: 配置安装的系统root密码

manage_dhcp: 1 设置为1,表示使用cobbler来管理dhcp服务


vim /etc/cobbler/dhcp.template 将其改为正确的IP

subnet 192.168.48.0 netmask 255.255.255.0 {

option routers             192.168.48.2;

option domain-name-servers 192.168.48.2;

option subnet-mask         255.255.255.0;

range dynamic-bootp        192.168.48.200 192.168.48.254;


下载network bootloader

cobbler get-loaders


一切完成后重启服务systemctl restart cobbler

执行同步 cobbler sync


导入第一个要安装的系统centOS7

挂载光盘至/mnt目录

执行命令将其导入至cobbler数据库中

cobbler import --arch=x86_64 --path=/mnt --name=CentOS7_3


准备kickstart文件为该distro(我前边已经设置好了ks文件名为cent6.ks)

cp cent6.ks /var/lib/cobbler/kickstarts/

cobbler profile add --name=Cent6_Mini_KS 

--kickstart=/var/lib/cobbler/kickstarts/cent6.5.ks --distro=Centos6.5

上边两行为一条命令含义就是将刚刚的镜像添加kickstart文件


此时配置完成


3. 测试

验证各选项是否配置正常

ss -tunl 检查67 69 80 端口是否开启

cobbler check 查看cobbler是否有未解决的问题

cobbler sync 同步配置于向文件夹中 

tail -f /var/log/cobbler/cobbler.log   跟踪查看cobbler日志


此时启动要安装系统的客户机即可发现此日志会有数据生成,也可以查看错误


总结

1. kickstart文件里pv.01是不可变动的,否则会提示错误,因为pv的名字就是分区名

2. ks文件如果使用cobbler --url=$tree但是如果使用pxe则需要将其修改为指定的repo

3. cent7和cent6的分区格式是不同的,在kickstart指定时需要注意

4. 如果不慎将/var/www/cobbler目录里的文件删除需要重新安装一下cobbler,里边有几个

python脚本


猜你喜欢

转载自blog.51cto.com/winthcloud/2283295