运维自动化之系统部署

运维自动化发展历程及技术应用

什么是自动化的安装部署操作系统?

在工作中我们可能经常部署很多台主机,手工的一台一台的安装只适合主机非常少的情况,但大的互联网公司在一些特殊的日子要部署大量的主机,以应对要到来的特大流量访问。这时候我们就不能,一台一台的安装主机了,一是效率太慢,二是太累,三是费时间。基于这个情况我们可以自动化的一起部署很多的主机,而不用我们人工一台一台的去安装部署,节约了大量的时间。

centos 6的启动流程

1.POST开机加电自检

2.MBR 读取硬盘mbr引导的前446字节,属于grub的stage1第一阶段

3.进入grub的stage1.5阶段,加载/boot分区所在的文件系统驱动

4.进入grub的stage2阶段,关键的文件已经在/boot/grub目录里面了,关键的文件 有/boot/grub.grub.conf文件,文件里面kernel /vmlinuz root=/dev/sda2,定义了内核文件所在的位置

5.加载vmlinuz内核,完成以后找/根目录,想要加载根文件系统,需要识别根所在的文件系统驱动,配合/boot/目录里面两个重要的文件,一个是vmlinuz内核文件和initramfs驱动文件完成加载根文件系统

6.加载完成根文件系统以后,启动根下面的第一个进程/sbin/init,这个进程要读取/etc/inittab配置文件,决定后续加载的一些脚本的启动顺序,也定义了运行模式

7.运行第一个初始化脚本/etc/rc.d/rc.sysinit这个是真正的os初始化脚本,任何根据/etc/inittab配置文件默认模式运行相应的/etc/rc.d/rc*.d 里面的脚本,当然里面的脚本都是软链接,真正的脚本在/etc/rc.d/init.d里面,在/etc/rc.d/rc*.d目录下是以K和S开头的文件,执行相应模式关闭或开启的服务

8.无论哪种模式运行都要运行/etc/rc.local

9.最后执行/bin/login程序,等待用户的登录

实现半自动话安装过程:

在自动化安装系统之前我们可以先实现半自动化的安装,例如将系统放到U盘或者光盘中,这样我们插到主机上就可以实现自动化的安装,当然只适合小范围的安装

系统的安装程序叫anaconda

在安装完成操作系统以后会在root的目录里面自动出现一个文件anaconda-ks.cfg,这个文件就是anaconda安装向导在安装过程中生成的一个配置文件。

安装部署系统的时候在启动界面的一些基础设置

当我们安装一个新的操作系统的时候由于硬盘的MBR是空的系统任务硬盘不能引导所有自动切换到光盘引导

  • 第一项为正常启动
  • 第二项是加载最基本的显卡驱动
  • 第三项是救援模式
  • 第四项是直接在硬盘启动
  • 第五项是检查内存

按esc会出现一个boot界面:

如果输入linux rescue/rescue就会进入救援模式:

如果输入linux text为字符界面最小化安装界面,只输入linux命令就是正常安装。

cat /misc/cd/isolinux/isolinux.cfg中有相关的救援模式、正常模式、及本机菜单等信息。

label linux  正常模式光盘安装
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
label rescue   救援模式信息
  menu indent count 5
  menu label ^Rescue a CentOS system
  text help
	If the system will not boot, this lets you access files
	and edit config files to try to get it booting again.
  endtext
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rescue quiet
label local     本地菜单
  menu label Boot from ^local drive
  localboot 0xffff

安装程序的启动流程

1.MBR 放在了光盘的isolinux目录下的boot.cat文件里面

2. stage2阶段放在了isolinux目录下的isolinux.bin 文件里面,相当于硬盘里面的/boot/grub/目录下的文件

3. 配置文件在光盘的isolinux目录的isolinux.cfg文件,定义了加载内核文件的路径

第一种半自动化安装过程,通过光盘挂载到网络进行安装:

新加的光盘网络适配器需选择NAT模式:

在一个已经安装好的系统(centos6)将光盘挂载到网上: 

第一步:cd /www/html

第二步:mkdir -pv centos/{6,7}/os/x86_64/

