You are here

Part5. Ignite Series:Bare Metal Server Automated install With Dhcp and Different OS Golden images(11.23/11.31)

In this post we are going to enhance the previous unattended configuration, in a way that we don't have to modify the general configuration of ignite to get the unattended installation of golden images working on bare metal servers.

We start from the config show in previous posts:
http://www.hpuxtips.es/?q=content/part2-ignite-series-creating-golden-im...
http://www.hpuxtips.es/?q=content/part3-ignite-series-automated-system-i...
http://www.hpuxtips.es/?q=content/part4-ignite-seriesautomated-system-in...

So in first place we are going to configure a pseudo dhcp server in the ignite server, so we are able to install several automated installations at the same time.bootpd reads 2 configuration files, one for anonymous clients(/etc/dhcptab), and for configured clients (/etc/bootptab), in our case we wan't anonymous boot so we have to modify The /etc/dhcptab, so bootpd can work as a pseudo dhcp server for HP-Ux ignite clients.

If you are in a Itanium only enviromente you are better of using hp-ux bootpd, not ignites instl_bootd, as you can see, we have commented out ignites bootps:

root@LaRagE:/> cat /etc/inetd.conf | grep bootp
bootps dgram udp wait root /usr/lbin/bootpd bootpd
#bootps dgram udp wait root /opt/ignite/lbin/instl_bootd instl_bootd
root@LaRagE:/>

If you have a mixed enviroment cooment the /usr/lbin/bootpd line and uses ignites bootps.

Refresh inetds config:

root@LaRagE:/> inetd -c
root@LaRagE:/>

No we have to configure our /etc/dhcptab, this is a simple working config example,that we will explain a bit:

root@LaRagE:/> cat /etc/dhcptab
dhcp_device_group:\
re:\
ncid:\
class-name=HP_IGNITE_UX_0:\
class-id="PXEClient:Arch:00002|Ignite-UX_LaRagE":\
lease-time=600:\
lease-policy=accept-new-clients:\
subnet-mask=255.255.255.0:\
addr-pool-start-address=19.132.168.25:\
addr-pool-last-address=19.132.168.56:\
bf=/opt/ignite/boot/nbp.efi:\
hn:\
gw=19.132.168.1

The options in the dhcp_device_group clause are:

dhcp_device_group:
Starts a DHCP device pool group for allocating a range of IP addresses to assign to clients with a matching class-id in their boot requests. re A binary option that sets regular expression matching on the class-id rather than a default literal match. This is a new option for HP-UX 1 v2.

ncid:
A binary option that sets removal of the class-id from message responses. Since bootpd does not support the full Intel Preboot Execution Environment (PXE) protocol, it must
not send back a class-id in the response. This is a new option for HP-UX 1 v2.

class-id:
Different kinds of systems may make PXE boot requests. For example, Itanium-based systems and industry standard servers such as HP ProLiant servers may each make a PXE boot request. It is unlikely the same configuration could be used for these different requests. The class-id may be used to respond to PXE requests from the correct clients, while ignoring the wrong ones.

All Itanium-based servers send a 32 character PXE boot request in the following format: PXEClient:Arch:00002:UNDI:xxxyyy where xxxyyy are major and minor numbers for the Universal Network Device Interface revision. An industry standard server, such as an HP ProLiant server, sends a PXE boot request in this format: PXEClient:Arch:00000:UNDI:xxxyyy where xxxyyy are the same as described above. The class-id in the dhcp_device_group example above tells the bootpd daemon to respond only to clients with a boot request containing PXEClient:Arch:00002. Requests from industry standard servers are ignored. A DHCP server or boot helper system configured to respond to any DHCP boot request containing PXEClient will respond to both Itanium-based servers and industry standard servers. A PXE response suitable for an industry standard server is unlikely to allow an Itanium-based system to boot.

lease-time:
How long in seconds the IP address may be used to boot a system. The example value is 300 seconds (5 minutes) but you may need more time if your network is a busy one.

subnet-mask:
The subnet mask used by clients.

addr-pool-start-address:
The first IP address for this address pool.

addr-pool-last-address:
The last IP address for this address pool.

gw:
The subnet default gateway

