From 82cda9f8fe4595f243af80a3acef7ea7e8d939a4 Mon Sep 17 00:00:00 2001 From: Clinton Ebadi Date: Mon, 21 Feb 2011 06:50:40 -0500 Subject: [PATCH] Create database tablespace stubs on fritz --- create-user | 45 +++++++++++++------------------------------- create-user-database | 22 ++++++++++++++++++++++ destroy-user | 3 +-- 3 files changed, 36 insertions(+), 34 deletions(-) create mode 100644 create-user-database diff --git a/create-user b/create-user index 7ad5114..5659b3f 100755 --- a/create-user +++ b/create-user @@ -45,6 +45,17 @@ function mire_and_deleuze() { ssh mire.hcoop.net $* } +function execute_on_fritz () { + ssh fritz.hcoop.net $* +} + +function execute_on_all_machines () { + $* + ssh mire.hcoop.net $* + ssh hopper.hcoop.net $* + ssh fritz.hcoop.net $* +} + # # Kerberos principals # (creat kerberos principals: fred, fred/cgi, fred/mailfilter) @@ -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 @@ -251,34 +258,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 - fs sa -dir $DBPATH -acl $USER 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 - fs sa -dir $PGDIR -acl $USER none - - 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 -fs sa -dir $MYSQLDIR -acl $USER none - -vos release common.databases +# Create database tablespaces +execute_on_fritz /afs/hcoop.net/common/etc/scripts/create-user-database $PATHBITS # # Mount points for backup volumes diff --git a/create-user-database b/create-user-database new file mode 100644 index 0000000..4725bd8 --- /dev/null +++ b/create-user-database @@ -0,0 +1,22 @@ +#!/bin/bash -ex + +# DO NOT EXECUTE DIRECTLY +# This is only to be executed by create-user + +PATHBITS=$1 +DBPATH=/srv/databases/$PATHBITS +PGDIR=$DBPATH/postgres +MYSQLDIR=$DBPATH/mysql + +# Create postgres user and tablespace placeholder within volume +if ! test -d $PGDIR; then + mkdir -p $PGDIR + chown postgres:postgres $PGDIR +fi + +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 \ No newline at end of file diff --git a/destroy-user b/destroy-user index 766aa0e..10a7fb1 100755 --- a/destroy-user +++ b/destroy-user @@ -14,7 +14,6 @@ fi 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 # We don't use separate partitions for logs #LOGSPATH=/afs/.hcoop.net/common/.logs/$USER @@ -71,7 +70,7 @@ vos rename user.$USER user.$USER.d vos rename mail.$USER mail.$USER.d #XXX vos rename db.$USER db.$USER.d -vos release common.databases +#vos release common.databases #vos release common.logs sudo kadmin.local -q "delprinc -force $USER@HCOOP.NET" -- 2.20.1