Membuat Repositori Lokal Solaris 11

Posted on


Seperti diketahui bahwa Oracle 11 rilis dengan salah satu fitur baru yaitu “IPS repository” dimana IPS ini  memungkinkan kita dengan mudah memasang paket, memperbarui paket, serta melakukan patching terhadap aplikasi serta paket yang ada. IPS ini sangat fleksibel karena dapat disiapkan dalam bentuk antarmuka file (NFS) atau antarmuka HTTP.

Repositori ini tersedia online di Oracle buat Anda yang punya koneksi tingkat dewa, jika tidak; berarti kita butuh repositori lokal.

IPS mendukung dua jenis repositori: repositori “origin” dan repositori “mirror”. Untuk alasan performance dan tujuan keamanan, repository “origin” adalah pilihan yang harus dipilih.

Repositori origin berisi semua metadata (seperti katalog, manifes, dan indeks pencarian) dan isi (file) untuk satu atau lebih paket. Sebuah repositori cermin hanya berisi paket konten (file). Klien yang menginstal dan memperbarui paket dari repositori cermin masih harus men-download metadata dari repositori “origin”.

Cukuplah sudah basa-basinya, langsung saja kita lakukan proses pembuatan repositori lokal nya.

Disini saya menggunakan disk tersendiri (c8t1d0) yang saya dedikasikan hanya untuk menampung paket-paket  repositori.

# echo | format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c8t0d0 <VMware,-VMware Virtual S-1.0-20.00GB>
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c8t1d0 <VMware,-VMware Virtual S-1.0 cyl 2608 alt 2 hd 255 sec 63>
          /pci@0,0/pci15ad,1976@10/sd@1,0
Specify disk (enter its number): Specify disk (enter its number):

Buat zfs pool tersendiri (ipsrepo) menggunakan disk yang tadi sudah ditentukan.

# zpool create ipspool c8t1d0
# zpool status ipspool
  pool: ipspool
 state: ONLINE
  scan: none requested
config:

        NAME      STATE     READ WRITE CKSUM
        ipspool   ONLINE       0     0     0
          c8t1d0  ONLINE       0     0     0

errors: No known data errors

Buat mountpoint repo pada pool ipsrepo, kemudian periksa menggunakan “df -h”.

# zfs create -o mountpoint=/repo ipspool/repo
# df -h
Filesystem             Size   Used  Available Capacity  Mounted on
...
ipspool                 20G    31K        20G     1%    /ipspool
ipspool/repo            20G    31K        20G     1%    /repo

Untuk bisa membuat repositori lokal ada dua cara, melakukannya online ke oracle atau menggunakan iso, dalam tulisan ini kita akan melakukannya menggunakan iso.

Unduh terlebih dahulu Oracle Solaris 11.1 Repository Image di website Oracle, dibutuhkan akun login untuk mengunduhnya, atau Anda bisa dateng ke rumah/kantor saya jika mau menyalin🙂.

Dikarenakan iso nya terdiri dari dua file, maka tahapan setelah mendownload adalah menggabungkannya, mount iso hasil penggabungan ke “/mnt”, kemudian lakukan rsync untuk menyalin isi repo di iso ke mountpoint “/repo” yang tadi sudah kita siapkan.

# cat sol-11_1-repo-full.iso-a sol-11_1-repo-full.iso-b > sol-11_1-repo-full.iso
# mount -F hsfs /repo/sol-11_1-repo-full.iso /mnt
# rsync -aP /mnt/repo/ /repo

 

Membuat repositori dengan menggunakan antarmuka file [ Repository via NFS ]

# zfs set share=name=ipsrepo,path=/repo,prot=nfs ipspool/repo
name=ipsrepo,path=/repo,prot=nfs
# zfs set sharenfs=on ipspool/repo
# grep repo /etc/dfs/sharetab
/repo   ipsrepo nfs     sec=sys,rw

Dari sisi client tinggal jalankan :

# pkg set-publisher -g /net/10.87.17.250/repo solaris

Opsi yang biasa digunakan : -g, –add-origin, -G, –remove-origin, -m, –add-mirror, -M, –remove-mirror.

# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F file:///net/10.87.17.250/repo/

 

Membuat repositori dengan menggunakan antarmuka Web [ Repository via HTTP ]

# svccfg -s application/pkg/server setprop pkg/inst_root=/repo
# svccfg -s application/pkg/server setprop pkg/readonly=true
# svcadm refresh application/pkg/server
# svcadm enable application/pkg/server
# svcprop -p pkg/inst_root application/pkg/server
/repo

Dari sisi client tinggal jalankan :

# pkg set-publisher -g http://10.87.17.250 solaris
# pkg publisher
PUBLISHER                   TYPE     STATUS P LOCATION
solaris                     origin   online F http://10.87.17.250

Port yang digunakan defaultnya adalah 80, jika hendak menggunakan custom port (misal : 8080), jalankan perintah berikut :

# svccfg –s application/pkg/server setprop pkg/port=8080

Agar proses pencarian lebih cepat, maka lakukan rebuild index pencarian

# pkgrepo -s /repo refresh
Initiating repository refresh.

 

Update Repository

Seiring waktu tentulah paket-paket yang ada di repo harus di-update, cara meng-updatenya juga bisa dilakukan dengan SRU iso, download dan lakukan update repo menggunakan SRU iso image.

# mount -F hsfs /repo/sol-11_1_6_4_0-incr-repo.iso /mnt
# pkgrecv -s /mnt/repo -d file:///net/10.87.17.250/repo '*'
Processing packages for publisher solaris ...
Retrieving and evaluating 197 package(s)...
PROCESS                                         ITEMS    GET (MB)   SEND (MB)
Completed                                     197/197   2133/2133   4601/4601

# pkgrepo rebuild -s /repo
Initiating repository rebuild.

Jika hendak memperbarui paket-paket yang ada di repo, dan Anda punya koneksi yang lumayan, silakan lakukan update repo secara online, caranya :

# pkgrecv -s http://pkg.oracle.com/solaris/release/ -d /repo/ solaris

Lakukan test dengan meng-install salah satu paket menggunakan perintah “pkg install” atau dengan cara membuat zone.

One thought on “Membuat Repositori Lokal Solaris 11

    Membuat zone di Solaris 11 | Just Nobody said:
    July 19, 2013 at 11:24 am

    […] Ini adalah contoh cara membuat zone di Solaris 11 dimana pada proses pembuatannya dibutuhkan adalah repositori yang sudah dibahas di tulisan sebelumnya. […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s