Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37739852
en ru br
Репозитории ALT

Группа :: Система/Настройка/Сеть
Пакет: netinst-overlays

 Главная   Изменения   Спек   Патчи   Исходники   Загрузить   Gear   Bugs and FR  Repocop 

pax_global_header00006660000000000000000000000064123125551160014513gustar00rootroot0000000000000052 comment=cf070785f66b52735b61de231136124aa95e33b0
netinst-overlays-0.01/000075500000000000000000000000001231255511600147575ustar00rootroot00000000000000netinst-overlays-0.01/.gear/000075500000000000000000000000001231255511600157535ustar00rootroot00000000000000netinst-overlays-0.01/.gear/rules000064400000000000000000000000071231255511600170250ustar00rootroot00000000000000tar: .
netinst-overlays-0.01/Makefile000064400000000000000000000003701231255511600164170ustar00rootroot00000000000000help: # Display this help
@grep "^[a-z]*:" Makefile

suck: # Copy scripts from HOME/bin
cp -u $$HOME/bin/overlays-*[^~]* .

install: # Install scripts from HOME/bin
cp -u overlays-*[^~]* $$HOME/bin/

sync: suck install # Synchronize files
netinst-overlays-0.01/netinst-overlays.spec000064400000000000000000000010011231255511600211510ustar00rootroot00000000000000Name: netinst-overlays
Version: 0.01
Release: alt1
License: BSD
Summary: Managing ALT Linux netinst-style ISO patches
Group: System/Configuration/Networking
BuildArch: noarch
Source: %name-%version.tar

%description
Set of server and client scripts for managing
ALT Linux netinst-style ISO patches.

%prep
%setup

%install
install -d %buildroot%_bindir
install overlays-* %buildroot%_bindir/

%files
%_bindir/*

%changelog
* Thu Mar 20 2014 Fr. Br. George <george@altlinux.ru> 0.01-alt1
- Initial build as RPM
netinst-overlays-0.01/overlays-create000075500000000000000000000046171231255511600200220ustar00rootroot00000000000000#!/bin/sh

Die() { # message [errorcode]
echo "$1" >&2
exit "${2:-1}"
}

RW="/.rw"
STATIC="/opt /root /usr/local"
PRIVATE="/home"
ISOPARAMS="-input-charset UTF-8 -R -o-"
DST="user@ns"
VARSKIP="/var/log /var/cache/apt /tmp /var/lib/apt"
MANAGEFLAGS=""
SKIP=""
HOMESKIP=".cache Cache .apt"
PKGSTORE="/var/db/livecd-packages"
PROFILE="`sed -n 's/.* profile=\([^ ]*\).*/\1/p' < /proc/cmdline`"

test -r "$HOME/.overlays-create" && . "$HOME/.overlays-create" || :

STACK=""
CLASS="$1"
CMD="${2:-create}"

case "$CLASS" in
diskcache) # temporary loopmount varskip on hdd
HDD="`(fdisk -l || sfdisk -l) 2>/dev/null | sed -n '/Linux$/s/[ ].*//p' | tail -1`"
MNT="${MNT:-/mnt}"
MNTDIR="${MNTDIR:-overlays}"
test -n "$HDD" || Die "No Linux partition found"
umount "$MNT" 2>/dev/null || :
mount "$HDD" "$MNT" || Die "Mount $HDD to $MNT failed"
MTARGET="$MNT/$MNTDIR"
rm -rf "$MTARGET"
mkdir -p "$MTARGET" || Die "Cannot make $MTARGET directory"
find $VARSKIP | cpio -pdm "$MTARGET" || Die "Copying of $VARSKIP failed"
for D in $VARSKIP; do
mount -o bind "$MTARGET$D" "$D" || Die "Bind mount of $D failed"
done
exit
;;
initial) # create initial full overlay (without $HOME)
ROOT="$RW/"
SKIP="$HOMESKIP $VARSKIP"
CMD="start"
rpm -qa > "$PKGSTORE.initial"
;;
packages) # ask server for packages that was installed and deleted
ssh -qt "$DST" "PROFILE='$PROFILE' $FROMBIN/overlays-manage $MANAGEFLAGS diff" | sed '
/^1 /s/^1/remove -y/
/^2 /s/^2/install -y/
$a\
commit -y
'
exit 0
;;
static) # create static system paths overlay
ROOT="$STATIC";;
home) # create $HOME overlay
ROOT="$PRIVATE"
SKIP="$HOMESKIP"
;;
etc) # create cumulative /etc overlay
ROOT="$RW/etc"
STACK=1
;;
system) # create cumulative system-only overlay (includes /etc)
ROOT="$RW/"
STACK=1
SKIP="$PRIVATE $STATIC $VARSKIP"
rpm -qa > "$PKGSTORE"
;;
*) echo "Usage: $0 <command> [start]" >&2
grep "^[^(]*).*#" "$0" >&2
exit 1
;;
esac