Ok, so we have used as our clas-id: Ignite-UX_LaRagE, no now we have to add it to our instl_adm so our server booting from the network is detected as part of this group:

root@LaRagE:/var/adm/syslog> instl_adm -d > /tmp/lol.txt
root@LaRagE:/var/adm/syslog>vi /tmp/lol.txt
.......
dhcp_class_id[]="Ignite-UX_LaRagE"
is_net_info_temporary=true
..............
root@LaRagE:/var/adm/syslog> instl_adm -f /tmp/lol.txt

the full instl_adm:
# instl_adm defaults:
# NOTE: Manual additions between the lines containing "instl_adm defaults"
# and "end instl_adm defaults" will not be preserved.
server="19.132.168.63"
netmask[]="255.255.255.0"
dhcp_class_id[]="Ignite-UX_LaRagE"
is_net_info_temporary=true
route_gateway[0]="19.132.168.1"
route_destination[0]="default"
# end instl_adm defaults.

We have our dhcp server for anonymous itanium(PXE) netboots configured, to configure anonymous boot for pa-risc servers, you need to add ip entries to the file /etc/opt/ignite/instl_boottab:

root@LaRagE:/etc/opt/ignite> cat instl_boottab
# NOTE: This table is only for booting PA-RISC clients. For booting IPF clients
# you have to edit /etc/bootptab. Please see the example in
# /etc/bootptab for instruction how to add entries.
#
# /etc/opt/ignite/instl_boottab: Used by /opt/ignite/lbin/instl_bootd(1M)
#
# This file contains a list of IP addresses to be reserved for booting
19.132.168.66
19.132.168.67
19.132.168.68

So now we have also booting in pa-risc fixed.

We don't want to modify the general configuration of the server, beacause for example we have to install some servers with 11.23 golden images, others with 11.31 golden images, others we wan't to clone serveral servers,etc. So we are going to need diferent boot files(XINSTALL,XINSTALLFS) for each different GOLDEN IMAGE configuration.

we copy the 11.31 directory, and then modify it as we need:

root@LaRagE:/opt/ignite/boot> ls
AUTO AUTO_ok Rel_B.11.11 Rel_B.11.23 Rel_B.11.31 auto_globals boot_lif boot_lif_ok fpswa.efi fs_cfg.def hpux.efi nbp.efi
root@LaRagE:/opt/ignite/boot> cd
root@LaRagE:/opt/ignite/boot> cp -pR Rel_B.11.31 GOLDEN_11.31-DCOE

We check what the IINSTALLFS file Has:
root@LaRagE:/opt/ignite/boot/GOLDEN_11.31-DCOE> instl_adm -d -F IINSTALLFS --notice the -F to reference only the local file
is_net_info_temporary=true
# instl_adm defaults:
# NOTE: Manual additions between the lines containing "instl_adm defaults"
# and "end instl_adm defaults" will not be preserved.
server="19.132.168.63"
netmask[]="255.255.255.0"
#dhcp_class_id[]="Ignite-UX_LaRagE -G"
dhcp_class_id[]="Ignite-UX_LaRagE"
route_gateway[0]="19.132.168.1"
route_destination[0]="default"
# end instl_adm defaults.

We are going to add these 2 lines so we make the configuration automated:

run_ui="false"
control_from_server="false"

Our file ready to be loaded:

# instl_adm defaults:
# NOTE: Manual additions between the lines containing "instl_adm defaults"
# and "end instl_adm defaults" will not be preserved.
server="19.132.168.63"
netmask[]="255.255.255.0"
dhcp_class_id[]="Ignite-UX_LaRagE"
route_gateway[0]="19.132.168.1"
route_destination[0]="default"
# end instl_adm defaults.
run_ui="false"
control_from_server="false"
is_net_info_temporary=true

We configure it on the local itanium IINSTALFS and pa-risc files WINSTALLFS files:

root@LaRagE:/opt/ignite/boot/GOLDEN_11.31-DCOE> instl_adm -F IINSTALLFS -f /tmp/other.txt
root@LaRagE:/opt/ignite/boot/GOLDEN_11.31-DCOE> instl_adm -F WINSTALLFS -f /tmp/other.txt

