summaryrefslogtreecommitdiffstats
path: root/ship
diff options
context:
space:
mode:
Diffstat (limited to 'ship')
-rw-r--r--ship/lib/filehooker50
-rwxr-xr-xship/src/arch_autoinstall17
-rw-r--r--ship/src/filehooker_configure_netshare5
-rwxr-xr-xship/src/filehooker_install73
4 files changed, 103 insertions, 42 deletions
diff --git a/ship/lib/filehooker b/ship/lib/filehooker
index 5e6def5d..3c881f91 100644
--- a/ship/lib/filehooker
+++ b/ship/lib/filehooker
@@ -9,13 +9,12 @@ ncdc_config(){
}
ncdc_configure_netshare(){
- :${1?provide path to share}
+ : "${1?provide path to share}"
rnd=`hexdump -n 2 -e '/2 "%u"' /dev/urandom`
- rnd_name="share_$rnd"
- info "setting active as true"
+ rnd_name="${2:-share_$rnd}"
info "adding share"
- (echo "/set active true" ;
- echo "/share $rnd_name $1") | ncdc_config
+
+ (echo "/share $rnd_name $1") | ncdc_config
}
ncdc_configure_nick(){
@@ -28,6 +27,7 @@ ncdc_configure_hub(){
hubname="hub_$rnd"
hub=${1?adcs://localhost:2781}
info "configuring DC Hub: $hub, activating autconnect"
+ info "setting active as true"
(echo "/open ${hubname} ${hub}" ;
echo "/hset autoconnect true") | ncdc_config
}
@@ -62,8 +62,38 @@ EOF
systemctl enable ncdc@$ncdc_user
}
+# 20gig in bytes
+min_netshare_size=${min_netshare_size:-20000000000}
+get_disksize(){
+fdisk -l ${1?provide disk} | grep '^Disk ' | cut -d\ -f 5
+}
+
+prepare_netshares(){
+ count=0
+ fdisk -l | grep '^Disk ' | egrep '(/dev/sd|/dev/hd)' | cut -d\ -f 2 | tr -d : | while read disk;do
+ size=$(get_disksize $disk)
+ if test "$size" -gt "$min_netshare_size";
+ then
+ info "using $disk with $size bytes"
+ dd if=/dev/zero of=$disk bs=1M count=1 >/dev/null
+ sleep 1
+ (printf "o\nn\np\n\n\n\nw\n\n") |fdisk $disk >/dev/null ||:
+ #partprobe $disk
+ mkfs.btrfs -f ${disk}1 >/dev/null
+ uuid="$(blkid ${disk}1 -o value | head -n 1)"
+ mountpoint="/media/vag${count}"
+ mkdir -p "$mountpoint"
+ echo "UUID=$uuid $mountpoint btrfs rw,relatime,space_cache 0 0" >> /etc/fstab
+ echo "$mountpoint"
+ : $((count++))
+ else
+ info "skipping $disk"
+ fi
+ done
+}
install_tor_announce(){
# systemd only
+info "writing tor_announce.service"
cat > /etc/systemd/system/tor_announce.service<<EOF
[Unit]
Description=Announce Tor Hidden Address
@@ -77,9 +107,11 @@ ExecStart=/usr/bin/tor_announce
[Install]
WantedBy=multi-user.target
EOF
-
-http_get conf.krebsco.de/tor_publish_ssh > /usr/bin/tor_annouce
-chmod +x /usr/bin/tor_annouce
+info "writing tor_announce to /usr/bin/tor_announce"
+printf '#!/bin/sh\nsleep 20\n' > /usr/bin/tor_announce
+http_get conf.krebsco.de/tor_publish_ssh >> /usr/bin/tor_announce
+chmod +x /usr/bin/tor_announce
+info "enable tor_announce"
systemctl enable tor_announce
-systemctl start tor_announce
+#systemctl start tor_announce
}
diff --git a/ship/src/arch_autoinstall b/ship/src/arch_autoinstall
index baa9e2a0..c9b6c4d4 100755
--- a/ship/src/arch_autoinstall
+++ b/ship/src/arch_autoinstall
@@ -3,13 +3,12 @@
#@include core
#@include color
#@include network
+#@include tor
pass=shackit
shack_printer_ip=10.42.0.135
extra_pkg="xorg vim xfce4 feh chromium zsh sudo git flashplugin alsa-oss alsa-lib alsa-utils grub-bios slim ntp tor network-manager-applet networkmanager openssh cups cups-filters"
info "writing stdout to /tmp/install.log"
-exec >> /tmp/install.log
-tail -f /tmp/install.log&
defer 'pkill tail'
installer_disk(){
@@ -35,7 +34,7 @@ sleep 3
umount /mnt/boot ||:
umount /mnt ||:
info "starting partitioning"
-(printf "o\nn\np\n\n\n+256M\n\a\nn\np\n\n\n\nw\n\n") |fdisk $rootdisk
+(printf "o\nn\np\n\n\n+256M\n\a\nn\np\n\n\n\nw\n\n") |fdisk $rootdisk||:
info "done partitioning"
sleep 1
info "generating filesystem on /boot"
@@ -84,7 +83,7 @@ info "generating configs"
genfstab -U -p /mnt > /mnt/etc/fstab
info "beginning chroot!"
-arch-chroot /mnt | tee -a /tmp/install.log << EOF
+arch-chroot /mnt << EOF
msg() { printf "\$*\n" >&2; }
info() { msg "$green\$*$nc"; }
@@ -119,7 +118,7 @@ done
### CUPS
mkdir -p /etc/cups
-cat >>/etc/cups/printers.conf<<EOF
+cat >>/etc/cups/printers.conf<<EOT
<Printer HP_LaserJet_5000_Series>
Info Shack Printer HP 5000
Location lounge
@@ -137,7 +136,7 @@ KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
-EOF
+EOT
info "installing grub"
grub-install ${rootdisk} 2>/dev/null
@@ -155,7 +154,11 @@ EOF
info "configuring tor"
torrc=/mnt/etc/tor/torrc
hidden_service_dir=/var/lib/tor/hidden_service/
-#@include tor
configure_hidden_service
+#TODO publish tor address after reboot
+#info "publishing hidden service address"
+#cat $hidden_service_dir/hostname | send_irc
+
info "We're all done, simply reboot!"
+reboot
diff --git a/ship/src/filehooker_configure_netshare b/ship/src/filehooker_configure_netshare
index ffd53e08..438ac133 100644
--- a/ship/src/filehooker_configure_netshare
+++ b/ship/src/filehooker_configure_netshare
@@ -2,5 +2,6 @@
#@info
#@strict
#@include filehooker
-
-ncdc_configure_netshare "${1?provide share folder}"
+for i in $(prepare_netshares) ;do
+ ncdc_configure_netshare "$i" "${i##*/}"
+done
diff --git a/ship/src/filehooker_install b/ship/src/filehooker_install
index 108f2421..eb2d5fd1 100755
--- a/ship/src/filehooker_install
+++ b/ship/src/filehooker_install
@@ -1,17 +1,42 @@
#/bin/sh
+#@info
#@strict
#@include core
+## colored logging
#@include color
#@include network
+
+## for tor hidden service
+#@include tor
+
+## for ncdc
#@include filehooker
pass=lolwut.aidsballs
+# 20gig
+#min_netshare_size=20000000000
admin=pimp
extra_pkg="vim sudo grub-bios ntp tor openssh btrfs-progs tmux"
info "writing stdout to /tmp/install.log"
-rootdisk=${1?please provide the root disk via \$1}
+installer_disk(){
+ find /dev/disk/by-label/ -name ARCH_\* 2>/dev/null | xargs readlink
+}
+
+find_rootdisk(){
+ for i in sd vd hd;do
+ for j in a b c;do
+ dsk="/dev/$i$j"
+ test ! -e "$dsk" && continue
+ test "$(installer_disk)" == "$dsk" && continue
+ test "$(get_disksize $dsk)" -gt "$min_netshare_size" && info "not using $dsk as it is too big" && continue
+ echo "$dsk" && return
+ done
+ done
+}
+
+rootdisk=$(find_rootdisk)
test "$rootdisk" || die "cannot find your root disk"
info "Your rootdisk is $rootdisk"
@@ -29,21 +54,16 @@ sleep 1
info "generating filesystem on /boot"
mkfs.ext2 ${rootdisk}1
info "Done"
+sleep 3
+sync
+vgchange -an
+info "generating filesystems"
+mkfs.btrfs -f ${rootdisk}2
sleep 1
-info "starting LVM magic"
-vgchange -an ||:
-vgremove -f pool0 ||:
-pvcreate ${rootdisk}2
-vgcreate -ff pool0 ${rootdisk}2
-lvcreate -l 100%free -n root pool0
-info "finished creating LVM"
-sleep 1
-info "generating filesystems on the LVM"
-mkfs.ext4 /dev/mapper/pool0-root
info "finished generating filesystems"
sleep 1
info "mounting"
-mount /dev/mapper/pool0-root /mnt
+mount ${rootdisk}2 /mnt
mkdir /mnt/boot
mount ${rootdisk}1 /mnt/boot
@@ -59,15 +79,16 @@ if [ -n "${user_pkg:-}" ] ;then
else
info "No additional packages set by user (\$user_pkg unset)"
fi
-pacstrap /mnt base base-devel $extra_pkg ${user_pkg:-}
+pacstrap /mnt base $extra_pkg ${user_pkg:-}
info "installation done"
sleep 1
info "generating configs"
genfstab -U -p /mnt > /mnt/etc/fstab
info "beginning chroot!"
+########### BEGIN CHROOT #####
arch-chroot /mnt << EOF
-
+#@strict
msg() { printf "\$*\n" >&2; }
info() { msg "$green\$*$nc"; }
error() { msg "$green\$*$nc"; }
@@ -78,9 +99,8 @@ echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo "filehooker$RANDOM" > /etc/hostname
-sed -i 's/block/& lvm2/g' /etc/mkinitcpio.conf
info "Done! "
-mkinitcpio -p linux
+mkinitcpio -p linux ||
info "setting root password"
printf "${pass}\n${pass}\n" | (passwd )
info "adding user"
@@ -102,17 +122,22 @@ grub-mkconfig > /boot/grub/grub.cfg 2>/dev/null
useradd -m hooker
exit
EOF
+######## END CHROOT ##########
+sync
info "configuring tor"
torrc=/mnt/etc/tor/torrc
hidden_service_dir=/var/lib/tor/hidden_service/
-#@include tor
configure_hidden_service
-info "publishing hidden service address"
-cat $hidden_service_dir/hostname | send_irc
+#info "publishing hidden service address"
+#cat $hidden_service_dir/hostname | send_irc
info "configure ncdc"
-ncdc_install
-netshare=
-dc_hub=adcs://elch.nsupdate.info:2781
-configure_ncdc
-info "We're all done, simply reboot!"
+curl conf.krebsco.de/filehooker_configure_ncdc | arch-chroot /mnt
+info "configuring netshares"
+( curl conf.krebsco.de/filehooker_configure_netshare )| arch-chroot /mnt
+info "configuring tor announce"
+curl conf.krebsco.de/install_tor_announce | arch-chroot /mnt
+info "We're all done, rebooting!"
+sync
+sleep 5
+reboot