|
|
如果你希望安装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的文档: http://docs.sun.com/app/docs/doc/806-5205/6je7vd5ra?a=view#indexterm-75
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的文档: http://docs.sun.com/app/docs/doc/806-5205/6je7vd5ra?a=view#indexterm-75
生成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文档: http://docs.sun.com/app/docs/doc/806-5205/6je7vd5tg?a=view http://docs.sun.com/app/docs/doc/806-5205/6je7vd5v2?a=view
#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的更详细的说明,请参考: http://docs.sun.com/app/docs/doc/806-5205/6je7vd5v3?a=view
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文档: http://docs.sun.com/app/docs/doc/806-5205/6je7vd5s5?a=view
确保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
|
|