NIM From Linux Machine - Is it real?

Hello!
My name is Daniel, and I have a "hard" question.

I have 8 pSeries old servers, that I need to install from scratch every month - The OS version is AIX 5L 5.2

I have mksysb images of this computers (same image to all - same hardware), and I know that I can use NIM for this kind of task.

I never installed NIM, and it sound really hard, let me now, is there any way to install the NIM server on Linux machine? Google, and link in IBM said yes, but I didn't understand all the "photo"...

The Linux server, must be IBM server?

Any help / manuals / clues will be helpfull!

Thanks,

Daniel.

There is a product named NIMOL (NIM On Linux). I have a copy on a SUSE10 platform and have attempting to get it working for months. There are no manuals as such and very little technical help on the WEB. I have setup NIM installations on RS6000 systems with very little trouble but NIMOL is a different matter. Also the only place I found a copy was on disk 1 of the AIX 5.3 installation set.

You will need a lpp_source and spot resource before you can start to even think of setting it up.

Install AIX from a Linux Server Using NIM on Linux
Network Installation Management (NIM) on Linux (NIMOL) provides basic AIX software administration services from a Linux server. The NIMOL RPM included in the AIX product media provides basic NIM functionality for a Linux server. While using a pSeries NIM Server for AIX client management provides more functionality, NIMOL provides the following functions on Linux servers:

Configuring services required to install AIX with NIM
Performing a network installation of AIX
Installing software updates on an AIX system
Listing software installed on an AIX system
Creating a backup of an AIX system that NIMOL can use to install other systems with NIM
NIMOL is supported on SUSE LINUX 9.0 and Redhat 9.0. Read the NIMOL readme file in the /usr/share/doc/nimol directory for information on updates.

Note:
NIMOL supports AIX 5L Version 5.2 with the 5200-04 Recommended Maintenance package and later.
Commands
The following commands are shipped with the NIMOL RPM:

nimol_config
Configures a Linux server to install AIX with NIM
nimol_install
Sets up a client for AIX installation
nimol_lslpp
Lists software installed on an AIX client
nimol_update
Installs software updates onto an AIX client
nimol_backup
Creates an installable backup of an AIX client
Note:
These commands are available on the Linux server. For additional information on these commands, run the man command on the Linux server with the name of the specific NIMOL command.
Configuring the Linux Server
To configure the Linux server, complete the following:

Insert the AIX product CD that contains the NIMOL RPM into the Linux server.
Install the followingRPMs, which are requisite for SUSE LINUX 9.0 and RedHat 9.0:
dhcp
tftp
nfs-utils
gettext
The following RPMs are additional requisites for Redhat 9.0 only:
dhcp-server
tftp-server
Insert the AIX product CD Volume 1 into the Linux server.
Install the NIMOL RPM by running the following commands:
mount /dev/cdrom
rpm -ivh /mnt/cdrom/RPMS/linux/nimol*
Run the following command to configure the Linux server:
nimol_config -C
The nimol_config command configures the basic services required to install AIX on clients with NIM, such as bootp, tftp, nfs, and syslog. The command uses the dhcp server to respond to client bootp requests.

Note:
You should not manually modify the /etc/dhcpd.conf file because the modifications might interfere with the ability of NIMOL to add and remove subnet and host entries.

Creating AIX Installation Resources
To create AIX installation resources, you need access to an existing AIX client.

Ensure that your NIMOL Linux Server has rhost permissions to the AIX client by editing the /.rhosts file on the AIX client.
Run the nimol_backup command on the Linux Server. For example, if the client is named myaixclient.ibm.com and you want to name the installation resources aix530, then run the following command:
nimol_backup -c myaixclient.ibm.com -L aix530
The nimol_backup command will create a mksysb backup of the client, as well as the other resources required to perform a network boot in the /export/aix/aix530 directory.
Alternately, you can use the nimol_config command to define existing AIX installation resources that reside on your NIMOL Server. For example, if you have existing AIX installation resources located in /export/aix/aix530, run the following command to define the resources for use with NIMOL:

nimol_config -t /export/aix -L aix530
Setting up a NIMOL Client
You can set up a client for the installation of AIX with NIM by running the nimol_install command. Before you run the nimol_install command, you will need the following information for the client:

Hostname
MAC address
Subnet mask
The following examples show how to obtain your MAC address.

To obtain the MAC address for the ent0 network adapter on a running client, run the following command:

lscfg -vl ent0
To obtain the MAC address on an IBM eServer pSeries 690 client that is not running, complete the following:

