Tuesday, November 6, 2012

IPS repository access

The procedure is well and fairly documented but I'll attempt an additional summary.
Once the IPS repository creation is done, an access method must be chosen.
Please, assume the creation settings according to the above link.
 
If the repository is to be used:
  
  • Just within a single physical system, global zone and/or non-global zones:
    It may be more efficient to use a file based origin (URI).
    Non-global zones may inherit settings which is nice.
      
  • By multiple physical systems or virtual machines, such as in remote building:
    A network transport, such as HTTP or HTTPS is the best.
    Note that you may also refer to http://localhost, of course.
  
For the file based origin it's as simple as:

# pkg set-publisher -p /export/depot/studio

For the networked version, things are slightly more complicated.
If simply setting up HTTP(S) access to a Solaris repository just do:

# FMRI=pkg/server
# URI=http://depot-1/solaris

# svccfg -s $FMRI setprop pkg/inst_root = /export/depot/solaris
# svccfg -s $FMRI setprop pkg/readonly = true
# svccfg -s $FMRI setprop pkg/proxy_base = astring: $URI
# svccfg -s $FMRI setprop pkg/port = 80
# svccfg -s $FMRI setprop pkg/threads = 10

# svcadm refresh $FMRI
# svcadm enable $FMRI
   
# DEFAULT=http://pkg.oracle.com/solaris/release
# pkg set-publisher -G "$DEFAULT" -g "$URI" solaris

But if, in addition, for instance, also setting up HTTP(S) access to Solaris Studio repository, it will be necessary to set up an additional instance of the svc:/application/pkg/server SMF service. Note how the new instance, studio, just contains a few overrides.

# FMRI=pkg/server:studio
# URI=http://depot-1/studio

# svccfg -s pkg/server add studio

# svccfg -s $FMRI addpg pkg application
 

# svccfg -s $FMRI setprop pkg/inst_root = /export/depot/studio
# svccfg -s $FMRI setprop pkg/readonly = true
# svccfg -s $FMRI setprop pkg/proxy_base = astring: $URI
 
# svccfg -s $FMRI setprop pkg/port = 81 
# svccfg -s $FMRI setprop pkg/threads = 10
  
# svccfg -s $FMRI addpg general framework
# svccfg -s $FMRI addpropvalue general/complete astring: studio
# svccfg -s $FMRI addpropvalue general/enabled boolean: true

 
# svcadm refresh $FMRI
# svcadm enable $FMRI
   
# pkg set-publisher -g "$URI" solarisstudio