Mario Gzuk wrote:
> Hi,
>
>
>> Btw, i have come to solution to provide on-demand remote
>> re-installations, using a conjunction of samba and PXE booting. I don't
>> remember seing anything like that in any docs, or even on
>> unattended-gui. Would it be benificial to post such solution here?
>>
>>
>
> can you explain this some more in detail? unattended and unattended-gui
> supports both PXE booting and samba. With unattended-gui you can make a
> "one-click"- reinstall with the old configuration (partitioning,os,
> software).
> But I dont know exactly what you want to do....
>
>
> greetings mario
>
>
Hi Mario,
I might have overlooked unattended-gui, so it might do just that. I'll
elaborate a bit now.
All workstations are prepared to always boot from PXE, having as second
boot device the local hard disk.
The default PXE boot presents a small menu with two choices, normal boot
(local hard disk) and maintenance boot (network boot).
# cat /tftpboot/pxelinux.cfg/default
DEFAULT menu.c32
PROMPT 0
NOESCAPE 1
ALLOWOPTIONS 0
MENU TITLE Boot Options
TIMEOUT 40
ONTIMEOUT chain.c32 hd0 1
LABEL local
MENU LABEL ^Proceed normal boot
LOCALBOOT 0
LABEL install
MENU LABEL ^Maintenance
MENU PASSWD $4$o29hIUr3S$zajgflJvXUL2o94IQeJblILmCMUA$
KERNEL bzImage
APPEND initrd=initrd z_user=Administrator z_pass=secretpass
z_path=//myserver.mydomain.com/install
Ok, now besides that file, i also have another boot file
# cat /tftpboot/pxelinux.cfg/force-reinstall
default unattended
label unattended
KERNEL bzImage
# Add options (z_user=..., z_path=..., etc.) to this line.
APPEND initrd=initrd z_user=Administrator z_pass=secretpass
z_path=//myserver.mydomain.com/install
I have also made two small scripts that will basically create/remove a
symblink to each of these pxe configuration files.
# cat /usr/local/bin/reinstall.sh
#!/bin/bash
# In case the share/boot server is in the same network as the
workstations, you can grab the MAC_ADDR directly
#ARP_ADDR=`arp -n | grep "$IP_ADDR " | awk '{print tolower($3)}' | sed
's/:/-/g'`
# In the case the share/boot server is also your dhcp server (ISC DHCP),
and have fixed ips, you can grab the MAC_ADDR from there
#MAC_ADDR=`grep -i $1 /etc/dhcp3/dhcpd.conf | grep "#" | awk '{print
tolower($3)}' | sed 's/:/-/g'`
# In the case this machine is just a file/boot server, in a different
network. We can try grabbing from unattended MAC declarations
MAC_ADDR=`grep -i $1
/home/samba/unattended-4.6/install/site/unattend.csv | head -n 1 | awk
-F '"' '{print $2}' | sed -r
's...@^(.{2})(.{2})(.{2})(.{2})(.{2})@\1-\2-\3-\4-...@g' | awk '{print
tolower($_)}'`
if [ -n "$MAC_ADDR" ]; then
ln -s /tftpboot/pxelinux.cfg/force-reinstall
/tftpboot/pxelinux.cfg/01-"$MAC_ADDR"
fi
# If you have winexe, you can reboot this same second
#winexe -U MYDOMAIN/Administrator%secretpass //$1 'cmd shutdown -r -t 01'
Then, to be able to remove the symblink
cat /usr/local/bin/remove-tftp-file.sh
#!/bin/bash
# If the share/boot server is in the same network as the workstations,
you can grab the MAC_ADDR directly
#ARP_ADDR=`arp -n | grep "$1 " | awk '{print tolower($3)}' | sed 's/:/-/g'`
IP_ADDR=`echo $1 | sed 's...@.*_@@'`
MACHINE_NAME=`host $IP_ADDR|sed -r 's@(.* )(\w*)(.*)@\2@'`
ARP_ADDR=`grep -i $MACHINE_NAME
/home/samba/unattended-4.6/install/site/unattend.csv | head -n 1 | awk
-F '"' '{print $2}' | sed -r
's...@^(.{2})(.{2})(.{2})(.{2})(.{2})@\1-\2-\3-\4-...@g' | awk '{print
tolower($_)}'`
if [ -n "$ARP_ADDR" ]; then
BOOT_FILE=/tftpboot/pxelinux.cfg/01-"$ARP_ADDR"
rm -f $BOOT_FILE
fi
Ok .. so now i just plugged this into samba.
[Install]
comment = Unattended Install
path = /home/samba/unattended-4.6/install
browseable = no
writeable = no
public = no
root preexec = /usr/local/bin/remove-tftp-file.sh %m
Now, to reinstall a machine, remotelly i just need to run reinstall.sh
and that workstation will be marked for reinstall. The next boot the
machine does (which can be forced using winexe for instance -
http://eol.ovh.org/winexe/), it will enter the second pxe configuration
and start the install process. When the machine starts installing, by
accessing the "install" share, the symblink is removed from the pxelinux
directory, avoiding the endless boot/install process.
Although this is working jusr fine, feel free to guide to a simpler way
of doing this.
Regards,
Hugo Monteiro.
--
ci.fct.unl.pt:~# cat .signature
Hugo Monteiro
Email : [email protected]
Telefone : +351 212948300 Ext.15307
Web : http://hmonteiro.net
Centro de Informática
Faculdade de Ciências e Tecnologia da
Universidade Nova de Lisboa
Quinta da Torre 2829-516 Caparica Portugal
Telefone: +351 212948596 Fax: +351 212948548
www.ci.fct.unl.pt [email protected]
ci.fct.unl.pt:~# _
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
unattended-info mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/unattended-info