Power on the system.
Press F1 when the keyboard icon is displayed to access the SMS menus.
Select Boot Options.
Select Install or Boot a Device.
Select Network This menu refers to your network card (for example, ethernet).
Select Information. This screen will contain the MAC address.
When specifying the MAC address to nimol_install, colons are required.

For example, to set up a client with a client1 hostname, 255.255.255.0 subnet mask, 192.168.1.1 gateway, and 00:60:08:3F:E8:DF MAC address with the "aix530" installation resources, run the following command:

nimol_install -c client1 -g 192.168.1.1 -m 00:60:08:3F:E8:DF -s 255.255.255.0 -L aix530
After you run nimol_install, you can specify a network boot using the bootlist command on a running AIX system. For example, if the client installs AIX from the ent0 adapter with a 192.168.1.20 client IP address, and the NIMOL server has a 192.168.1.10 IP address and is on the same subnet as the client, complete the following:

Run the bootlist command as follows:
bootlist -m normal ent0 bserver=192.168.1.10 gateway=0.0.0.0 client=192.168.1.20
Run the following command to begin the installation:
shutdown -Fr
Note:
If the client is not running, power on the system and enter the system management services (SMS) menus by pressing F1 when the keyboard icon is displayed. You can then specify the network boot parameters and select the network device as the boot device.
The syslog daemon is configured to receive remote status by default. This setting allows you to monitor the installation by viewing the /var/log/nimol.log file on the NIMOL server.

After the installation is complete, you can remove the setup for the client named client2 by running the following command:

nimol_install -c client1 -r
Maintaining the NIMOL Client
You can use the following commands to maintain the NIMOL client:

nimol_update
nimol_lslpp
Note:
The default option for the nimol_install command is intended for use on the client machine where you installed AIX. If you specify the -n option with the nimol_install command when you install AIX on the client machine, these commands will not be available.
The following scenarios are tasks involved in maintaining the NIMOL client:

To list the software that is installed on client1, run the following command:
nimol_lslpp -c client1 -f "-L"
To install the perl.rte software package from the aix530 installation resources, run the following command:
nimol_update -c client1 -L aix530 -p "perl.rte"
Notes:
To install additional software, copy the installp images into the lpp_source/installp/ppc sub-directory of the installation resources directory. For example, if your installation resources are located in the /export/aix/aix530 directory, you will need to copy the installp images into the /export/aix/aix530/lpp_source/installp/ppc directory. You also must copy the .toc file because Linux machines cannot create this file.
To use a different remote access other than rhost permissions, you can specify the -m option with the nimol_update command, the nimol_lslpp command, or the nimol_backup command. The alternative remote access must be configured prior to using it with the NIMOL commands, and the remote access method cannot prompt for a password. For example, the following command will use the /usr/bin/ssh directory to remotely access the client1 during a software listing:
nimol_lslpp -c client1 -f "-L" -m /usr/bin/ssh
Unconfiguring the NIMOL Server
To unconfigure the NIMOL server, complete the following:

Determine if clients are set up to install by running the following command:
nimol_install -l
Remove any clients that are listed as set to install by running the following command:
nimol_install -r -c client
Remove the AIX installation resource labels that you created by running the following command:
nimol_config -r -L aix530
Removing these labels removes all resources from the NIMOL server. You can define them again if you decide to configure the NIMOL server in the future.
Unconfigure NIMOL by running the following command:
nimol_config -U
This command restores services to the state they were before you configured NIMOL. For example, if you had the nfs service and the tftp service turned off prior to configuring NIMOL, then they are turned off again.
Remove the NIMOL RPM by running the following command:
rpm -e nimol

I have no idea how to set up a NIM server on a Linux machine, but i can give you some directions about NIM concepts in general. It is not much work, in fact it is really easy.

General information

NIM is a system to systematically install, update and maintain AIX machines (NIM clients) from one specialized system (the NIM server). One can use the system do maintain diskless workstations or dataless workstations too, but (to my knowledge) this is rarely used. The vast majority of NIM servers is used to install machines - "standalone clients" in NIMs wording - and i will concentrate on this aspect.

There are three basic types of resources a NIM server can employ to install clients: mksysbs, SPOTs and LPP-sources. There are some other resources of minor importance which you will probably not have to deal with.