第三步:mount /dev/sr0  /centos/6/os/x86_64/  挂载的路径就可以当yum源用来当做光盘做引导,下图为挂载后的文件信息。

第四步:制作应答文件,需要我们安装工具 :

由于制作应答文件的是一个图形化工具,所以要到图形化桌面执行

启动前在最好调一下分辨率

1)yum  install -system-config-kickstart

system-config-kickstart 输入,进去之后注意调整分辨率,然后进行设置应答文件。

2)输入完密码,对勾去掉,密码就可见,在后面配置应答文件时,可以重新修改密码;下面是安装完之后重启,选择的第二个对勾是以最小化文本安装。

3)选择http模式安装,并将挂载在网上的光盘路径写上。

4)给grub加入密码,并且可以给kerbel加内核参数:max_loop=100 selinux=0

5)对磁盘进行格式化和分区:

6)设置网卡名称:

7)禁用selinux和防火墙

8)不安装图形界面

9)选择基本安装

10)将其配置文件保存到root目录:

11)应答文件信息做完,以下是应答文件信息,vim  ks.cfg 里边的地区,和开机后实行的对称秘钥脚本。

[[email protected]~]#cat ks.cfg
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use network installation
url --url="http://192.168.34.100/centos/6/os/x86_64"  指定的挂载网络光盘路径
# Root password
rootpw --plaintext centos
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use text mode install
text
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled  禁用的selinux
# Do not configure the X Window System
skipx
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Asia/Shanghai  将地址写成亚洲/上海
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append="max_loop=100 selinux=0" --location=mbr --password="centos"
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="ext4" --size=500
part / --fstype="ext4" --size=10000
part /home --fstype="ext4" --size=20000
part swap --fstype="swap" --size=1024

%post
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo  /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/base.repo << EOF
[base]
basurl=http://192.168.34.100/centos/6/os/x86_64
gpgckeck=0
EOF
useradd wang
echo centos |passwd --stdin wang

mkdir /root/.ssh   生产公钥脚本
cat > /root/.ssh/authorized.keys << EOF  将已经安装好的centos6的id_rsa.pub公钥信息写入。
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5hEv1/BQLBftA/tK5h+cF+zop59zMlpsMpXdaww8j3zktwSywDHhJI1cpWHS+rbUD1BKnapSL3Lfvi7o03rFAauAECgFjrJkAHX53Q1eh2ORfMpScaSPQ78CALSQ3pWN6Elgs6xwAAIc2MUXyoG5TTOJ0PSekzKrTww5xHuNsitXgrKfD2dBIAWFk7vwekk4kvRLBT3rbG19fYc0cTv9u+b6+Xi8EhpwR+v4BAN3eE+CFvEIsZDrp0ul566B9NZBBUBe8EJkr+H/dPRA4PR5Hctyhd27uE9hQ70QzBGBuhrL+NKxi3hRTWuLWoSUs3pP99x9km02FjzDDVOHWS7MVQ== [email protected]
EOF
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized.keys

%end
%packages
@base

12)下来在已装好的centos6将应答文件放到当时挂载光盘的网上:  

mkdir  /var/www/html/ksdir/{6,7}  新建一个文件夹
mv ks.cfg  /var/www/html/ksdir/6/ks6.mini.cfg  将应答文件放入到此目录文件下并起名叫mini.cfg

13)进入安装界面按esc,然后boot下输入内容,指定应答文件路径:直接回车就等待全部安装过程:

boot: linux ks=http://192.168.34.100/ksdir/6/ks6_mini.cfg  ip=192.168.34.123 netmask=255.255.255.0   指定一个能临时连接外网的IP地址,获取外网挂载的应答文件

如果想安装图形界面,我们可以安装一个包组: yum groupinstall  desktop  安装完之后就会有图形界面。

待续:

原文地址:https://www.cnblogs.com/struggle-1216/p/11756328.html

时间: 2024-10-07 22:03:11

运维自动化之系统部署的相关文章

运维自动化之系统部署(一)

