2012/11/05

Solaris 11 REPO - Configuration of Multiple Repositories Using Multiple Depot Server Instances


As part of the exercise to install some virtualized highly available infrastructures using Oracle Solaris Technologies (Solaris Cluster, Solaris Zones, Solaris LDOMs…), I started by configuring and installing a Solaris 11  local IPS repository server. In this post, we’ll address the topic of installing an http shared repository for Solaris 11.1, Solaris Cluster 4.1 and EMC PowerPath.

As prerequisite for this configuration we need a working Solaris 11 System (can be either an x86-based or a SPARC-based system) with enough space available to copy the repositories (15Gb for Oracle Solaris 11.1 release repository and about 500 Mb for Oracle Solaris Cluster 4.0 and EMC PowerPath)

1.        Oracle Solaris 11.1 IPS Repository

There’s 02 ways to obtain a copy of the Oracle Solaris 11.1 IPS package repository: the first is to download the repository images files from the Oracle Solaris 11 download site and the second is to retrieve the repository directly from the Internet (using pkgrecv). We’ll go for the first method.
We’ll first create a zfs dataset for the package repository and disable the atime of this dataset (to improve performance during the update of this repo).

Then, concatenate the iso files downloaded , validate the download using digest and mount it

Synchronize the content of the repo directory by using rsync (pay attention to the / at the end of repo) and unmount the lofi device (optionally delete the iso files)


To enable clients to search for packages in the local repository, we’ll use the following command ( catalogs packages in the repository and updates search indexes).


At this stage, the repository is in place and can be used locally. But, in order to enable clients to retrieve packages in this local repository, we’ll configure an HTTP interface (also possible by using NFS Share). We’re using pkg.depotd to serve the repository to clients. Pkg.depotd (svc:/application/pkg/server) is the depot server for the image packaging system. It provides network access to the data contained within a package repository. By default, pkg.depotd listens for connections on port 80. For this Solaris Repository, we’ll use port 8080.


First of all, let’s make sure the publisher prefix is set on the ha-cluster repository:


If not, then let’s do it


To enable clients to access the local repository via HTTP, let’s configure and enable the svc:/application/pkg/server Service Management Facility (SMF) service.


Check and Browse the repository at http://<reposerver_ip_address>:8080/.



Now we can configure our repository on client system by resetting the origin for the Solaris publisher.
We first check the actual solaris publisher which is configured for the client node (by default it’s the oracle public repository).


We can reset the origin of this Solaris Publisher by running



2.       Oracle Solaris Cluster 4.1

Let’s now configure a second instance for the pkg.depotd (svc:/application/pkg/server)which will serve Oracle Solaris Cluster 4.1 Packages. The iso is downloaded from  OTN.



Again, the repository creation commands do not build a search index by default. To enable clients to search for packages in the local repository, we’ll use the following command  (catalogs packages in the repository and updates search indexes).



As described above, the repository for Solaris 11.1 is already configured using an http interface (pkg.depotd daemon handling the web service) So we’re going to serve multiple repositories using multiple pkg.depotd daemons running on different ports on the same repository server.  As we used port 8080 for Solaris 11.1 Repository, we’ll use 8081 for Solaris Cluster 4.1 Repository
Let’s make sure that the publisher prefix is set on the ha-cluster repository:



Add a new instance of the pkg/server service:


Complete configuration of the new pkg/server instance:


Start the new service:


Check and Browse the repository at http://<reposerver_ip_address>:8081/.


Configure the Solaris Cluster Repository on The client


3.       EMC PowerPath

For EMC PowerPath, the Archive was downloaded from EMC PowerLink and uncompressed.
Below are the steps to configure its repository.


To enable clients to search for packages in the local repository



As described above, the repositories for Solaris 11.1 and Solaris Cluster 4.1 are already configured using an http interface (pkg.depotd daemon handling the web service) So we’re going to add a third instance of pkg.depotd.  As we’ used port 8080 for Solaris 11.1 Repository and 8081 for Solaris Cluster 4.1, we’ll use 8082 for EMC PowerPath. Let’s check the publisher prefix of this new repository.


Add a new instance of the pkg/server service:


Complete configuration of the new pkg/server instance:


Start the new service:


Check and Browse the repository at http://<reposerver_ip_address>:8082/.


Configure the EMC PowerPath Repository on The client


Install EMC PowerPath Package