Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5725552
  • 博文数量: 745
  • 博客积分: 10075
  • 博客等级: 上将
  • 技术积分: 7716
  • 用 户 组: 普通用户
  • 注册时间: 2005-04-29 12:09
文章分类

全部博文(745)

文章存档

2019年(1)

2016年(1)

2010年(31)

2009年(88)

2008年(129)

2007年(155)

2006年(197)

2005年(143)

分类:

2005-08-24 10:10:37

如果你希望安装solaris操作系统的时候,系统不会问你一大堆问题而耽误你的时间,或者你想在系统塌掉以后,在很短的时间内做出一个全新的操作系统,或者只去敲入一条命令,所有的安装过程不再需要人为的干预,或者在你为经常的手动升级系统感到厌烦的话,那么就来跟着我一起配置一台jumpstart server吧,它能让你从繁重的安装或者升级的工作中解脱出来,而且还可以很灵活的安排安装和升级任务,它可以根据不同的情况,不同的机器,选择不同的安装或升级脚本。

1,原理
jumpstart方式安装需要下面四种服务
Boot services
Identification services
Configuration services
Installation services

以上四项服务可以分别由不同的机器来完成,要注意的是Boot server一定要和client在一个子网里,其他的倒不一定,一般情况下我习惯将他们做到同一个机器里。

Boot services为客户端提供启动服务,能够提供客户端的ip地址,hostname等启动参数,服务器要想提供boot services,下面的文件和目录必须要正确配置:
/etc/ethers
/etc/inet/hosts
/tftpboot(目录)
/etc/inet/inetd.conf
/etc/bootparams
/etc/dfs/dfstab
除了hosts和ethers文件外,其他的文件和目录可以由add_install_client工具来生成,该工具存在于solaris安装光盘的第一张光盘里。
hosts和ethers文件存储有客户端的主机名,MAC地址,ip地址,可以响应RARP查询,提供客户端的主机名和ip地址。
/tftpboot目录下面存储有对应于特定机型的启动文件,使用tftp协议传送给客户端,因此服务器要起tftp服务,所以inetd.conf里面的tftp服务前面的注释要去掉。
添加/tftpboot目录及下面的内容,以及修改inetd.conf文件都可以由add_install_client工具来完成。
bootparams文件指定client所需要的Root文件系统,以及安装所需要的config目录,install目录所在服务器的正确位置,以便正确mount到自己的本地。dfstab文件指定服务器要把那些目录给share出去,以便让client端mount到自己的本地使用,否则client是无法mount上去的,这要求服务器端要开nfs服务。
修改bootparams和dfstab文件也都可以有add_install_client工具来完成。

Identification Services响应client发出的identification查询请求,这些identification信息包括:网络信息,安全策略,nameserver,timezone,terminal type,时间取得方式,还有root的密码等,也就是当你手动安装时,需要回答的问题。可以以文件的形式提供,也可以使用NIS或NIS+服务提供,我习惯以
文件sysidcfg的形式。以文件形式提供时,要确保该文件所在目录已经share出去,保证client能够mount上。
我的sysidcfg文件如下:
#cat sysidcfg
network_interface=primary
        {protocol_ipv6=no
        netmask=255.255.255.0
        default_route=192.168.1.1}
security_policy=none
name_service=NONE
timezone=Asia/Shanghai
system_locale=en_US
terminal=vt100
timeserver=localhost
root_password=W8Dhz34xImLI.

有关sysidcfg文件的关键字,以及取值请参考sun的文档:


Configuration Services提供的信息包括:安装类型(初始化安装还是升级安装),系统类型(standalone,server),硬盘分区,文件系统,软件安装类型(Core,End Use,Developer,Entire Distribution,Entire Distribution plus OEM)以及不同的客户端采用的不同的安装配置脚本等。有rules文件和profiles文件决定。rules文件决定客户端的类型,决定客户端适用于那个安装配置文件。profiles文件是真正安装配置文件,决定系统如何安装,安装那些东西。rules文件就一个,而profiles文件由多个,由rules文件决定使用哪一个配置文件。

Installation Services最好理解,提供安装操作系统所需要的程序包,只需将光盘里的内容copy到硬盘里就行了。

2,具体步骤
步骤大概解释如下:
我的两台solaris机器,hostname分别为sun1和sun2,用sun2做jumpstart服务器,sun1做client。
在安装服务器的solaris操作系统(sun2)上新建一目录,我的是/jumpstart目录,下面建目录solaris9,以区别于其他solaris版本的jumpstart安装目录,在solaris9下面建两个目录install和config,也就是说两个目录分别是:
/jumpstart/solaris9/install
/jumpstart/solaris9/config
config目录用来存储sysidcfg文件,rules文件,profiles文件
install目录用来保存操作系统光盘复制过来的操作系统安装程序。
配置客户端启动需要的参数文件。最后将install和config两个目录share出去

详细步骤如下:

生成install server:
将光盘上的文件copy到硬盘上的/jumpstart/solaris9/install目录。
如果vold daemon没有起来,需要手动mount光驱,如果起来,就不需要,插入光驱就能用,vold是一个能够自动mount光驱和软驱的后台进程。