GRAFT="-graft-points"
for D in $ROOT; do GRAFT="$GRAFT ${D#$RW}=$D"; done
SKIPLIST=""
for F in $SKIP; do
case "$F" in
/*) for D in $ROOT; do SKIPLIST="$SKIPLIST -m ${D%/}$F"; done;;
*) SKIPLIST="$SKIPLIST -m $F";;
esac
done

echo " Creating '$CLASS': $ROOOT" >&2

genisoimage -q $SKIPLIST $ISOPARAMS $GRAFT | ssh "$DST" "PROFILE='$PROFILE' $FROMBIN/overlays-manage $MANAGEFLAGS $CMD $CLASS $STACK"
netinst-overlays-0.01/overlays-initial000064400000000000000000000027771231255511600202120ustar00rootroot00000000000000#!/bin/sh
# Run this script on diskless client to initialize overlays scheme
DST="${1:-${DST:-user@ns}}" # Where to get binaries
ADDHOSTS=""
FROMBIN="bin"
DEFUSER="altlinux"
CFG="$HOME/.overlays-create"

mkdir -p bin
echo "Getting setup from $DST"
ssh $DST $FROMBIN/overlays-manage setup > "$CFG" || exit 1
echo "DST='$DST'" >> "$CFG"
. "$CFG"
echo "Getting overlays-create from $DST"
scp $DST:$FROMBIN/overlays-create bin/ || exit 2
test -z "$ADDHOSTS" || echo "Adding hostkeys"
for N in $ADDHOSTS; do ssh -n $N; done

# THE PASSWORD
passwd root || {
echo "Use default root password"
sed -i 's/:[^:]*/:$2a$08$XzZsVoWF3x9BZ0Es6Q3J7ucVNA59dlwcCj.Ki6ArpOyxyI88HMgUG/' /etc/tcb/root/shadow
}

# No free root for default user
sed -i "/$DEFUSER/d" /etc/sudoers

# Enable repo
sed -i '/#rpm.*http:/s/^#//' /etc/apt/sources.list.d/alt.list

# Enable localtime
sed -i 's/^#ZONE/ZONE/' /etc/sysconfig/clock
rm -f /etc/localtime

# Stop some services
chkconfig alteratord off

# Disable HDD mount
PK_UDISKS="/usr/share/polkit-1/actions/org.freedesktop.udisks2.policy"
test -r "$PK_UDISKS" &&
ed "$PK_UDISKS" <<@@@
/<description>Mount a filesystem on a system device
/<defaults/+1,/<.defaults/-1d
w
q
@@@

# remove some packages and files
rpm -e livecd-install || :
find /home/$DEFUSER -name livecd-install.desktop -exec rm {} \;

# Record destination hostname
#HST="${DST##*@}"
#{ host "$HST" || host "${HST%%.*}"; } |
# awk '/has address/{print $4,$1,gensub(/[.].*/,"",$1)}' >> /etc/hosts

