The mini-design of logging pre-script to make debug easy
Background
Currently, the Pre-Installation script for redhat
sles
and early_command Installation script for ubuntu
can't be logging to xcat.log file. Also as a new script getinstdisk
was added to determine the install disk. It's necessary to logging the detail information to make debug easy.
This mini-design support the redhat6.7 redhat7
sles11 sles12
ubuntu14 ubuntu15
and the etc...
Planning Outputs
For redhat
With xcatdebugmode off, only the running result of script will be logged.
With xcatdebugmode on, the running procedure and running result both will be logged.
For sles
The running procedure and running result both will be logged whether xcatdebugmode on or off.
For ubuntu
With xcatdebugmode off, only the running result of script will be logged.
With xcatdebugmode on, the running procedure and running result both will be logged.
Code Logic and Process
For redhat
When using a %pre script, we can simply log the output to a file.
%pre
{
echo "Running Kickstart Pre-Installation script..."
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/pre.rh#
} >>/tmp/pre-install.log 2>&1
After Anaconda chrooted to the newly-built filesystem, we can use %include to include the pre-install.log
.
%post
mkdir -p /var/log/xcat/
{
cat >> /var/log/xcat/xcat.log << "EOF"
%include /tmp/pre-install.log
EOF
echo "Running Kickstart Post-Installation script..."
#INCLUDE:#ENV:XCATROOT#/share/xcat/install/scripts/post.rh#
} >>/var/log/xcat/xcat.log 2>&1
For sles
When using Pre-Install Script, we can simply log the output to a file.
<pre-scripts config:type="list">
<script>
<filename>foo.sh</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[
{
...
} >>/tmp/pre-install.log 2>&1
]]>
</source>
</script>
</pre-scripts>
When execute chroot scripts before the installation chroots into the installed system, we can append the pre-install.log
to xcat.log
.
<chroot-scripts config:type="list">
<script>
<filename>boot.sh</filename>
<interpreter>shell</interpreter>
<source>
<![CDATA[
mkdir -p /mnt/var/log/xcat/
{
cat /tmp/pre-install.log >> /mnt/var/log/xcat/xcat.log
echo "Running AutoYaST Chroot-Installation script..."
...
} >>/mnt/var/log/xcat/xcat.log 2>&1
]]>
</source>
</script>
</chroot-scripts>
For ubuntu
When using d-i preseed/early_command string ...
command, we can simply log the output to a file.
d-i preseed/early_command string wget http://`cat /tmp/xcatserver`/install/autoinst/#HOSTNAME#.pre; \
chmod u+x #HOSTNAME#.pre; \
{ \
echo "Running preseeding early_command Installation script..."; \
./#HOSTNAME#.pre; \
} >>/tmp/pre-install.log 2>&1; \
And log the getinstdisk script output.
d-i partman/early_command string \
{ \
#INCLUDE_GET_FIRST_DISK_SCRIPT# \
} >>/tmp/pre-install.log 2>&1; \
debconf-set partman-auto/disk "$(cat /tmp/install_disk)"
When execute d-i preseed/late_command string ...
command before the install finishes, there is still a usable /target directory. We can append the pre-install.log
to xcat.log
.
d-i preseed/late_command string wget http://`cat /tmp/xcatserver`/install/autoinst/#HOSTNAME#.post; \
chmod u+x #HOSTNAME#.post; \
cp ./#HOSTNAME#.post /target/root/post.script; \
mount -o bind /proc /target/proc -t proc; \
mount -o bind /dev /target/dev; \
mount -o bind /dev/pts /target/dev/pts -t devpts; \
mount -o bind /sys /target/sys; \
mkdir -p /target/var/log/xcat/; \
{ \
cat /tmp/pre-install.log >> /target/var/log/xcat/xcat.log; \
echo "Running preseeding late_command Installation script..."; \
chroot /target /root/post.script; \
} >>/target/var/log/xcat/xcat.log 2>&1; \
News
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT Release Notes Summary
- xCAT OS And Hw Support Matrix
- xCAT Test Environment Summary
History
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released.
xCAT's 10 year anniversary! - Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2
can now be purchased! - June 9, 2008: xCAT breaths life into
(at the time) the fastest
supercomputer on the planet - May 30, 2008: xCAT 2.0 for Linux
officially released! - Oct 31, 2007: IBM open sources
xCAT 2.0 to allow collaboration
among all of the xCAT users. - Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in
IBM developed by Egan Ford. It
was quickly adopted by customers
and IBM manufacturing sites to
rapidly deploy clusters.