summaryrefslogtreecommitdiff
path: root/dieter/procedures/automatic
diff options
context:
space:
mode:
Diffstat (limited to 'dieter/procedures/automatic')
-rw-r--r--dieter/procedures/automatic101
1 files changed, 101 insertions, 0 deletions
diff --git a/dieter/procedures/automatic b/dieter/procedures/automatic
new file mode 100644
index 0000000..397231d
--- /dev/null
+++ b/dieter/procedures/automatic
@@ -0,0 +1,101 @@
+#!/bin/bash
+var_RUNTIME_PACKAGES="svn"
+
+phase_preparation ()
+{
+ # All things that need to be done manually first
+ notify "A few manual things need to happen first..."
+ if ask_yesno "Do you want to (re)-configure your networking?"
+ then
+ #TODO: which function do i need here?
+ donetwork #configure network by using library
+ else
+ notify "Ok. skipping network config"
+ fi
+ SVN_USERNAME=dieter
+ ask_password svn
+ SVN="svn --username $SVN_USERNAME --password $SVN_PASSWORD"
+ SVN_BASE=https://192.168.1.2/svn/repos
+ TARGET_HOST=mbp-santa-rosa #TODO: prompt user for this, or let him pass it as cmdline argument
+
+ #TODO: find something against svn's interactive ssl cert checking. http://www.7php.net/svn-client-certificate-authentication-cache/ might help. also the timeout on the 'accept cert' is frustrating
+ _accept_ssl_cert
+ notify "**** From now on. everything will be automatic. Enjoy the show!" # not true: svn will complain about ssl cert + you need pass for dm_crypt
+
+ execute worker runtime_packages
+ #TODO: i should have extra,community,.. (actually even yaourt/aur) available
+}
+
+phase_finish ()
+{
+ execute worker configure_home
+}
+
+
+worker_prepare_disks ()
+{
+ #TODO: integrate this stuff into the functions in the libs + do error checking and handling
+ sfdisk /dev/sda 2>&1 | grep -v 'not have an msdos signature' << EOF
+,10,L,*
+,,L
+EOF
+ modprobe dm-crypt || die_error "Cannot modprobe dm-crypt"
+ modprobe -q aes-x86-64 || modprobe aes-i586 || die_error "Cannot modprobe aes-x86-64 or aes-i586"
+ cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
+ cryptsetup luksOpen /dev/sda2 sda2_crypt
+ pvcreate /dev/mapper/sda2_crypt
+ vgcreate cryptpool /dev/mapper/sda2_crypt
+ lvcreate -L 2G -n swap cryptpool
+ lvcreate -L 500M -n tmp cryptpool
+ lvcreate -L 10G -n home cryptpool
+ lvcreate -L 10G -n root cryptpool
+ lvcreate -L 3G -n var cryptpool
+ for i in home root tmp var
+ do
+ mkdir -p $var_TARGET_DIR/$i
+ mke2fs -j /dev/cryptpool/$i && mount /dev/cryptpool/$i $var_TARGET_DIR/$i
+ done
+
+ #TODO fstab? auto-add to fstab with libs? auto mkdir's on target_dir?
+ true
+}
+
+worker_package_list ()
+{
+ $SVN export $SVN_BASE/ddm-configs/$TARGET_HOST/trunk/package-list /home/arch/fifa/package-list || die_error "Could not export package list!"
+}
+
+
+worker_configure_home ()
+{
+ #checkout from svn
+ true
+}
+
+
+worker_install_bootloader ()
+{
+ install-grub /dev/sda
+}
+
+
+_accept_ssl_cert ()
+{
+ mkdir -p /root/.subversion/auth/svn.ssl.server
+ cat > /root/.subversion/auth/svn.ssl.server/1123d3c8b27895efee3848cc779e526a << EOF
+K 10
+ascii_cert
+V 716
+MIICFTCCAX6gAwIBAgIBAjANBgkqhkiG9w0BAQQFADBVMRswGQYDVQQKExJBcGFjaGUgSFRUUCBTZXJ2ZXIxIjAgBgNVBAsTGUZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHkxEjAQBgNVBAMTCWxvY2FsaG9zdDAeFw0wNjA3MjQxMjUwMzdaFw0wNzA3MjQxMjUwMzdaMEwxGzAZBgNVBAoTEkFwYWNoZSBIVFRQIFNlcnZlcjEZMBcGA1UECxMQVGVzdCBDZXJ0aWZpY2F0ZTESMBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDF5PB1NnUve2jkisDTGsxKC9qzpnl+eX8UIR/1s+yX2ZIPNnIryeqTc6sS3cBHz2/AufIr0xbpXkTa4V5Es5bXA7W1D7+ZzuFHjjyi4E2eqYVkhkv1sRL5TpAovfjAA+96iaFHp3yKYiuw/nWwQTSW9M1VrDEym4ODxyJOtNdgQQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABY0bnBf9tL1WMC1sLxB1eDXvs5qNY96mny+EKGAbyQROPaXwsRQB0HrAkuWfHzQlgIdD6AfGsd+YMcEuqSPzIz6t6mA45jl++WvI6we9t3eYChtdPD2xjgHti0aSiDyVLTJbXPnkdgzKvIjYZcXBwbmbQSrg0STO5m+cSYt3chx
+K 8
+failures
+V 2
+14
+K 15
+svn:realmstring
+V 23
+https://192.168.1.2:443
+END
+EOF
+
+} \ No newline at end of file