echo "You can do 'overlays-create initial' now"
netinst-overlays-0.01/overlays-manage000075500000000000000000000052001231255511600177740ustar00rootroot00000000000000#!/bin/sh

ENABLED=/srv/public/netinst/overlays-live${PROFILE:+/$PROFILE}
PKGSTORE="${PKGSTORE:-/var/db/livecd-packages}"
STACK=cumulative
DATE="`date +%Y%m%d%H%M%S`"
ZDATE="`echo "$DATE" | tr '[0-9]' '0'`"
PDATE="`echo "$DATE" | sed 's/[0-9]/[0-9]/g'`"
SUFFIX=".iso"
EXCMD="7z e -so"
ADDHOSTS="" # what hosts want their hostkey on diskless
DST="`logname`@`hostname`" # where to copy overlays

Die() { # message [errorcode]
echo -e "\n$1" >&2
exit "${2:-1}"
}

CONFIG=$HOME/.overlays-manage
test "$1" = "-c" && { CONFIG="$2"; shift; shift; }
test -r $CONFIG && . $CONFIG || :

POOL="${POOL:-$ENABLED.pool}"

test -d "$ENABLED" || mkdir -p "$ENABLED" || Die "$ENABLED must be writeable for `logname`" 1
test -d "$POOL" || { mkdir -p "$POOL" && chmod 1777 "$POOL"; } || Die "$POOL must be writeable for `logname`" 1

case "$1" in
setup) # display some setup variables for overlays-create
echo "PKGSTORE=$PKGSTORE"
echo "FROMBIN=`dirname $0`"
;;
info) # list all overlays and show additional info
echo " Overlays spooled at $POOL:"
ls -s "$POOL"
echo " Overlays in use at $ENABLED:"
ls -s "$ENABLED"
;;
list) # list actual overlays
(
cd "$POOL"
ls *$SUFFIX | fgrep -v $STACK$SUFFIX | sort -r | sort -sut- -k2
ls *$STACK$SUFFIX
) ;;
diff) # show packages intalled since initial image
{
$EXCMD "$POOL"/$ZDATE-initial$SUFFIX ${PKGSTORE#/}.initial 2> /dev/null | sed 's/-[0-9].*//;s/^/1 /'
DIFFDATE=${2:-$(basename "$(ls "$POOL"/*-system-$STACK$SUFFIX | sort | tail -1)")}
$EXCMD "$POOL"/"${DIFFDATE%%-*}-system-$STACK$SUFFIX" ${PKGSTORE#/} 2> /dev/null | sed 's/-[0-9].*//;s/^/2 /'
} | sort -k2 | uniq -uf1
;;
nosys) # unlink all cumulative system overlays (for packages reinstall)
rm -f "$ENABLED"/[1-9]*$STACK$SUFFIX
;;
clean) # clean all overlays except initial and manual ones
rm -f "$ENABLED"/[1-9]*$SUFFIX
;;
link) # link actual overlays
(
cd "$POOL"
for F in $("$0" list); do ln -f "$F" "$ENABLED"/; done
) ;;
relink) # clean and then link
"$0" clean
"$0" link
;;
start) # create an initial persistent overlay
cat > "$POOL"/"$ZDATE-$2${3:+-$STACK}"$SUFFIX
;;
create) # create an overlay $2=name $3=cumulative?
cat > "$POOL"/"$DATE-$2${3:+-$STACK}"$SUFFIX
;;
erase) # remove all managed overlays
echo -n " Do you want to remove all overlays (yes/no)? "
read A
case "$A" in
yes)
eval rm "$POOL/$PDATE-*$SUFFIX"
eval rm "$ENABLED/$PDATE-*$SUFFIX"
;;
no) exit 0;;
*)
echo "Please answer 'yes' or 'no'."
exit 1
;;
esac
;;
*) # print help
echo "Usage: $0 <command>" >&2
grep "^[^(]*)[ ]*#" "$0" >&2
exit 1
;;
esac
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin