mknfsroot-0.4/000075500000000000000000000000001110305462700133745ustar00rootroot00000000000000mknfsroot-0.4/etc/000075500000000000000000000000001110305462700141475ustar00rootroot00000000000000mknfsroot-0.4/etc/profiles/000075500000000000000000000000001110305462700157725ustar00rootroot00000000000000mknfsroot-0.4/etc/profiles/sample/000075500000000000000000000000001110305462700172535ustar00rootroot00000000000000mknfsroot-0.4/etc/profiles/sample/autoinstall.scm000064400000000000000000000006331110305462700223200ustar00rootroot00000000000000;; general setup (("syslang") action "write" lang "ru_RU") (("sysfont") language ("ru_RU") action "write") (( "syskbd") layout "ctrl_shift_toggle" language ("ru_RU") action "write") (("timezone") action "write" zone "Europe/Moscow" utc #f installer #t) ;; users (("root") action "write" passwd_1 "123" passwd_2 "123" commit #t) ;; hpc specific (("hpc-syslog") action "write" mode "scatter" server "@HOSTNAME@") mknfsroot-0.4/etc/profiles/sample/modules000064400000000000000000000000361110305462700206450ustar00rootroot00000000000000e1000 forcedeth nfs af_packet mknfsroot-0.4/etc/profiles/sample/packages000064400000000000000000000014261110305462700207570ustar00rootroot00000000000000# interactivesystem ###altlinux-release-hpc apt glibc-gconv-modules glibc-locales glibc-nss glibc-utils interactivesystem kbd anacron lilo setarch shadow-suite udev slocate lm_sensors etcnet vim-console #syslog-common-hpc syslog-ng #kernel modules kernel-image-hpc ib-scripts hpc-settings # network tools hostinfo iptables iputils lftp mailx netcat netlist openssh-clients rsync traceroute vlan-utils # servers openssh-server postfix bind-utils # security openssl # debug strace #cluster tools:client cleo-agent openmpi mvapich mvapich2 libibverbs libibverbs-utils libmthca libmlx4 opensm openib-diags ibutils #other acpid mc #pxe syslinux # installer alterator-autoinstall alterator-sysconfig alterator-tzone alterator-root alterator-hpc openntpd dhcpcd #nfs portmap nfs-clients mknfsroot-0.4/etc/profiles/sample/pxelinux.cfg000064400000000000000000000002741110305462700216130ustar00rootroot00000000000000default dl prompt 1 timeout 5 label dl kernel alt0/vmlinuz append initrd=alt0/initrd.img ip=dhcp root=/dev/nfs nfsroot=/var/lib/tftpboot/nfsroot noapic label harddisk LOCALBOOT -1 mknfsroot-0.4/etc/template/000075500000000000000000000000001110305462700157625ustar00rootroot00000000000000mknfsroot-0.4/etc/template/Makefile000064400000000000000000000004231110305462700174210ustar00rootroot00000000000000CONFIGDIR=/usr/share/mkimage/ include $(CONFIGDIR)/config.mk IMAGE_PACKAGES = Metadata/Metadata/packages COPY_TREE = Metadata/ MKI_PACK_RESULTS = tar:/var/lib/mknfsroot/nfsroot.tar include $(CONFIGDIR)/targets.mk all: build-image copy-tree run-image-scripts pack-image mknfsroot-0.4/etc/template/Metadata/000075500000000000000000000000001110305462700175025ustar00rootroot00000000000000mknfsroot-0.4/etc/template/Metadata/etc/000075500000000000000000000000001110305462700202555ustar00rootroot00000000000000mknfsroot-0.4/etc/template/Metadata/etc/rc.d/000075500000000000000000000000001110305462700211035ustar00rootroot00000000000000mknfsroot-0.4/etc/template/Metadata/etc/rc.d/init.d/000075500000000000000000000000001110305462700222705ustar00rootroot00000000000000mknfsroot-0.4/etc/template/Metadata/etc/rc.d/init.d/nfsroot_hostname000075500000000000000000000003321110305462700256040ustar00rootroot00000000000000#!/bin/sh . /etc/init.d/functions ip_list() { /sbin/ip addr list scope global | sed -n 's|^[[:space:]]*inet[[:space:]]\+\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)/.*|\1|p' } resolve -s $(ip_list|head -n1)|head -n1 mknfsroot-0.4/etc/template/Metadata/etc/rc.d/init.d/nfsroot_remount_rw000075500000000000000000000004261110305462700261730ustar00rootroot00000000000000#!/bin/sh . /etc/init.d/functions split_dir() { local host="$(/etc/init.d/nfsroot_hostname)" [ -n "$host" ] || return 0 [ -d "$1-$host" ] || cp -a "$1-template" "$1-$host" ln -snf "$1-$host" "/redir/$1" } mount -n -o remount,rw / mount "/redir" split_dir /var mknfsroot-0.4/etc/template/image-scripts.d/000075500000000000000000000000001110305462700207535ustar00rootroot00000000000000mknfsroot-0.4/etc/template/image-scripts.d/01-nfsroot000075500000000000000000000027301110305462700226130ustar00rootroot00000000000000#!/bin/sh -e initconffile=/etc/sysconfig/init dir_list=/var remount_script=/etc/init.d/nfsroot_remount_rw resolver_script=/etc/init.d/nfsroot_hostname redirect_dir=/redir isolinux_dir=/isolinux #fill and create pxe data if [ -f /usr/lib/syslinux/pxelinux.0 ];then kver="$(readlink -ev /boot/vmlinuz)" kver="${kver#/boot/vmlinuz-}" mkdir -p "$isolinux_dir/alt0" cp /boot/vmlinuz "$isolinux_dir/alt0/" /sbin/mkinitrd -vf "$isolinux_dir/alt0/initrd.img" "$kver" --with="$(grep '^[^#]' /Metadata/modules)" chmod 644 "$isolinux_dir/alt0/initrd.img" mkdir -p "$isolinux_dir/pxelinux.cfg" cp /usr/lib/syslinux/pxelinux.0 "$isolinux_dir" [ -f /Metadata/pxelinux.cfg ] && mv -f /Metadata/pxelinux.cfg "$isolinux_dir/pxelinux.cfg/default" fi #replace mtab with /proc/mounts ln -sf /proc/mounts /etc/mtab ln -sf /proc/sys/kernel/hostname /etc/HOSTNAME #turn on nfs services chkconfig portmap on ||: chkconfig nfslock on ||: #turn off network stop printf 'rm -f /var/lock/subsys/%s\n' "network" >>/etc/rc.d/rc #register redirection helper directory mkdir -p "$redirect_dir" printf 'tmpfs\t%s\ttmpfs\tnosuid,noexec,nodev,size=1m,mode=755\t0\t0\n' "$redirect_dir" >>/etc/fstab mv /var /var-template ln -sf "$redirect_dir/var" /var ln -sf /var-template $redirect_dir/var #setup directory splitting between nodes printf 'REMOUNT_ROOTFS_RW_COMMAND=%s\n' "$remount_script" >> "$initconffile" printf 'RESOLVE_HOSTNAME_COMMAND=%s\n' "$resolver_script" >> "$initconffile" mknfsroot-0.4/etc/template/image-scripts.d/02-installer000075500000000000000000000000761110305462700231200ustar00rootroot00000000000000#!/bin/sh -e alterator-autoinstall /Metadata/autoinstall.scm mknfsroot-0.4/etc/template/image-scripts.d/04-tunings000075500000000000000000000004341110305462700226120ustar00rootroot00000000000000#!/bin/sh -e #hpc specific initconffile=/etc/sysconfig/hpc redirectdir=/redir limitsname="90-hpc.conf" limitsfile="$redirectdir/$limitsname" mkdir -p "$redirectdir" ln -sf "$limitsfile" "/etc/security/limits.d/$limitsname" printf 'LIMITSFILE=%s\n' "$limitsfile" > "$initconffile" mknfsroot-0.4/etc/template/image-scripts.d/99-cleanup000075500000000000000000000000371110305462700225670ustar00rootroot00000000000000#!/bin/sh -e rm -rf /Metadata mknfsroot-0.4/scripts/000075500000000000000000000000001110305462700150635ustar00rootroot00000000000000mknfsroot-0.4/scripts/mknfsroot000075500000000000000000000014471110305462700170410ustar00rootroot00000000000000#!/bin/sh PROG="${0##*/}" . shell-error exit_handler() { local rc=$? trap - EXIT if [ -d "$TEMPDIR" ];then make -C "$TEMPDIR" distclean rm -rf "$TEMPDIR" fi rm -rf "$LOCKDIR" exit $rc } usage() { printf 'Usage: %s \n' "$PROG" exit 0 } [ "$#" -eq 1 ] || usage [ -d "$1" ] || usage [ "$UID" -ne 0 ] || exec su -s /bin/sh -l _mknfsroot -c "/usr/sbin/mknfsroot $1" TMPDIR="/var/lib/mknfsroot" export TMPDIR LOCKDIR="$HOME/mknfsroot.lock" mkdir "$LOCKDIR" || fatal "already run" trap exit_handler HUP INT QUIT TERM EXIT TEMPDIR="$(mktemp -d -t mknfsroot.XXXXXX)" mkdir -p -- "$TEMPDIR/Metadata/Metadata" #join profile with metadata cp -a /etc/mknfsroot/template/* $TEMPDIR cp -a $1/* "$TEMPDIR/Metadata/Metadata" #run profile make -C "$TEMPDIR" all mknfsroot-0.4/scripts/removenfsroot000075500000000000000000000004511110305462700177210ustar00rootroot00000000000000#!/bin/sh PROG="${0##*/}" . shell-error usage() { printf 'Usage: %s \n' "$PROG" exit 0 } [ "$#" -eq 1 ] || usage tftpdir="${1%/}";shift destdir="$tftpdir/nfsroot/" sed -r "\,^$destdir[[:space:]], d" -i /etc/exports service nfs restart rm -rf "$tftpdir"/* killall in.tftpd mknfsroot-0.4/scripts/setupnfsroot000075500000000000000000000015361110305462700175710ustar00rootroot00000000000000#!/bin/sh PROG="${0##*/}" . shell-error usage() { printf 'Usage: %s \n' "$PROG" exit 0 } [ "$#" -eq 2 ] || usage tarball="$1";shift tftpdir="${1%/}";shift destdir="$tftpdir/nfsroot/" [ -f "$tarball" ] || fatal "tarball is not a file" grep -qs "^$destdir[[:space:]]" /etc/exports && fatal "destination directory already exported" [ "${tftpdir#/var/lib/tftpboot}" != "$tftpdir" ] || fatal "tftp directory not under /var/lib/tftpboot" #prepare data directory mkdir -p "$destdir" cd "$destdir" tar -xpf "$tarball" cd - >/dev/null 2>/dev/null printf "%s *(rw,async,no_root_squash,no_subtree_check)" "$destdir" >>/etc/exports service nfs restart #prepare tftp directory mkdir -p "$tftpdir" cp -a $destdir/isolinux/* "$tftpdir" sed -r "s,nfsroot=([^[:space:]]+),nfsroot=$destdir," -i "$tftpdir/pxelinux.cfg/default" killall in.tftpd