Now that we have our golden image GOLDEN_11.31-DCOE XINTALLFS file configured for automated installation, we have to modify the AUTO and boot_lif, to add our new boot option.

We add this line: "GOLDEN IMAGE 11.31 DCOE IA" boot GOLDEN_11.31-DCOE/IINSTALL:

root@LaRagE:/> cat /opt/ignite/boot/AUTO
KernelPrompt "Choose an operating system to install that your hardware supports:" 30 3
reset
"target OS is B.11.23 IA" boot Rel_B.11.23/IINSTALL
"target OS is B.11.31 IA" boot Rel_B.11.31/IINSTALL
"GOLDEN IMAGE 11.31 DCOE IA" boot GOLDEN_11.31-DCOE/IINSTALL
"Exit Boot Loader" exit
root@LaRagE:/>

for pa-risc, we have to use auto_adm:

root@LaRagE:/opt/ignite/boot> auto_adm -a -l "GOLDEN IMAGE 11.31 DCOE PA" -b '(;0)' -c boot -i GOLDEN_11.31-DCOE/WINSTALL -f boot_lif -o boot_lif
root@LaRagE:/opt/ignite/boot> auto_adm -f boot_lif -O conf
timeout = 30
default = 3
message = Choose an operating system to install that your hardware supports:

label = target OS is B.11.11
bootcmd = boot
boot = (;0)
image = /boot/Rel_B.11.11/INSTALL

label = target OS is B.11.23 PA
bootcmd = boot
boot = (;0)
image = /boot/Rel_B.11.23/WINSTALL

label = target OS is B.11.31 PA
bootcmd = boot
boot = (;0)
image = /boot/Rel_B.11.31/WINSTALL

label = GOLDEN IMAGE 11.31 DCOE PA
bootcmd = boot
boot = (;0)
image = GOLDEN_11.31-DCOE/WINSTALL

And thats all, now we can boot our bare metal server, choose our Golden Image, and let it do all the install automaticliy

Starting: Core LAN Port 1

@(#) HP-UX IA64 Network Bootstrap Program Revision 1.0
Downloading HPUX bootloader
Starting HPUX bootloader
Obtaining size of fpswa.efi (328192 bytes)
Downloading file fpswa.efi (328192 bytes)

(C) Copyright 1999-2008 Hewlett-Packard Development Company, L.P.
All rights reserved

HP-UX Boot Loader for IPF -- Revision 2.036

Booting from Lan
Obtaining size of AUTO (288 bytes)
Downloading file AUTO (288 bytes)
Obtaining size of AUTO (288 bytes)
Downloading file AUTO (288 bytes)

Obtaining size of AUTO (288 bytes)
Downloading file AUTO (288 bytes)
1. target OS is B.11.23 IA
2. target OS is B.11.31 IA
3. GOLDEN IMAGE 11.31 DCOE IA
4. Exit Boot Loader

Choose an operating system to install that your hardware supports:3

Obtaining size of AUTO (288 bytes)
Downloading file AUTO (288 bytes)
Obtaining size of GOLDEN_11.31-DCOE/IINSTALL (51055320 bytes)
Downloading file GOLDEN_11.31-DCOE/IINSTALL (51055320 bytes)
> System Memory = 4064 MB
loading section 0
.................................................................................................... (complete)
loading section 1
................. (complete)

After loading our IINSTALL, and IINSTALLFS files, we can se how our pseudo dhcp server kicks in:

Booting over the network
Loading.: Core LAN Port 1

Client MAC Address: 00 17 A4 77 00 00 ...
Client IP Address: 19.132.168.25
Subnet Mask: 255.255.255.0
BOOTP Server IP Address: 19.132.168.63
DHCP Server IP Address: 19.132.168.63
Boot file name: /opt/ignite/boot/nbp.efi

Retrieving File Size.

And if you choose option 2. target OS is B.11.31 IA, you get your normall GUI to choose your install options...

Unix Systems: 

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.

Fatal error: Class CToolsCssCache contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (DrupalCacheInterface::__construct) in /homepages/37/d228974590/htdocs/sites/all/modules/ctools/includes/css-cache.inc on line 52