jerryjzm 发表于 2011-11-17 15:02

[原创]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


附件:

duoraymi 发表于 2011-11-17 15:34

哈哈,新版一出,大家都在尝鲜了,不错。昨天刚看完,今天就有人把实验搭起来了。 :em27:

非凡公子 发表于 2011-11-17 15:37

本帖最后由 非凡公子 于 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

jerryjzm 发表于 2011-11-17 15:40

我是比较簇拥linux的,但是这个版本的solaris有好些和linux相近的地方,默认的bash,ips和yum很类似,但是yum的本地搭建很方便。没这么烦躁。

gachoyi 发表于 2011-11-17 15:41

财版 发表于 2011-11-17 15:45

我吐,这么麻烦:outu:

jerryjzm 发表于 2011-11-17 16:15

我solaris是菜了点,没必要这样吧,这个对菜鸟还是有点帮助的。
既然有好的方法,那就更好,我刚好学习下。

yoyosys 发表于 2011-11-17 16:20

感谢,今天刚装了个X86的试试手,发现果然和10有点不一样,另外两个包及SPARC平台的包还在下载当中,速度不给力呀

jerryjzm 发表于 2011-11-17 16:26

# 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

brucewoo 发表于 2011-11-24 22:36

新东西,学习一下
页: [1] 2
查看完整版本: [原创]Oracle Solaris 11 使用iso镜像配置本地IPS