- 论坛徽章:
- 0
|
配置多个区域的脚本
您也可以使用该脚本在系统上配置和引导多个区域。该脚本采用以下参数:
■ 要创建的区域个数
■ zonename 前缀
■ 可用作基目录的目录
要执行此脚本,您必须是全局区域中的全局管理员。全局管理员在全局区域中拥有超级用
户权限或承担主管理员角色。
#!/bin/ksh
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
echo "usage: $0 <#-of-zones> <zonename-prefix> <basedir>"
exit 2
fi
if [[ ! -d $3 ]]; then
echo "$3 is not a directory"
exit 1
fi
nprocs=‘psrinfo | wc -l‘
nzones=$1
prefix=$2
dir=$3
ip_addrs_per_if=‘ndd /dev/ip ip_addrs_per_if‘
if [ $ip_addrs_per_if -lt $nzones ]; then
echo "ndd parameter ip_addrs_per_if is too low ($ip_addrs_per_if)"
echo "set it higher with ’ndd -set /dev/ip ip_addrs_per_if <num>"
exit 1
fi
i=1
while [ $i -le $nzones ]; do
zoneadm -z $prefix$i list > /dev/null 2>&1
if [ $? != 0 ]; then
echo configuring $prefix$i
F=$dir/$prefix$i.config
rm -f $F
echo "create" > $F
echo "set zonepath=$dir/$prefix$i" >> $F
zonecfg -z $prefix$i -f $dir/$prefix$i.config 2>&1 | \
sed ’s/^/ /g’
else
echo "skipping $prefix$i, alreadyconfigured"
fi
i=‘expr $i + 1‘
done
i=1
while [ $i -le $nzones ]; do
j=1
while [ $j -le $nprocs ]; do
if [ $i -le $nzones ]; then
if [ ‘zoneadm -z $prefix$i list -p | \
cut -d’:’ -f 3‘ != "configured" ]; then
echo "skipping $prefix$i, alreadyinstalled"
else
echo installing $prefix$i
mkdir -pm 0700 $dir/$prefix$i
chmod 700 $dir/$prefix$i
zoneadm -z $prefix$i install > /dev/null 2>&1 &
sleep 1 # spread things out just a tad
fi
fi
i=‘expr $i + 1‘
j=‘expr $j + 1‘
done
wait
done
i=1
while [ $i -le $nzones ]; do
echo setting up sysid for $prefix$i
cfg=$dir/$prefix$i/root/etc/sysidcfg
rm -f $cfg
echo "network_interface=NONE {hostname=$prefix$i}" > $cfg
echo "system_locale=C" >> $cfg
echo "terminal=xterms" >> $cfg
echo "security_policy=NONE" >> $cfg
echo "name_service=NONE" >> $cfg
echo "timezone=US/Pacific" >> $cfg
echo "root_password=Qexr7Y/wzkSbc" >> $cfg # ’l1a’
i=‘expr $i + 1‘
done
i=1
para=‘expr $nprocs \* 2‘
while [ $i -le $nzones ]; do
date
j=1
while [ $j -le $para ]; do
if [ $i -le $nzones ]; then
echo booting $prefix$i
zoneadm -z $prefix$i boot &
fi
j=‘expr $j + 1‘
i=‘expr $i + 1‘
done
wait
done
如何显示非全局区域的配置
要执行此过程,您必须是全局区域中的全局管理员.
成为超级用户或承担主管理员角色。
显示区域配置。
global# zonecfg -z zonename info
使用 zonecfg 命令修改区域配置
也可使用 zonecfg 命令执行以下操作:
■修改区域配置中的资源类型
■在区域中添加专用设备
如何修改区域配置中的资源类型
可以选择一个资源类型并修改该资源的指定。
请注意,在使用 zoneadm 安装区域之后,不能修改或删除 inherit-pkg-dir 目录中软件包的内容。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
选择要修改的区域,在此过程中为 my-zone。
global# zonecfg -z my-zone
选择要更改的资源类型,例如,资源控制。
zonecfg:my-zone> select rctl name=zone.cpu-shares
删除当前值。
zonecfg:my-zone:rctl> remove value (priv=privileged,limit=20,action=none)
添加新值。
zonecfg:my-zone:rctl> add value (priv=privileged,limit=10,action=none)
结束修改后的 rctl 的指定。
zonecfg:my-zone:rctl> end
提交区域的配置。
zonecfg:my-zone> commit
退出 zonecfg 命令。
zonecfg:my-zone> exit
请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行
commit。
由 zonecfg 提交的更改在下次引导区域时生效。
如何修改区域配置中的属性类型
使用此过程可以重置一个独立属性,该独立属性没有其他相关属性要配置。例如,要删除
现有的池关联,您可以将 pool 资源重置为 null。
成为超级用户或承担主管理员角色。
选择要修改的区域,在此过程中为 my-zone。
global# zonecfg -z my-zone
重置要更改的属性,在此过程中为现有的池关联。
zonecfg:my-zone> set pool=""
提交区域的配置。
zonecfg:my-zone> commit
退出 zonecfg 命令。
zonecfg:my-zone> exit
请注意,即使您没有在提示符下明确键入 commit,也会在键入 exit 或出现 EOF 时自动执行
commit。
由 zonecfg 提交的更改在下次引导区域时生效。
如何在区域中添加专用设备
以下过程说明如何在非全局区域配置中放置扫描设备。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
添加设备。
zonecfg:myzone> add device
设置设备匹配,在此过程中为 /dev/scsi/scanner/c3t4*。
zonecfg:myzone:device> set match=/dev/scsi/scanner/c3t4*
结束设备指定。
zonecfg:myzone:device> end
退出 zonecfg 命令。
zonecfg:myzone> exit
使用 zonecfg 命令恢复或删除区域配置
使用 zonecfg(1M) 中介绍的 zonecfg 命令可以恢复或删除区域配置。
如何恢复区域配置
当使用 zonecfg 实用程序配置区域时,请使用 revert 子命令来撤消对区域配置执行的资源设置。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
在配置一个名为tmp-zone 的区域时,请键入 info 来查看配置。
zonecfg:tmp-zone> info
配置的 net 资源段显示如下:
.
.
.
fs:
dir: /tmp
special: swap
type: tmpfs
net:
address: 192.168.0.1
physical: eri0
device
match: /dev/pts/*
删除网络地址:
zonecfg:tmp-zone> remove net address=192.168.0.1
检验 net 条目是否已被删除。
zonecfg:tmp-zone> info
fs:
dir: /tmp
special: swap
type: tmpfs
device
match: /dev/pts/*
键入 revert。
zonecfg:tmp-zone> revert
对下面的问题回答是:
Are you sure you want to revert (y/[n])? y
检验网络地址是否再次出现:
zonecfg:tmp-zone> info
.
.
.
fs:
dir: /tmp
special: swap
type: tmpfs
net:
address: 192.168.0.1
physical: eri0
device
match: /dev/pts/*
.
.
.
如何删除区域配置
使用带有 delete 子命令的 zonecfg,可以从系统中删除区域配置。
要执行此过程,您必须是全局区域中的全局管理员。
成为超级用户或承担主管理员角色。
使用以下两种方法之一来删除区域 a-zone 的配置:
■ 使用 -F 选项强制执行操作:
global# zonecfg -z a-zone delete -F
■ 对系统提示回答是,从而以交互方式删除区域:
global# zonecfg -z a-zone delete
Are you sure you want to delete zone a-zone (y/[n])?y |
|