Board logo

标题: 简化在新的 Power System 或 System p LPAR 上安装 Linux 的过程(1) [打印本页]

作者: look_w    时间: 2018-5-23 17:49     标题: 简化在新的 Power System 或 System p LPAR 上安装 Linux 的过程(1)

云计算的特性之一就是能够将应用程序从一个处理器环境移动到另一个。这个特性要求在移动应用程序之前 存在一个接收它的目标操作系统。如果能够自动化新操作系统的安装,不是很好吗?
Intel™ 架构系统的一个为人熟知的特性就是能够自动安装 Linux。不过,对于使用硬件管理控制台的 System p 或 IBM Power Systems,自动安装 Linux 是一个棘手的问题。本文讨论的解决方案的优点之一是:它是一个纯 Linux 解决方案,并且不要求您掌握任何具体的 AIX 技术。
自动化解决方案概述这个解决方案的目标是通过使用一组易于维护和修改的配置自动化操作系统的安装。它具有以下特征:
构建和使用自动化解决方案的步骤包括:
步骤 1. 配置 AutoYaST 文件SUSE Linux 使用一个名为 AutoYaST.xml 的 XML 配置文件控制操作系统的安装。默认情况下,每次使用 AutoYaST 时它都会使用相同的配置安装系统。这使您能够获得特定于不同配置的 AutoYaST 文件。例如,您可能有一个针对 Web 服务器的 AutoYaST 文件,以及另一个针对 MySQL 服务器的 AutoYaST 文件。然而,如果服务器仅是 IP 地址和主机名不同,为它们配置和维护多个 AutoYaST 文件是相当困难的,并且很费时。
要创建一个从 DHCP 服务器获取 IP 地址和主机名的定制 AutoYaST 文件,必须从 SUSE 安装 CD 复制 AutoYaST 文件,并按以下的说明修改它:
清单 1. AutoYaST DHCP 转换脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<scripts>
  <init-scripts config:type="list">
    <listentry>
      <filename>network_setup</filename>
      <interpreter>shell</interpreter>
      <source><![CDATA[#!/bin/bash
### Disable ipv6
echo 'install ipv6 /bin/true' >> /etc/modprobe.conf.local

### Variables to Calculate Network Configuration Settings for a static configuration ###
ACTIVE_INTERFACE=`/sbin/ifconfig | grep eth | awk '{print $1}'`
IP_ADDRESS=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $2}'
| sed 's/addr://'`
NETMASK=`/sbin/ifconfig $ACTIVE_INTERFACE | grep 'inet addr' | awk '{print $4}'
| sed 's/Mask://'`
BROADCAST=`/sbin/ifconfig $ACTIVE_INTERFACE | grep Bcast: | awk '{ print $3 }'
| sed 's/Bcast://'`
NETWORK=`/sbin/ip route list | grep $IP_ADDRESS | awk '{ print $1 }'
| sed 's/\/[1-9][1-9]//'`
GATEWAY=`/sbin/route | grep default | awk '{print $2}'`
HOSTNAME=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//'`

### Setup HOSTNAME
echo "$HOSTNAME" > /etc/HOSTNAME

### Setup Gateway Address
echo "default $GATEWAY - -" > /etc/sysconfig/network/routes

### Setup /etc/hosts with correct host information
HOST=`/usr/bin/host $IP_ADDRESS | awk '{print $5}' | sed '$s/.$//' | cut -d "." -f 1`
echo "$IP_ADDRESS   $HOSTNAME $HOST" >> /etc/hosts

### Network configuration file rewrite for static configuration

INT_CONF_FILE=/etc/sysconfig/network/ifcfg-eth-id-`ifconfig eth0 | grep HWaddr
| awk '{ print $5 }' | perl -ne '$var=$_; print lc($var)'`

echo 'DEVICE=eth0' > $INT_CONF_FILE
echo 'BOOTPROTO=static' >> $INT_CONF_FILE
echo "IPADDR=$IP_ADDRESS" >> $INT_CONF_FILE
echo "NETMASK=$NETMASK" >> $INT_CONF_FILE
echo "BROADCAST=$BROADCAST" >> $INT_CONF_FILE
echo "NETWORK=$NETWORK" >> $INT_CONF_FILE
echo 'STARTMODE=onboot' >> $INT_CONF_FILE
echo 'TYPE=Ethernet' >> $INT_CONF_FILE

### Restart Network
/etc/init.d/network restart
      ]]></source>
    </listentry>
  </init-scripts>
</scripts>




步骤 2. 配置 DHCP/BOOTP 和 TFTP 服务器这个解决方案使用标准的 Linux DHCP 服务器,该服务器是所有主要的 Linux 发行版的一部分。在这一步骤中,需要配置 DHCP 服务器以为新的 LPAR 提供网络引导信息。初始代码通过 Trivial File Transfer Protocol(TFTP)服务器装载到 LPAR。要设置网络引导,必须将 DHCP 服务器和 TFTP 服务器装载到网络中的服务器。
这个解决方案使用的 DHCP 服务器并没有配置为动态地向网络中的系统提供 TCP/IP 地址,但它能够在同一个网络上和担任这一传统角色的 DHCP 服务器共存。即使 DHCP 服务器所在的网络与引导系统的网络不同,也可以使用这种类型的配置。例如,它可以通过德克萨斯州的服务器动态地引导在纽约的系统。
要使 lpar_netboot 命令能够按照这个解决方案的  那样工作,则需要为每个安装的 LPAR 配置 DHCP 服务器。这个方法的优点是:自动安装 LPAR 所需的所有配置信息都包含在 dhcpd.conf 文件中。因此,在前面步骤中更改的 AutoYaST 文件不需要包含任何用于定义 LPAR 网络配置的硬编码信息。
清单 2 包含了一个示例 dhcp.conf 文件。使用这个示例作为一个模型,并为每个需要配置的 LPAR 添加额外的 host 定义。本文 下载 小节的压缩文件包含一个名为 addsystem 的脚本,您可以使用它来自动化 dhcpd.conf 文件的编辑过程。
每次更改 dhcpd.conf 文件时,必须重启 DHCP 服务器使更改生效。
清单 2. 示例 dhcpd.conf 文件
1
2
3
4
5
6
7
8
9
10
11
12
ddns-update-style ad-hoc;
allow bootp;
subnet 0.0.0.0 netmask 0.0.0.0 {
    host rcc-hny-poc-003 {
        option host-name    "myserver.cloud9.ibm.com";
        fixed-address       192.168.0.203;
        hardware ethernet   16:E9:10:94:87:03;
        filename            "inst64";
    }
    next-server         192.168.0.201;
    option routers      192.168.0.201;
}




下面详细说明示例 dhcp.conf 文件中的选项:
可以使用 SLES 发行版中的 atftpd 包配置 TFTP 服务器。TFTP 配置提供一个目录,在这里可以使用 TFTP 下载文件。下载目录通常为 /tftpboot。在 dhcpd.conf 文件中的每个 host 部分的 filename 参数上指定的文件必须位于该下载目录中。
例如,对于网络安装 SUSE,该文件为 inst64 文件,可从 SUSE 安装 CD 的 /suseboot 目录获得。您需要将该文件放到 /tftpboot 目录,确保所有人都有读取它的权限。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0