Unix/Linux 系统自动化管理 网络自动化安装(2)
- UID
- 1066743
|
Unix/Linux 系统自动化管理 网络自动化安装(2)
AIX 系统安装自动化AIX NIM 提供了网络安装功能由配置脚本组成,很适合系统安装自动化。我们可以通过添加一些脚本来实现安装的自动化。
以下是 NIM 文件集安装实例以及利用 NIM 自动化的安装 AIX 客户端的具体步骤
1. NIM 服务器端的安装和配置
在一个选定的 AIX 系统中,首先要判断系统是否已经安装 bos.sysmgt.nim.client fileset.
其中,要注意 bos.sysmgt.nim.spot 是可选的,在以瘦服务器端方式安装时,这是必须安装的,比如 diskless 和 dateless。
确定 bos.sysmgt.nim.client 已经安装后,可以调用 NIM 自带的脚本,nim_master_setup 来配置 NIM 服务器端。
实现 NIM 服务器端 NIM 的安装和配置命令:
首先判断是否有 nim 文件包已经安装
如果没有安装则运行下面的命令:
1
| nim_master_setup -a mk_resource=no
|
调用 nim_master_setup 需要指定若干选项,主要选项的说明 :
清单 4. nim_master_setup 选项1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| Usage nim_master_setup: Setup and configure NIM master.
nim_master_setup [-a mk_resource={yes|no}]
[-a file_system=<fs name>]
[-a volume_group=<vg name>]
[-a disk=<disk name>]
[-a device=<device>] [-B] [-v]
-B Do not create mksysb resource.
-v Enable debug output.
各个选项有相应的默认值 :
mk_resource = yes
file_system = /export/nim
volume_group = rootvg
device = /dev/cd0
|
2. 生成安装所需的 NIM 资源
AIX NIM 服务器端可以通过命令 /usr/sbin/nim -Fo define -t lpp_source -a server=master 将 NIM 资源添加到 NIM 资源数据库中。
添加的资源种类有:
lppsource,spot,mksysb,paging,resolv_conf,root,installp_bundle,root,script。
在此之前,需要做好各种判断,比如要判断目标目录的磁盘空间是否足够,如果不足,需要自动为其分配空间。
首先判断现有磁盘空间:
1
2
| # get free space
my $dfcmd = qq~/usr/bin/df -m $location | /usr/bin/awk '(NR==2){print \$3":"\$7}'~;
|
如果不足,需要为其动态增加磁盘空间。 一般说来,lpp_source 大约空间为 1GB。
假设我们将 lppsize 设为 1500M,通过下面的脚本来实现空间的自动添加。
清单 5. 设置 lppsize1
2
3
4
5
6
7
8
| my $lppsize = 1500;
my $space_needed;
if ( $size >= $free_space) {
$space_needed = int ($size - $free_space);
my $addsize = $space_needed+10;
my $sizeattr = "-a size=+$addsize" . "M";
my $chcmd = "/usr/sbin/chfs $sizeattr $FSname";
}
|
3. 将 NIM 客户端添加到 NIM 资源中
需要将 NIM 客户端的特性定义添加到 NIM 资源中,比如可以用命令 lsnim -l nim_client1 来验证 nim_client1 资源已经被正确添加。
清单 6. 验证 nim 资源1
2
3
4
5
6
7
8
9
10
11
12
13
14
| bash-3.2# lsnim -l nim_client1
nim_client1:
class = machines
type = standalone
connect = shell
platform = chrp
netboot_kernel = 64
if1 = master_net nim_client1 4adc03d00000 ent
cable_type1 = N/A
Cstate = ready for a NIM operation
prev_state = not running
Mstate = currently running
cpuid = 00C115E44C00
Cstate_result = success
|
在脚本中可以用如下两条命令来添加客户端或者对客户端操作:
1
2
| nim -F -o change $nim_args hostname1
$cmd = "nim -o define $nim_type $nim_args hostname1
|
4. 分配 NIM 资源给 NIM 客户端
在确认 NIM 客户端资源已经被正确添加后即可以通过 NIM 分配相应的资源给 NIM 客户端。
运行
1
2
3
| /usr/sbin/nim -o bos_inst -a accept_licenses="yes" -a source="rte"
-a lpp_source="61F_lpp_source" -a bosinst_data="61F_bosinst_data"
-a boot_client="no" -a spot="61F_spot" -a script=aixscript nim_client1
|
重启 NIM client 上的 inetd。
然后可以通过 lsnim – l nim_client1 来测试 NIM 资源是否已经分配成功:
清单 7. 验证 nim 资源是否分配成功1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| bash-3.2# lsnim -l nim_client1
HE_node001:
class = machines
type = standalone
connect = shell
platform = chrp
netboot_kernel = 64
if1 = master_net nim_client1 4adc03d60000 ent
cable_type1 = N/A
Cstate = BOS installation has been enabled
prev_state = ready for a NIM operation
Mstate = currently running
boot = boot
bosinst_data = 61F_bosinst_data
lpp_source = 61F_lpp_source
nim_script = nim_script
script = aixscript
spot = 61F_spot
cpuid = 00C115E44C00
control = master
|
5. NIM 客户端安装
如果想通过 NIM 安装,只需要将 NIM 客户端设置成从网络启动即可。 |
|
|
|
|
|