Upgrading Solaris 11 11/11 to 11.3 - best practice

Got a mix of servers. Some 11 11/11, some 11.1, and some 11.2

None of these servers have direct access to the internet. However, we do have one server that has and, for which, work started to create a local respository. Unfortunately, that person left and theres no documentation. I can see the 11.2 and 11.3 zip files there - but how do I find out if repository is set up?

I understand procedure (for 11 11/11 servers at least) is:-

  1. Upgrade tp 11.0 SRU 10.5
  2. Upgrade to 11.3

Both steps possible using local repository?

Also, does server I plan to use as local repository have to be at 11.3 itself (this one is 11.2)?

Check out the services involved :

svcs -a | grep pkg

Notice in the output looking for application/pkg/server
When smf service (or services, same name with suffix ../server:custom_name) is located use the following command to identify the location on the filesystem.

svccfg -s application/pkg/server listprop pkg/inst_root

This will show the location of the repository for that instance.

As for repositories, you shall need IPS for 11.0,11.1,11.2 and 11.3 (full IPS iso + SRU from oracle support site) in one big repository.
Follow the instructions to upgrade the repositories, you will require disk space and location you got from above.

You can have multiple repositories as well, but read about how to update (as you noticed for some older releases).
Updating a System to Oracle Solaris 11.3 -
Updating to Oracle(R) Solaris 11.3

Other the mentioned in the docs good practice is to :

Seperate the repo filesystem, this will give you zfs snapshot / clone abilities to revert to old version of repo in case of mistake or bug.

Before the patching, create a boot environment by hand best (beadm create <meaningfull name with release number best>.
That is your point to rollback in case of failure.
In most cases the pkg will do it for your, but it doesn't hurt.
Do not issue zpool upgrade after patching, since if you upgrade your zfs/zpools you will not be able to revert to former version. Do this after some time.

Be sure you meet the disk requirements before issuing update.
dry run is your friend pkg update -nv
If you have solaris clusters, there is more work.

Hope that helps a bit
Regards
Peasant

Thanks Peasant,

To clarify, would I need separate repositories for each version (11.0, 11.1 etc) or add them all into one big one?

Also, if I've got an existing 11.2 server, can I use this to host an 11.3 repository or not?

I would go two repositories.

One default (port 80 pkg/server) with 11.0 (full) + SRU 10.5
You will use this repository to upgrade your 11.0 release to 11.0.10.5

Second on port 81 (pkg/server:sol_11_3 for instance)
Here you will have 11.3 (full) + SRU
You will switch to this repository / publisher on clients after you used above to get to 11.0.10.5

After you have completed the update, you can remove 11.0 + SRU 10.5 repository since you will not need it anymore.

You can use 11.2 to host the repositories.

I would recommend going latest 11.3 (11.3.21.5) there are some nasty bugs introduced with KOM (kernel object manager) in solaris 11.3, involving kernel memory allocation / returning to free pool involving kom_reap().

Of course, test your applications, don't go big bang.