插入第一张光盘
#mkdir -m 755 /jumpstart/solaris9/install
#cd /cdrom/cdrom0/s0/Solaris_9/Tools
#./setup_install_server /jumpstart/solaris9/install
#cd /
#eject cdrom
插入第二张光盘
#cd /cdrom/cdrom0/Solaris_9/Tools
#./add_to_install_server /jumpstart/solaris9/install
#cd /
#eject cdrom
插入Lang光盘
#cd /cdrom/cdrom0/Tools
#./add_to_install_server /jumpstart/solaris9/install
#cd /
#eject

生成identification server:
我用的是文件方式,即sysidcfg文件,将sysidcfg保存到/jumpstart/solaris9/config目录下,定义的都是手动安装时需要输入的信息,可以避免再次手动输入,如果这里定义的信息不全,安装的时候还是会提示的。

#mkdir -m 755 /jumpstart/solaris9/config
#cd /jumpstart/solaris9/config
#vi sysidcfg
network_interface=primary
        {protocol_ipv6=no
        netmask=255.255.255.0
        default_route=192.168.1.1}
security_policy=none
name_service=NONE
timezone=Asia/Shanghai
system_locale=en_US
terminal=vt100
timeserver=localhost
root_password=W8Dhz00xImLI.

root密码是从/etc/shadow中粘贴过来的。根据实际情况填写。
有关sysidcfg文件的更多内容请参考sun的文档:


生成configuration server:
编辑rules文件和profiles文件,这里的profiles文件名一定要用rules文件里定义的名字
#cd /jumpstart/solaris9/config

#vi rules
hostname sun1 - profiles1 -

意思是:如果client的hostname是sun1,那么采用profiles1安装脚本。这里采用的是用hostname来区分不同client,如果有多个机器,每个机器占一行,可以使用不同的安装脚本。当然,如果机器非常多,也可以按机器类型,或者组别来分类。profiles1前后的两个-(dash),分别表示安装前后要执行的脚本。这里为空,用-(dash)表示。前面的执行脚本,一般配置安装前的环境变量,后面的脚本一般配置安装后对某些服务要做的修改。
rules文件的更详细的信息,请参考sun文档:



#vi profiles1
install_type  initial_install
system_type  standalone
partitioning  explicit
filesys  c0t2d0s0 1024 swap
filesys  c0t2d0s1 free /
cluster  SUNWCall
locale en_US
locale en_CA
locale ja_JP
locale zh_CN
locale zh_HK
locale zh_TW

意思是:执行初始化安装,将硬盘的1G空间分给swap,剩下的给/,执行的软件安装类型是:Entire Distribution,安装的语言包:英文,日语,中文。
profiles的更详细的说明,请参考:


rules和profiles文件配置完成后要用一个名为check的脚本来检验一下是否正确,如果错误,会提示那个地方出错,是什么错误,然后修改,直至不再有错误提示。
#cd /jumpstart/solaris9/install/Solaris_9/Misc/JumpStart_sample
#cp check /jumpstart/solaris9/config
#cd /jumpstart/solaris9/config
#./check

如果check完成后正确无误,会生成一个rules.ok文件,client在安装的时候读取的是rules.ok文件,而不是rules文件。


生成boot server:
#vi /etc/hosts
127.0.0.1       localhost
192.168.1.239   sun2    loghost
192.168.1.238   sun1    sun1.vst-china.com

#vi /etc/ethers
0:3:BA:35:7E:2C         sun1

此两个文件的作用是:当客户端起来发起RARP查询和whoami查询的时候,服务器会根据发起RARP查询的MAC地址,查询ethers文件和hosts文件的记录返回给客户端hostname和ip地址,所以ethers文件要有client端的MAC地址对应的hostname,即sun1,hosts文件要有sun1对应的ip地址。

#cd /jumpstart/solaris9/install/Solaris_9/Tools
#./add_install_client 
-s sun2:/jumpstart/solaris9/install 
-c sun2:/jumpstart/solaris9/config 
-p sun2:/jumpstart/solaris9/config 
sun1 sun4u

add_install_client工具生成/tftpboot目录以及下面的文件。修改inetd.conf文件,生成bootparams文件,以及dfstab文件。
-s指定安装目录
-c指定sysidcfg目录
-p指定config目录
sun1是client的名字
sun4u是client的机器类型,具体是sun4u还是sun4m或者是其他的型号可以用下面命令查询:
#uname -m
add_install_client工具的详细说明请参考sun文档:


确保dfstab的内容正确
#vi /etc/dfs/dfstab
share -F nfs -o ro,anon=0 /jumpstart/solaris9/install
share -F nfs -o ro,anon=0 /jumpstart/solaris9/config

执行命令:
#shareall
#share

shareall命令可以将dfstab中指定的目录share出去,share命令可以查看share的状态。

3,执行client端安装
在sun1机器上,在ok状态执行:
ok> boot net - install
然后就可以回家吃饭了,回来后,就可以看到一个全新的操作系统已经做好了。


作者:yanghz
时间:2004-12-03

阅读(2755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~