运维自动化发展历程及技术应用
安装程序CentOS系统安装 系统启动流程: bootloader-->kernel(initramfs)-->rootfs->/sbin/init
anaconda: 系统安装程序gui:图形窗口tui: 基于图形库curses的文本窗口安装程序启动过程MBR:isolinux/boot.cat
stage2: isolinux/isolinux.bin配置文件:isolinux/isolinux.cfg每个对应的菜单选项:
加载内核:isolinuz/vmlinuz向内核传递参数:append initrd=initrd.img ...装载根文件系统,并启动anaconda
默认启动GUI接口若是显式指定使用TUI接口:向内核传递text参数即可(1)按tab键,在后面增加text(2)按ESC键:boot: linux text
anaconda工作过程Anaconda安装系统分成三个阶段:安装前配置阶段安装过程使用的语言键盘类型安装目标存储设备Basic Storage:本地磁盘
特殊设备:iSCSI设定主机名配置网络接口时区管理员密码设定分区方式及MBR的安装位置创建一个普通用户选定要安装的程序包安装阶段
在目标磁盘创建分区,执行格式化操作等将选定的程序包安装至目标位置安装bootloader和initramfs图形模式首次启动iptablesselinux
core dump系统安装启动安装过程一般应位于引导设备;后续的anaconda及其安装用到的程序包等可来自下面几种方式:本地光盘本地硬盘NFSURL:
ftp server: yum repository http server: yum repostory如果想手动指定安装源:boot: linux
askmethodanaconda的配置方式:(1) 交互式配置方式(2) 通过读取事先给定的配置文件自动完成配置按特定语法给出的配置选项kickstart文件
安装boot引导选项:boot:text: 文本安装方式askmethod: 手动指定使用的安装方法与网络相关的引导选项:ip=IPADDR
netmask=MASKgateway=GWdns=DNS_SERVER_IPifname=NAME:MAC_ADDR与远程访问功能相关的引导选项:vnc
vncpassword='PASSWORD'指明kickstart文件的位置: ks=DVD drive:
ks=cdrom:/PATH/TO/KICKSTART_FILEHard drive:
ks=hd:device:/directory/KICKSTART_FILEHTTP server:
ks=http://host:port/path/to/KICKSTART_FILEFTP server:
ks=ftp://host:port/path/to/KICKSTART_FILEHTTPS server:
ks=https://host:port/path/to/KICKSTART_FILENFS
server:ks=nfs:host:/path/to/KICKSTART_FILE启动紧急救援模式:rescue官方文档:《Installation
Guide》kickstart文件的格式centos7 yum安装system-config-kickstart时本地yum源名字改为development
命令段:指明各种安装前配置,如键盘类型等程序包段:指明要安装的程序包组或程序包,不安装的程序包等%packages@group_namepackage
-package%end脚本段:%pre: 安装前脚本运行环境:运行于安装介质上的微型Linux环境%post: 安装后脚本运行环境:安装完成的系统
命令段中的命令:必备命令authconfig: 认证方式配置authconfig --useshadow --passalgo=sha512
bootloader:bootloader的安装位置及相关配置bootloader --location=mbr --driveorder=sda –
append="crashkernel=auto rhgb quiet"keyboard: 设定键盘类型lang: 语言类型part: 创建分区rootpw:
指明root的密码timezone: 时区可选命令install OR upgradetext: 文本安装界面networkfirewallselinux
haltpoweroffrebootrepouser:安装完成后为系统创建新用户url: 指明安装源key –skip 跳过安装号码,适用于rhel版本
kickstart文件创建创建kickstart文件的方式直接手动编辑依据某模板修改可使用创建工具:system-config-kickstart
依据某模板修改并生成新配置/root/anaconda-ks.cfg检查ks文件的语法错误:ksvalidatorksvalidator
/PATH/TO/KICKSTART_FILE系统光盘中isolinux目录列表
isolinux.bin:光盘引导程序,在mkisofs的选项中需要明确给出文件路径,这个文件属于SYSLINUX项目
isolinux.cfg:isolinux.bin的配置文件,当光盘启动后(即运行isolinux.bin),会自动去找isolinux.cfg文件
vesamenu.c32:是光盘启动后的安装图形界面,也属于SYSLINUX项目,menu.c32版本是纯文本的菜单Memtest:内存检测,这是一个独立的程序
splash.jgp:光盘启动界面的背景图vmlinuz是内核映像initrd.img是ramfs (先cpio,再gzip压缩)制作引导光盘和U盘
创建引导光盘:mkdir –pv /app/myisocp -r /misc/cd/isolinux/ /app/myiso/vim
/app/myiso/isolinux/isolinux.cfginitrd=initrd.img text ks=cdrom:/myks.cfgcp
/root/myks.cfg /app/myiso/mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4
--boot-info-table -V "CentOS 6.9 x86_64 boot" -b isolinux/isolinux.bin -c
isolinux/boot.cat -o /root/boot.iso/app/myiso/ 注意:以上相对路径都是相对于光盘的根,和工作目录无关创建U盘启动盘
dd if=/dev/sr0 of=/dev/sdbmkisofs选项-o 指定映像文件的名称。-b 指定在制作可开机光盘时所需的开机映像文件。-c
制作可开机光盘时,会将开机映像文件中的 no-eltorito-catalog 全部内容作成一个文件。-no-emul-boot 非模拟模式启动。
-boot-load-size 4 设置载入部分的数量-boot-info-table 在启动的图像中现实信息-R 或 -rock 使用 Rock
RidgeExtensions-J 或 -joliet 使用 Joliet 格式的目录与文件名称-v 或 -verbose 执行时显示详细的信息-T 或
-translation-table 建立文件名的转换表,适用于不支持 Rock RidgeExtensions 的系统上DHCP服务网络配置静态指定
动态获取: bootp:boot protocol MAC与IP一一静态对应 dhcp:增强的bootp,动态DHCP: (Dynamic Host
Configuration Protocol)动态主机配置协议局域网协议,UDP协议主要用途:用于内部网络和网络服务供应商自动分配IP地址给用户
用于内部网络管理员作为对所有电脑作集中管理的手段使用场景自动化安装系统解决IPV4资源不足问题DHCP共有八种报文DHCP DISCOVER:客户端到服务器
DHCP OFFER :服务器到客户端DHCP REQUEST:客户端到服务器DHCP ACK :服务器到客户端DHCP
NAK:服务器到客户端,通知用户无法分配合适的IP地址DHCP DECLINE :客户端到服务器,指示地址已被使用DHCP
RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间DHCP INFORM:客户端到服务器,
客户端如果需要从DHCP服务器端获取更为详细的配置信息,则送Inform报文向服务器进行请求,极少用到续租50%
:租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求DHCP服务简介同网段多DHCP服务
DHCP服务必须基于本地 先到先得的原则相关协议 Arp rarp跨网段 RFC 1542 Compliant Routers国标跨网段dhcp交换机
dhcrelay: 中继代理DHCP实现Linux DHCP协议的实现程序:dhcp, dnsmasq(dhcp,dns)Dhcp Server
/usr/sbin/dhcpd /etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6/usr/sbin/dhcrelay
/etc/rc.d/init.d/dhcrelaydhcp server:67/udpdhcp client: 68/udpdhcpv6
client:546/udpDhcp clientdhclient自动获取的IP信息: /var/lib/dhclientDHCP配置文件dhcpd.conf:
帮助参考:man 5 dhcpd.conf全局配置subnet {...}host {}地址分配记录/var/lib/dhcpd/dhcpd.leases
DHCP配置文件其它配置选项:filename: 指明引导文件名称next-server:提供引导文件的服务器IP地址示例:filename
"pxelinux.0";next-server 192.168.100.100;检查语法service dhcpd configtestPXE介绍PXE:
Preboot Excution Environment 预启动执行环境Intel公司研发
基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统
PXE可以引导和安装Windows,linux等多种操作系统PXE工作原理Client向PXE
Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的位置信息一并传送给Client
Client向PXE
Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,正式向Client发送pxelinux.0
Client执行接收到的pxelinux.0文件Client向TFTP Server发送针对本机的配置信息文件(在TFTP
服务的pxelinux.cfg目录下),TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。
Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client
Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统Client启动Linux内核
Client下载安装源文件,读取自动化安装脚本PXE自动化安装CentOS 7安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP安装软件包
httpd tftp-server dhcp syslinux system-config-kickstart配置文件共享服务:systemctl
enable httpdsystemctl start httpdmkdir /var/www/html/centos/7mount /dev/sr0
/var/www/html/centos/7准备kickstart文件/var/www/html/ks/centos7.cfg 注意:权限配置tftp服务
systemctl enable tftp.socketsystemctl start tftp.socket 配置DHCP服务vim
/etc/dhcp/dhcpd.confoption domain-name "example.com";default-lease-time 600;
max-lease-time 7200;subnet 192.168.100.0 netmask 255.255.255.0 {range
192.168.100.1 192.168.100.200;filename "pxelinux.0";next-server 192.168.100.100;
}systemctl enable dhcpdsystemctl start dhcpd准备相关文件mkdir
/var/lib/tftpboot/pxelinux.cfg/cp /usr/share/syslinux/{pxelinux.0,menu.c32}
/var/lib/tftpboot/cp /misc/cd/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /misc/cd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default文件列表如下:
/var/lib/tftpboot/├── initrd.img├── menu.c32├── pxelinux.0├── pxelinux.cfg│ └──
default└── vmlinuz准备启动菜单Vim /var/lib/tftpboot/pxelinux.cfg/defaultdefault
menu.c32timeout 600menu title PXE INSTALL MENUlabel auto menu label Auto
Install CentOS 7 kernel vmlinuz append initrd=initrd.img
ks=http://192.168.100.100/ks/centos7.cfglabel manual menu label Manual Install
CentOS 7 kernel vmlinuz append initrd=initrd.img
inst.repo=http://192.168.100.100/centos/7label local menu default menu label
^Boot from local drive localboot 0xfffPXE自动化安装CentOS 6
安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP1 安装相应软件包Yum install dhcp httpd tftp-server
syslinuxchkconfig tftp onchkconfig xinetd onchkconfig httpd onchkconfig dhcpd on
service httpd startservice xneted start2 准备Yum 源和相关目录mkdir -pv
/var/www/html/centos/{6,ks}mount /dev/sr0 /var/www/html/centos/63 准备kickstart文件
/var/www/html/centos/ks/centos6.cfg注意权限:chmod 644
/var/www/html/centos/ks/centos6.cfg4 准备相关的启动文件mkdir
/var/lib/tftpboot/pxelinux.cfg/cp /usr/share/syslinux/pxelinux.0
/var/lib/tftpboot/cd /misc/cd/images/pxeboot/cp vmlinuz initrd.img
/var/lib/tftpbootCd /misc/cd/isolinux/cp boot.msg vesamenu.c32 splash.jpg
/var/lib/tftpboot5 准备启动菜单文件cp /misc/cd/isolinux/isolinux.cfg
/var/lib/tftpboot/pxelinux.cfg/defaultvim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32 指定菜单风格#prompt 1timeout 600display boot.msgmenu background
splash.jpgmenu title Welcome to wang CentOS 6menu color border 0 #ffffffff
#00000000menu color sel 7 #ffffffff #ff000000menu color title 0 #ffffffff
#00000000menu color tabmsg 0 #ffffffff #00000000menu color unsel 0 #ffffffff
#00000000menu color hotsel 0 #ff000000 #ffffffffmenu color hotkey 7 #ffffffff
#ff000000menu color scrollbar 0 #ffffffff #00000000label auto menu label
^Automatic Install Centos6 kernel vmlinuz append initrd=initrd.img
ks=http://192.168.100.100/centos/ks/centos6.cfglabel manual menu label ^Manual
Install Centos kernel vmlinuz append initrd=initrd.img
inst.repo=http://192.168.100.100/centos/6label local menu default menu label
Boot from ^local drive localboot 0xffff目录结构如下:tree /var/lib/tftpboot/
/var/lib/tftpboot/├── boot.msg├── initrd.img├── pxelinux.0├── pxelinux.cfg│ └──
default├── splash.jpg├── vesamenu.c32└── vmlinuz6 配置dhcp服务cp
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.confvim
/etc/dhcp/dhcpd.confoption domain-name "magedu.com";option domain-name-servers
192.168.100.1;subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.1
192.168.100.200; option routers 192.168.100.1; filename "pxelinux.0";
next-server 192.168.100.100;}service dhcpd startcobbler 介绍Cobbler:
快速网络安装linux操作系统的服务,支持众多的Linux发行版:Red
Hat、Fedora、CentOS、Debian、Ubuntu和SuSE,也可以支持网络安装windowsPXE的二次封装,将多种安装参数封装到一个菜单
Python编写提供了CLI和Web的管理形式cobbler 工作流程client裸机配置了从网络启动后,开机后会广播包请求DHCP服务器(cobbler
server)发送其分配好的一个IPDHCP服务器(cobbler server)收到请求后发送responese,包括其ip地址
client裸机拿到ip后再向cobbler server发送请求OS引导文件的请求cobbler server告诉裸机OS引导文件的名字和TFTP
server的ip和portclient裸机通过上面告知的TFTP server地址通信,下载引导文件
client裸机执行执行该引导文件,确定加载信息,选择要安装的os,期间会再向cobbler server请求kickstart文件和os image
cobbler server发送请求的kickstart和os iamgeclient裸机加载kickstart文件client裸机接收os
image,安装该os imagecobbler 介绍安装包cobbler 基于EPEL源cobbler 服务集成PXEDHCPrsyncHttpDNS
KickstartIPMI 电源管理检查cobbler环境cobbler checkcobbler 相关术语发行版:表示一个操作系统版本,它承载了内核和
initrd 的信息,以及内核参数等其他数据配置文件:包含一个发行版、一个 kickstart 文件以及可能的存储库,还包含更多特定的内核参数等其他数据系统:
表示要配置的主机,它包含一个配置文件或一个镜像,还包含 IP 和 MAC 地址、电源管理(地址、凭据、类型)以及更为专业的数据等信息存储库:保存一个 yum
或 rsync 存储库的镜像信息镜像:可替换一个包含不属于此类别的文件的发行版对象(例如,无法分为内核和 initrd 的对象)cobbler 各种配置目录说明
安装:yum install cobbler dhcp配置文件目录 /etc/cobbler/etc/cobbler/settings : cobbler
主配置文件/etc/cobbler/iso/: iso模板配置文件/etc/cobbler/pxe: pxe模板文件/etc/cobbler/power:
电源配置文件/etc/cobbler/user.conf: web服务授权配置文件/etc/cobbler/users.digest:
web访问的用户名密码配置文件/etc/cobbler/dhcp.template : dhcp服务器的的配置末班
/etc/cobbler/dnsmasq.template : dns服务器的配置模板/etc/cobbler/tftpd.template :
tftp服务的配置模板/etc/cobbler/modules.conf : 模块的配置文件cobbler 目录介绍数据目录
/var/lib/cobbler/config/: 用于存放distros,system,profiles 等信息配置文件
/var/lib/cobbler/triggers/: 用于存放用户定义的cobbler命令/var/lib/cobbler/kickstart/:
默认存放kickstart文件/var/lib/cobbler/loaders/: 存放各种引导程序镜像目录
/var/www/cobbler/ks_mirror/: 导入的发行版系统的所有数据/var/www/cobbler/images/ :
导入发行版的kernel和initrd镜像用于远程网络启动/var/www/cobbler/repo_mirror/: yum 仓库存储目录日志目录
/var/log/cobbler/installing: 客户端安装日志/var/log/cobbler/cobbler.log : cobbler日志
cobbler 命令介绍cobbler check 核对当前设置是否有问题cobbler list 列出所有的cobbler元素cobbler report
列出元素的详细信息cobbler sync 同步配置到数据目录,更改配置最好都要执行下cobbler reposync 同步yum仓库cobbler
distro 查看导入的发行版系统信息cobbler system 查看添加的系统信息cobbler profile 查看配置信息cobbler 重要的参数
/etc/cobbler/settings中重要的参数设置default_password_crypted:
"$1$gEc7ilpP$pg5iSOj/mlxTxEslhRvyp/"manage_dhcp:1manage_tftpd:1pxe_just_once:1
next_server:< tftp服务器的 IP 地址>server:<cobbler服务器的 IP 地址>cobbler 报错解决执行Cobbler
check报错解决方式修改/etc/cobbler/settings文件中的server参数的值为提供cobbler服务的主机相应的IP地址或主机名
修改/etc/cobbler/settings文件中的next_server参数的值为提供PXE服务的主机相应的IP地址
如果当前节点可以访问互联网,执行“cobbler
get-loaders”命令即可;否则,需要安装syslinux程序包,而后复制/usr/share/syslinux/{pxelinux.0,memu.c32}等文件至/var/lib/cobbler/loaders/目录中
执行“chkconfig rsync on”命令即可执行“openssl passwd -1
生成密码,并用其替换/etc/cobbler/settings文件中default_password_crypted参数的值cobbler 相关管理
下载启动菜单:联网:cobbler get-loaders不联网:cp /usr/share/syslinux/{pxelinux.0,menu.c32}
/var/lib/tftpboot管理distrocobbler import --name=centos-6.9-x86_64
--path=/media/cdrom --arch=x86_64管理profilecobbler profile add
--name=centos-6.9-x86_64-basic--distro=centos-6.9-x86_64 --kickstart=
/var/lib/cobbler/kickstarts/centos-6.9-x86_64.cfgcobbler 命令查看profilescobbler
profile list查看引导文件cat /var/lib/tftpboot/pxelinux.cfg/default同步cobbler配置cobbler
sync多系统引导方案cobbler import --name=CentOS-7-x86_64 --path=/media/cdromcobbler
distro listcobbler profile listcobbler synccobbler的web管理实现cobbler-web
提供cobbler的基于web管理界面,epel源 yum install cobbler-web认证方式
认证方法配置文件:/etc/cobbler/modules.conf支持多种认证方法:authn_configfileauthn_pam
使用authn_configfile模块认证cobbler_web用户vim /etc/cobbler/modules.conf[authentication]
module=authn_configfile创建其认证文件/etc/cobbler/users.digest,并添加所需的用户htdigest -c
/etc/cobbler/users.digest Cobbler admin
注意:添加第一个用户时,使用“-c”选项,后续添加其他用户时不要再使用,cobbler_web的realm只能为Cobbler
使用authn_pam模块认证cobbler_web用户vim /etc/cobbler/modules.conf [authentication]
module = authn_pam创建cobbler用户:useradd cobblervim /etc/cobbler/users.conf[admins]
admin = "cobbler“Web访问cobbler重启cobblerd服务通过https://cobblerserver/cobbler_web访问

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信