MKSYSB is an installable and bootable image of the rootvg of a machine. since the rootvg contains all the really important filesystems (/, /usr, /etc, and so on) it is easy to use this as a means of installing machines. MKSYSBs are used in two ways usually: you can create and maintain a very simple, very basic MKSYSB and use that as the basis for every installation. You would install this mksysb which woulkd contain only the absolute minimum and then add software until the desired configuration is reached. The second way to use MKSYSBs is to create one from a running machine as a means to take a "configuration snapshot", complete with all the configured users, filesystems, printqueues, etc.. If the hardware breaks you could use this image to restore the machine quickly.

The next resource is a LPPSOURCE. This is just a bunch of installable packages in a directory with a name to go by. NIM will provide ways to find out which packages are in it, replace selected packages, etc. But in fact this is just a collection of installp-packages and a name to handle the collection as a whole.

The third resource is the SPOT (Shared Product Object Tree). You can create a SPOT from an lpp_source by "installing" into it. Think of it as a shareable /usr-filesystem. During a nim-installation the system would (nfs-)mount such a SPOT and use it and its executables to install to its local disk - say, by restoring a mksysb image, installing some packages from a lpp_source, etc. It is the NIM-equivalent of the initial RAMdisk-system a linux system comes up with after booting from a CD.

How to set up a basic nim-server

First install the nim.server-package onto the machine and configure it. This can be done using some SMITTY panels and the panels are pretty self-explanatory. This part is really easy. You have to provide a "root" directory where the nim-resources will reside later. For this you will need lots - really lots - of space. Start with a minimum of 50-100G for testing purposes but be prepared to increase this as soon as you start using the system regularly. Note too, that a nim server always has to be at least at the same OS level (including maintenance levels, technical levels, etc.) as the clients it is serving. If you want to server 5.2 clients have the nim server at least at the same level, better at 5.3, latest ML.

The next part is to create a lpp-source. Again use the SMIT panels, use "smitty nim" to get into smittys main nim menu, "perform NIM Administration Tasks"/"Manage Resources"/"Define a Resource" - select "lpp_source" from the menu and follow the directions. Do yourself a favor and copy the installation media somewhere prior to this and tell the machine where to find it - otherwise you will now have to feed it the disks for a few hours.

It is a good idea to not delete the copies of the installation media, but save them in case you need to update the lpp_source later. Since you may have to maintain several revision levels in parallel do NOT just update what you have, instead create a new copy and update *this*. (By now you will probably understand why you need so much space. ;-)) )

After creating the lpp_source (it takes some time) you are ready to create a SPOT from it. This means basically to do an installation on a pseudo-machine which consists only of a /usr-filesystem. Again go to the SMIT menu "define a resource" and select "spot", then follow the directions using the newly created lpp_source as "source of install images". This will take a few hours. It is a good idea to update the created spot several times using this lpp_source, as some dependencies are (rarely, but why take the risk) solved only after several tries. after every run look if there has something been changed in the spot, if nothing changes any more you are finished.

It is also a good idea to create some strict naming convention for the resources. I usually inlude the type of resource and the exact software level, like:

lpp_source: lpp_AIX53_ML03
spot: spot_AIX53_ML03
mksysb: mks_AIX53_ML03

There no better or worse solution to that, just be consistent with yourself.

After having a lpp_source and a spot (there are some other resources like boot code for IPL ROMs, etc. which are created automatically in this process) you are ready to start a test installation. You will need a scratch machine for that.

Start by writing down the MAC adress of the interface you will use to install over later. This information is needed on the nim server. Now define a new client ("Manage machines"/"Define a machine" and follow the directions) and fill out the form coming up. "Network Adapter Hardware Adress" is where you put in the MAC adress.

After having defined the client use lsnim to see an overview of your defined resources so far, lsnim -l to get detail information about each resource. You are now ready to do your first installation.

Use the SMIT menu "Perform NIM Administration Tasks"/"Manage Machines"/Managae Network Install Resource Allocation" to allocate the SPOT and the lpp_source to your machine. Note that this is only valid for ONE TRY. You will have to allocate these resources again for the next installation. This way you have complete control over what happens with the resources you provide with your NIM master.

Note: If resource confilicts happen (yes, this is a somewhat unreliable part of NIM, the deallocation of resources is not always handled properly) use "Deallocate Network Install Resources with the "Force" option, this usually cleans things up. For the deallocation ALWAYS use the "force" option.

Upon the allocation nim will itself make all the necessary entries in /etc/exports to nfs-export the allocated resources to the machine. Strange effects happen if you export these directories (or super-directories of it) yourself. If you experience problems there check /etc/exports, correct it if necessary (remove your entries) and run "exportfs -va" to use the new configuration.