运维自动化发展历程及技术应用 安装程序 CentOS系统安装 系统启动流程: ??bootloader-->kernel(initramfs)-->rootfs-->/sbin/initanaconda: 系统安装程序 ?? gui:图形窗口 ?? tui: 基于图形库curses的文本窗口 安装程序启动过程 MBR:isolinux/boot.cat stage2: isolinux/isolinux.bin 配置文件:isolinux/isolinux.cfg ??每个对应的菜单选项

运维自动化之系统部署(kickstart、PXE)

anaconda anaconda负责安装系统向导,默认为GUI界面,如果我们使用ks自动应答安装的话建议使用TUI界面来安装 在安装启动界面我们可以按esc键来自己手动指定安装启动选项 anaconda选项: 1)linux askmethod 在稍后的安装中手动选择安装源 本地光盘.硬盘.NFS.FTP.HTTP 2)linux dd 加载驱动盘 3)linux ks=xxx   指定安装ks文件 DVD drive: ks=cdrom:/PATH/TO/KICKSTART_FILE Har

运维自动化之批量部署(cobbler)的使用

Cobbler的介绍 1.cobbler的介绍 Cobbler由python语言开发,是对PXE和Kickstart以及DHCP的封装.融合很多特性,提供了CLI和Web的管理形式.更加方便的实行网络安装,.同时,Cobbler也提供了API接口,使用其它语言也很容易做扩展.它不紧可以安装物理机,同时也支持kvm.xen虚拟化.Guest OS的安装.更多的是它还能结合Puppet等集中化管理软件,实现自动化的管理. Cobbler 提供以下服务集成: * PXE 服务支持 * DHCP 服务管

运维自动化之Cobbler部署安装RHEL7.0(详细图解版)

一.简介     Cobbler 可以用来快速建立 Linux 网络安装环境,它已将 Linux 网络安装的技术门槛,从大专以上文化水平,成功降低到初中以下,连补鞋匠都能学会.          网络安装服务器套件 Cobbler(补鞋匠)从前,我们一直在做装机民工这份很有前途的职业.自打若干年前 Red Hat 推出了 Kickstart,此后我们顿觉身价倍增.不再需要刻了光盘一台一台地安装 Linux,只要搞定 PXE.DHCP.TFTP,还有那满屏眼花缭乱不知所云的 Kickstart 脚

运维自动化之使用Cobbler自动化部署Linux操作系统

1.Cobbler是什么? Cobbler是一个Linux安装服务器,能够快速设置好网络安装环境.它实现了许多与Linux相关的任务的自动化和组合,因此你在部署新的(操作)系统或更改已经存在的操作系统时不需要在繁多的命令和应用程序之间来回切换.Cobbler能帮助(用户.管理者)置备和管理DNS.DHCP.软件包更新.电源管理.配置管理以及更多. "Cobbler is a Linux installation server that allows for rapid setup of netw

自动化运维之Cobbler自动化系统部署

Cobbler简介 运维自动化包括标准化.工具化.Web化.服务化.智能化等几个不同的层级,在一家规模稍大.拥有服务器上千台甚至是几万台的生产环境中,想要真正实现运维自动化,工具化系统安装流程.统一系统安装规范,是其中最不能忽略的重要环节.普通的自动化部署可以采用pxe+dhcp+tftp配合kickstart实现,但是面对多版本.多部署需求的情况下,这种普通的部署方式可能达不到我们的要求:这时候就需要借助cobbler开源自动化部署工具来实现. Cobbler是一款快速的网络系统部署工具,其最

自动化运维工具Ansible详细部署 (转载)

自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 ===========================

自动化运维工具SaltStack详细部署【转】

==========================================================================================一.基础介绍==========================================================================================1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的pupp

自动化运维工具puppet的部署与应用

作为一名运维工程师,维护服务器的正常运行是最基本的职责,随着服务器的增多,任务量也随之增大,就需要寻找一款能够降低工作量的工具.那么今天就给大家介绍一批工具,这批工具是"可编程"的,只需要为这批工具写上几行代码,它便会自动完成所有的工作,这批工具就是运维自动化puppet(为什么说是一批工具,因为软件不止一个).Puppet可以针对多台服务器进行统一的操作,例如:软件分发,统一执行脚本,在服务器上写好脚本分发给客户机,客户机就会自动执行,减少了人力及误操作风险. 1. puppet工作