create-user: move dav lock db directory
[hcoop/scripts.git] / lib / create-user-lib.sh
index 3adfe54..999f9bc 100644 (file)
@@ -35,21 +35,24 @@ MAILPATH=/afs/hcoop.net/common/email/$PATHBITS
 #
 
 function execute_on_web_nodes () {
-    ssh -K deleuze $*
-    ssh -K navajos $*
+    ssh -K shelob.hcoop.net $*
 }
 
 function execute_on_domtool_server () {
-    ssh -K deleuze.hcoop.net $*
+    ssh -K gibran.hcoop.net $*
 }
 
+function execute_on_mail_nodes () {
+    ssh -K minsky.hcoop.net $*
+}
 
 function execute_on_all_machines () {
     $*
-    ssh -K hopper.hcoop.net $*
-    ssh -K deleuze.hcoop.net $*
-    ssh -K navajos.hcoop.net $*
-    ssh -K bog.hcoop.net $*
+    ssh -K marsh.hcoop.net $*
+    ssh -K minsky.hcoop.net $*
+    ssh -K shelob.hcoop.net $*
+    ssh -K lovelace.hcoop.net $*
+    ssh -K outpost.hcoop.net $*
 }
 
 #
@@ -99,18 +102,17 @@ function export_user_keytabs () {
     sudo chmod 440            /etc/keytabs/user.daemon/$NEWUSER
 
     # rsync keytabs
+    # only needed on nodes that will run code on behalf of members
+    # fixme: duplicates all server list
     (cd /etc/keytabs
        sudo tar clpf - user.daemon/$NEWUSER | \
-           ssh hopper.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
-    (cd /etc/keytabs
-       sudo tar clpf - user.daemon/$NEWUSER | \
-           ssh deleuze.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
+           ssh marsh.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
     (cd /etc/keytabs
        sudo tar clpf - user.daemon/$NEWUSER | \
-           ssh navajos.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
+           ssh minsky.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
     (cd /etc/keytabs
        sudo tar clpf - user.daemon/$NEWUSER | \
-           ssh bog.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
+           ssh shelob.hcoop.net cd /etc/keytabs\; sudo tar xlpf -)
 }
 
 
@@ -128,7 +130,7 @@ function create_home_volume () {
        vos rename user.$NEWUSER.d user.$NEWUSER
     fi
     vos examine user.$NEWUSER 2>/dev/null || \
-       vos create fritz.hcoop.net /vicepa user.$NEWUSER -maxquota 400000
+       vos create gibran.hcoop.net /vicepa user.$NEWUSER -maxquota 10000000
 
     mkdir -p `dirname $HOMEPATH`
     fs ls $HOMEPATH || test -L $HOMEPATH || fs mkm $HOMEPATH user.$NEWUSER
@@ -153,7 +155,7 @@ function create_mail_volume () {
        vos rename mail.$NEWUSER.d mail.$NEWUSER
     fi
     vos examine mail.$NEWUSER 2>/dev/null || \
-       vos create fritz.hcoop.net /vicepa mail.$NEWUSER -maxquota 400000
+       vos create gibran.hcoop.net /vicepa mail.$NEWUSER -maxquota 10000000
     
     mkdir -p `dirname $MAILPATH`
     fs ls $MAILPATH || fs mkm $MAILPATH         mail.$NEWUSER
@@ -170,7 +172,7 @@ function create_mail_volume () {
             "\n<http://wiki.hcoop.net/MemberManual/Email> on our website."| \
             mail -s "Welcome to your HCoop email store" \
             -e -a "From: postmaster@hcoop.net" \
-            real-$NEWUSER
+            real-$NEWUSER@hcoop.net
     fi
 
     chown $NEWUSER:nogroup $MAILPATH/cur $MAILPATH/new $MAILPATH/tmp
@@ -188,7 +190,7 @@ function create_mail_volume () {
                $file
        fi
     else
-       maildirmake --add SpamAssassin=/var/local/lib/spamd/Maildir \
+       maildirmake --add SpamAssassin=/afs/hcoop.net/user/s/sp/spamd/Maildir \
             $HOMEPATH/Maildir
     fi
 
@@ -237,15 +239,11 @@ function seed_user_hcoop_directories () {
     chown $NEWUSER:nogroup $HOMEPATH/.public/.domtool
     test -e $HOMEPATH/.domtool || \
        test -L $HOMEPATH/.domtool || \
-        execute_on_domtool_server sudo -u $NEWUSER ln -s $HOMEPATH/.public/.domtool $HOMEPATH/.domtool
+        execute_on_domtool_server ln -s $HOMEPATH/.public/.domtool $HOMEPATH/.domtool
+        execute_on_domtool_server chown $NEWUSER $HOMEPATH/.domtool 
         # ^^ work around sudo env_reset crap without having to
         # actually figure out how to make it work cleanly -- clinton,
         # 2011-11-30
-
-    # Gitweb hosting
-    test -L /var/cache/git/$NEWUSER || \
-       sudo ln -s $HOMEPATH/.hcoop-git /var/cache/git/$NEWUSER
-
 }
 
 #
@@ -255,7 +253,7 @@ function seed_user_hcoop_directories () {
 function create_dav_locks () {
     # Make per-user apache DAV lock directory -- the directory must be
     # both user and group-writable, which is silly.
-    execute_on_web_nodes sudo mkdir -p /var/lock/apache2/dav/$NEWUSER
+    execute_on_web_nodes sudo mkdir -p /var/local/domtool/apache2/dav/$NEWUSER
     execute_on_web_nodes sudo chown $NEWUSER:www-data /var/lock/apache2/dav/$NEWUSER
     execute_on_web_nodes sudo chmod ug=rwx,o= /var/lock/apache2/dav/$NEWUSER
 }
@@ -275,7 +273,7 @@ function enable_domtool () {
 function subscribe_to_lists () {
     # Subscribe user to our mailing lists.
 
-    echo $NEWUSER@hcoop.net | ssh -K deleuze sudo -u list \
+    echo $NEWUSER@hcoop.net | ssh -K minsky sudo -u list  \
        /var/lib/mailman/bin/add_members -r - hcoop-announce
 }
 
@@ -283,9 +281,32 @@ function ensure_afs_servers_synced () {
     vos release old
     
     # technically this might not be necessary, but for good measure...
-    vos syncserv fritz
-    vos syncvldb fritz
+    local srv
+    for srv in gibran lovelace; do
+       vos syncserv $srv
+       vos syncvldb $srv
+    done
     
     # refresh volume location cache (takes ~2hrs otherwise)
     execute_on_all_machines fs checkvolumes
-}
\ No newline at end of file
+}
+
+#
+# webserver
+#
+
+function create_fcgi_wrapper () {
+    # note: might want to move this to domtool-adduser
+    local wrapper_dir="/afs/hcoop.net/common/etc/domtool/httpd/fastcgi/${PATHBITS}"
+    local wrapper="${wrapper_dir}/${NEWUSER}-wrapper-wrapper"
+    mkdir -p $wrapper_dir
+    cat > $wrapper <<EOF
+#!/bin/bash
+
+exec k5start -qtUf /etc/keytabs/user.daemon/${NEWUSER} -- \$@
+EOF
+
+    chmod +x $wrapper
+    chown $NEWUSER:nogroup $wrapper
+    chown $NEWUSER:nogroup $wrapper_dir
+}