Boot your client now to the POST-menu, enter the ip-adress of the nim-server as a server holding the boot image and the machine should start to install. First the initial kernel is loaded via tftp (you will have to provide some filespace for /tftpboot on the NIM master), then the SPOT and lpp_source are used to install the machine.

After this and WITHOUT doing any configuration work on the machine use "Define a Resource" on the master to create a new resource of type mksysb and use the newly installed machine to create it. This way you will have to missing mksysb as a starting image (therefore: no configuration, unless you want it to be on every machine you will install in the future). You can use that to install other machines from this mksysb.

You can of course create other mksysbs (SPOTs, lpp_sources, ...) to fine-tune your installation process, but with the thing described here you will be initially up and running.

bakunin

2 Likes

Man, I Thank you very much! What an answer! The best ever!

I'm a RHCE (Red Hat Certified Engineer), and still, it's sounds a little bit "Hard-task-to-do".

Thank you for you really really great answer! You are a great man!
I will try it soon!

Thanks again my friend,

Daniel.

I have been trying for a couple of months to get NIMOL working, no luck. Saw your post and was wondering if you did?

Thanks

I have a thread open at

Nope, haven't gotten it working...I actually have been trying to get it working on a very customer version of linux, but after no luck, went to Suse 9 and RH 9, and it still doesn't work.

I think it has something to do with the AIX boot process looking for a file that is typically found on a NIM server called /etc/bootptab that is not present on Linux or in the NIMOL files. Reading through AIX boot documentation, this is the first file requested by an AIX client upon doing a network boot.

My theory is that IBM took NIMOL documentation off of their site because it never worked...

I will be speaking with IBM this week (have a case opened), so will let you know if I hear anything

At last I have found someone with the same problem!!!!! On switch on my 43p 120 constantly communicates with the NIM Server (SUSE10). The DHCP log shows constant address requests with the correct replies to this request being sent! This leads me to believe that the answer is not what the RS/6000 is looking for! I am glad to have found you are having the same problem and that you have a call open with IBM please oh please keep this thread updated and help me keep the hair I have left!

Well, IBM was no help. All they know is what the crappy doc tells them. Plus since I am based in US, and the server I am working on this for is in Spain, they made me call a toll number to spain to get connected to support, which barely speaks english. Fortunately I speak a little spanish, but we got no where. I spoke to 3 people, all of them just kept telling me look at the install guide, etc. I will keep hacking away and let you know

Well no surprise there then in IBM speak an unsupported product! Looks like we will both be just hacking away! Good luck!

You might want to give up the NIM idea and look at Storix.

Storix SBAdmin - Linux and AIX Backup / Disaster Recovery Software - Home

As I understand it the guy who wrote sysback broke off from IBM and started storix. this will do your re-build for you and it will run from Linux. The one advantage this has over NIM is storix will backup all your volume groups. NIM only does rootvg. I could be wrong on that. It wouldn't surprise me if NIM could do volume groups but I've never used it like that.

Good Luck

I will give a try but I believe from reading the user guide that it will only restore backup data whereas NIM will install from an LPP_SOURCE. I do not have a MKSYSB but the source for AIX 5.1. This is why I need NIM or something similar!

I guess my main question now is whether you did find the documentations on nimol.

I am looking for the nimol equivalence for nim "lsnim"....

Other than that, i cannot help much...my nimol_backup worked ok (after 2 days of strugeling) but i was not able to boot the client and "load" the mksysb.

Also, i you have any usefull info about bootp and lpar_netboot and their possible error that will b great..

Have fun and take care,
Efrat

I have the NIMOL environment setup on my SUSE10 enterprise server. I can fire off a TFTP boot which is running all the time. However when I turn on the 43p it sends a BOOTP request which I believe is answered with a DHCP address allocation. This is the problem I believe, the 43p does not understand the reply and is expecting a tftp reply instead as the normal NIM operation. Also forget lsnim as there is no such command I believe the alternative is nimol-config -l but I might be wrong.

Why don't you want just buy a second hand p5 machine, B80.

Used IBM pSeries 640 Model B80, Used IBM pSeries Server, Refurbished IBM pSeries Server and IBM pSeries Server Parts.

I bought it last year, only $400 with 2 cpu, 4g, 2 36Ghd, etc.

I tested it with aix 5.3/6, works fine.

As far as i remember my networking bouts DHCP is a superset of bootp (see RFC 1534 here and perhaps RFC 1533 here).

It should be possible to tweak the DHCP daemon to answer bootp requests correctly (by bootp means only).

bakunin