X-Git-Url: https://git.hcoop.net/hcoop/scripts.git/blobdiff_plain/e3f713a391757bdebd5e2c9a1305b0b9d571f2ee..0f3e692beb17c497104e03c7b41c6e3624554317:/create-user diff --git a/create-user b/create-user index 8c385dc..39fa7ab 100755 --- a/create-user +++ b/create-user @@ -42,7 +42,18 @@ fi # needed. function mire_and_deleuze() { $* - ssh mire.hcoop.net $* + ssh -K mire.hcoop.net $* +} + +function execute_on_fritz () { + ssh -K fritz.hcoop.net $* +} + +function execute_on_all_machines () { + $* + ssh -K mire.hcoop.net $* + ssh -K hopper.hcoop.net $* + ssh -K fritz.hcoop.net $* } # @@ -79,10 +90,6 @@ ID_DAEMON=`pts examine $USER.daemon | head -n1 | sed 's_.*, id: *__' | sed 's_,. PATHBITS=`echo $USER | head -c 1`/`echo $USER | head -c 2`/$USER HOMEPATH=/afs/hcoop.net/user/$PATHBITS MAILPATH=/afs/hcoop.net/common/email/$PATHBITS -DBPATH=/afs/hcoop.net/common/.databases/$PATHBITS -PGDIR=$DBPATH/postgres -MYSQLDIR=$DBPATH/mysql - # # Create LDAP entries. (With the whole libnss-ptdb, I kind of @@ -146,18 +153,29 @@ test -e /etc/keytabs/user.daemon/$USER || \ sudo chown $USER:www-data /etc/keytabs/user.daemon/$USER sudo chmod 440 /etc/keytabs/user.daemon/$USER -# rsync keytabs to mire +# rsync keytabs (cd /etc/keytabs sudo tar clpf - user.daemon/$USER | \ ssh mire.hcoop.net cd /etc/keytabs\; sudo tar xlpf -) +(cd /etc/keytabs + sudo tar clpf - user.daemon/$USER | \ + ssh hopper.hcoop.net cd /etc/keytabs\; sudo tar xlpf -) +(cd /etc/keytabs + sudo tar clpf - user.daemon/$USER | \ + ssh fritz.hcoop.net cd /etc/keytabs\; sudo tar xlpf -) # # Create/mount/set-perms on user's volumes (home, mail, databases, logs) # # HOME VOLUME +if vos examine user.$USER.d 2>/dev/null; then + echo "Reactivating old volume (user.$USER.d)" + vos rename user.$USER.d user.$USER +fi vos examine user.$USER 2>/dev/null || \ - vos create deleuze.hcoop.net /vicepa user.$USER -maxquota 400000 + vos create fritz.hcoop.net /vicepa user.$USER -maxquota 400000 + mkdir -p `dirname $HOMEPATH` fs ls $HOMEPATH || test -L $HOMEPATH || fs mkm $HOMEPATH user.$USER chown $USER:nogroup $HOMEPATH @@ -175,11 +193,11 @@ fs sa $HOMEPATH/.logs/mail $USER.daemon rlwidk chown $USER:nogroup $HOMEPATH/.logs/mail # public_html -mkdir -p $HOMEPATH/public_html -chown $USER:nogroup $HOMEPATH/public_html -# Support privatization of home dirs -#fs sa $HOMEPATH/public_html system:anyuser rl -fs sa $HOMEPATH/public_html $USER.daemon rl +test -e $HOMEPATH/public_html || \ + (mkdir -p $HOMEPATH/public_html; \ + chown $USER:nogroup $HOMEPATH/public_html; \ + fs sa $HOMEPATH/public_html system:anyuser none; \ + fs sa $HOMEPATH/public_html $USER.daemon rl) # .procmail.d mkdir -p $HOMEPATH/.procmail.d @@ -203,8 +221,13 @@ test -L /var/cache/git/$USER || \ sudo ln -s $HOMEPATH/.hcoop-git /var/cache/git/$USER # MAIL VOLUME +if vos examine mail.$USER.d 2>/dev/null; then + echo "Reactivating old volume (mail.$USER.d)" + vos rename mail.$USER.d mail.$USER +fi vos examine mail.$USER 2>/dev/null || \ - vos create deleuze.hcoop.net /vicepa mail.$USER -maxquota 400000 + vos create fritz.hcoop.net /vicepa mail.$USER -maxquota 400000 + mkdir -p `dirname $MAILPATH` fs ls $MAILPATH || fs mkm $MAILPATH mail.$USER fs ls $HOMEPATH/Maildir || fs mkm $HOMEPATH/Maildir mail.$USER @@ -238,31 +261,8 @@ else $HOMEPATH/Maildir fi -# DATABASE VOLUME -if ! vos examine db.$USER >/dev/null 2>/dev/null; then - mkdir -p `dirname /afs/.hcoop.net/common/.databases/$PATHBITS` - vos create -server afs -partition a -name db.$USER -maxquota 400000 - fs mkmount -dir /afs/.hcoop.net/common/.databases/$PATHBITS -vol db.$USER -rw - fs sa -dir $DBPATH -acl system:postgres l - fs sa -dir $DBPATH -acl system:mysql l - fs sa -dir $DBPATH -acl system:backup rl -fi - -# Create postgres user and tablespace placeholder within volume -if ! test -d $PGDIR; then - mkdir -p $PGDIR - chown postgres:postgres $PGDIR - fs sa -dir $PGDIR -acl system:postgres write - - sudo -u postgres psql -c "CREATE TABLESPACE user_$USER OWNER postgres LOCATION '$PGDIR'" template1 -fi - -# Create mysql user and databases placeholder within volume -mkdir -p $MYSQLDIR -chown mysql:mysql $MYSQLDIR -fs sa -dir $MYSQLDIR -acl system:mysql write - -vos release common.databases +# Create database tablespaces +execute_on_fritz /afs/hcoop.net/common/etc/scripts/create-user-database $USER # # Mount points for backup volumes @@ -277,11 +277,11 @@ fs ls /afs/hcoop.net/.old/mail/$PATHBITS || \ vos release old # technically this might not be necessary, but for good measure... -vos syncserv deleuze -vos syncvldb deleuze +vos syncserv fritz +vos syncvldb fritz # refresh volume location cache (takes ~2hrs otherwise) -mire_and_deleuze fs checkvolumes +execute_on_all_machines fs checkvolumes # # Non-AFS files and directories