[原创]Oracle Solaris 11 使用iso镜像配置本地IPS
本帖最后由 jerryjzm 于 2011-11-17 15:04 编辑Oracle Solaris 11 使用iso镜像配置本地IPS
原创:jerryjzm
随着oracle发布了solaris 11,也将IPS正式引入到针对企业的solaris环境中。它带来了很多方便管理软件包的地方,特别是解决软件包之间的依赖关系。在日常的工作中,并不是所有的环境都具备连接外网,即使能连接外网也不能保证有很好的网络速度。所有的包都从外网下载安装,也就受到了这些因素的限制。
幸好,oracle也提供搭建本地IPS环境的方式,而且可以将外网的IPS镜像到本地,利于本地环境搭建和部署。这里就将自己搭建本地IPS的步骤写出来,有什么更好更优的方法,也请大家指出。
一、 准备环境
这个本地IPS环境是可以搭建在X86或是sparc系统上的。对操作系统的要求是IPS所搭建的操作系统版本要高于等于IPS版本(也就是搭建的本地IPS服务于那个版本的操作系统)。
官方的解释是:
这里我们用的就是solaris 11 for x86,而且我将使用web(http)而不是nfs,这样通过浏览器查询也方便。
二、 安装好操作系统
这个内容就比较简单,现在默认也就是zfs的文件系统。一路安装好。
root@solaris:~# zfs list
NAME USEDAVAILREFERMOUNTPOINT
rpool 15.1G24.0G 39K/rpool
rpool/ROOT 1.81G24.0G 31Klegacy
rpool/ROOT/solaris 1.81G24.0G1.55G/
rpool/ROOT/solaris/var 216M24.0G 145M/var
rpool/dump 528M24.0G 512M-
rpool/export 11.7G24.0G 32K/export
rpool/export/home 11.7G24.0G 32K/export/home
rpool/export/home/monitor11.7G24.0G11.7G/export/home/monitor
rpool/swap 1.03G24.0G1.00G-
三、 配置IPS
1) 为IPS创建一个单独的zfs文件系统
root@solaris:~# zfs create rpool/export/repo11
root@solaris:~# zfs list
NAME USEDAVAILREFERMOUNTPOINT
rpool 15.1G24.0G 39K/rpool
rpool/ROOT 1.81G24.0G 31Klegacy
rpool/ROOT/solaris 1.81G24.0G1.55G/
rpool/ROOT/solaris/var 216M24.0G 145M/var
rpool/dump 528M24.0G 512M-
rpool/export 11.7G24.0G 33K/export
rpool/export/home 11.7G24.0G 32K/export/home
rpool/export/home/monitor11.7G24.0G11.7G/export/home/monitor
rpool/export/repo11 31K24.0G 31K/export/repo11
rpool/swap 1.03G24.0G1.00G-
2) 创建构造IPS的repository的基础机构
root@solaris:~# pkgrepo create /export/repo11
root@solaris:/export/repo11# ls -l
total 1
-rw-r--r-- 1 root root 78 Nov 17 17:47 pkg5.repository
3) 从下载的文件生成ISO文件
从oracle官网的
http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index.html
现在这2个压缩文件,解压后:
root@solaris:/home/monitor# ls -l
total 24639827
-rwx------ 1 monitorstaff 2903566990 Nov 16 01:03 sol-11-1111-repo-full-iso-a
-rwx------ 1 monitorstaff 2762210301 Nov 16 01:42 sol-11-1111-repo-full-iso-b
再
cat sol-11-1111-repo-full.iso-a sol-11-1111-repo-full.iso-b > sol-11-1111-repo-full.iso
root@solaris:/home/monitor# ls -l *.iso
-rw-r--r-- 1 root root 6940854272 Nov 16 03:14 sol-11-1111-repo-full.iso
4) 将生成的ISO文件以loopback的形式挂载使用
root@solaris:~# mkdir /mnt/iso
root@solaris:~# lofiadm -a /mnt/iso/ /home/monitor/sol-11-1111-repo-full.iso
lofiadm: /mnt/iso is not a regular file, block, or character device
root@solaris:~# lofiadm
Block Device File Options
/dev/lofi/1 /home/monitor/sol-11-1111-repo-full.iso -
root@solaris:~# mount -F hsfs /dev/lofi/1 /mnt/iso
root@solaris:~# df -h /mnt/iso/
Filesystem Size UsedAvailable CapacityMounted on
/dev/lofi/1 6.5G 6.5G 0K 100% /mnt/iso
5) 从/mnt/iso中拷贝repository内容
拷贝可以使用rsync也可以使用tar,使用过程中感觉到tar是相当快一些的,不过这一步都是比较耗费时间,毕竟有6G多内容嘛
root@solaris:/mnt/iso/repo# tar cf - . | (cd /export/repo11; tar xfp -)
6) 为repository生产搜索索引
root@solaris:/mnt/iso/repo# pkgrepo -s /export/repo11 refresh
Initiating repository refresh.
四、 配置web服务
1) 配置web服务,并检查
root@solaris:/mnt/iso/repo# svccfg -s application/pkg/server setprop pkg/inst_root=/export/repo11
root@solaris:/mnt/iso/repo# svccfg -s application/pkg/server setprop pkg/readonly=true
root@solaris:/mnt/iso/repo# svcprop -p pkg/inst_root application/pkg/server
/export/repo11
2) 启动IPS(repository)服务
root@solaris:/mnt/iso/repo# svcadm refresh application/pkg/server
root@solaris:/mnt/iso/repo# svcadm enable application/pkg/server
3) 设置IPS的origin为本地的web服务地址
root@solaris:~# pkg set-publisher -G '*' -g http://127.0.0.1:80 solaris
4) 检查启动的服务情况
root@solaris:/mnt/iso/repo# pkg publisher
PUBLISHER TYPE STATUS URI
solaris origin online http://127.0.0.1:80/
root@solaris:/mnt/iso/repo# pkgrepo info -s /export/repo11/
PUBLISHER PACKAGES STATUS UPDATED
solaris 4292 online 2011-10-26T17:17:30.230911Z
root@solaris:/mnt/iso/repo# pkgrepo get -s /export/repo11/
SECTION PROPERTY VALUE
publisherprefix solaris
repository description This\ repository\ serves\ a\ copy\ of\ the\ Oracle\ Solaris\ 11\ Build\ 175b\ Package\ Repository.
repository name Oracle\ Solaris\ 11\ Build\ 175b\ Package\ Repository
repository version 4
五、 总结
这样本地IPS就配置好了,安装一个包试试
root@solaris:/mnt/iso/repo# pkg install SUNWdistro-const
Packages to install:3
Create boot environment: No
Create backup boot environment: No
DOWNLOAD PKGS FILES XFER (MB)
Completed 3/3 65/65 0.2/0.2$<3>
PHASE ACTIONS
Install Phase 127/127
PHASE ITEMS
Package State Update Phase 3/3
Image State Update Phase 2/2
打开web页面查看
root@solaris:~# ifconfignet0
net0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 130.30.3.249 netmask ffffff00 broadcast 130.30.3.255
ether 8:0:27:d9:67:3
附件: 哈哈,新版一出,大家都在尝鲜了,不错。昨天刚看完,今天就有人把实验搭起来了。 :em27: 本帖最后由 非凡公子 于 2011-11-17 15:40 编辑
为神马这么复杂....
只是本地用的话,下边两步就够了.
# mount -F hsfs -o ro `lofiadm -a /export/home/yanzi/sol-11-1111-repo-full.iso` /mnt
# pkg set-publisher -Pe -O file:///mnt/repo/ solaris 我是比较簇拥linux的,但是这个版本的solaris有好些和linux相近的地方,默认的bash,ips和yum很类似,但是yum的本地搭建很方便。没这么烦躁。 我吐,这么麻烦:outu: 我solaris是菜了点,没必要这样吧,这个对菜鸟还是有点帮助的。
既然有好的方法,那就更好,我刚好学习下。 感谢,今天刚装了个X86的试试手,发现果然和10有点不一样,另外两个包及SPARC平台的包还在下载当中,速度不给力呀 # mount -F hsfs -o ro `lofiadm -a /export/home/yanzi/sol-11-1111-repo-full.iso` /mnt
# pkg set-publisher -Pe -O file:///mnt/repo/ solaris
这2句中,我就感觉
# pkg set-publisher -Pe -O file:///mnt/repo/ solaris
有些意义,我来学习下,看是否ok 新东西,学习一下
页:
[1]
2