构建机房运维基础架构(三): 自动装机流程

流程

1. 根据 SN 去 DDNS 请求 ILO IP

2. 设置第二块网卡支持PXE启动 (通过 ssh root@$iloip 设置)。

3. 设置启动顺序,硬盘启动第一优先级,第二块网卡第二优先级。

4. 设置机器从PXE启动一次。

5. 重启

6. 拷贝对应的tftp 配置文件(根据mac地址命名文件名)

7. 机器从第二块网卡启动PXE,通过DHCP获取到IP,DHCP告诉机器 tftp服务器的IP

8. 机器连接tftp服务器,获取内核文件,加载内核,并获取到 tftp配置文件,并根据配置文件去请求 ks 文件。

9. 拿到ks文件,执行装机流程,包括 语言、时区、硬盘格式化、防火墙 等等。

10. 执行到post阶段,开始执行自己的自定义脚本。

11. 我们的装机类型有三种:
1) raw_clean (纯净物理机)
2) kvm_host  (宿主机)
3) kvm_guest (虚拟机)

我们的自定义脚本是post_install.sh ,会自动装好三种 类型的机器;脚本做的最重要的事情有:
1) 通用初始化
2) 获取主机名和IP,并配置到系统
3) 准备好增加本机主机名到DNS的脚本到机器上。
4) 准备puppet执行环境

这个脚本也是最可能需要动的了。

12. post 阶段 之后 是 重启,重启之后DNS脚本自动执行,把自己的主机名增加DNS,然后Puppet 开始执行初始化环境 ( Puppet会自动把资产和监控的客户端安装好,资产的客户端会把机器信息上传到资产系统 )。

 

注意的问题

1. 物理装机我们用DHCP指定的 DNS —

    option domain-name-servers 10.0.12.234;
    option domain-name “nosa.me;

虚拟机装机的时候在virt-install 命令里 要手动指定一个 dns server —

   -x “ip=xxx netmask=xxx gateway=xxx dns=xxx “ 

这样会解析所有的全域名,但是遇到 前缀域名就完蛋了,因为 kickstart 不支持search nosa.me 之类的语法;这个问题导致了我的Puppet 不能工作,初始化失败。

所以可以在post阶段 执行下面这个命令:
  echo “search nosa.me” >>/etc/resolv.conf

此乃大坑。