![]() |
![]() |
![]() |
![]() |
![]() |
Hai un dominio google apps domain for education e la necessità di creare gli account per tutti gli studenti? Ecco un tutorial con GAM (Google Apps Manager).
Contents |
Innanzi tutto devi installare GAM ed eseguire la prima attivazione sul tuo dominio. GAM è uno strumento a linea di comando che permette agli amministratori di controllare il proprio dominio Google Apps, gestire gli account, i gruppi e le organizzazioni. In questo tutorial troverai gli script usati per accreditare tutti gli allievi di una scuola, circa 700 studenti. Si tratta di script bash, testati in ambiente Linux.
In questo esempio immaginiamo che la nostra scuola sia composta da 3 Istituti: "Marconi", "Fermi" e "Volta", per un totale di 25 classi, e che il dominio della scuola sia mfv-school.com. Una buona scelta operativa potrebbe essere di organizzare gli account per istituto/classe e di creare anche un gruppo per ogni classe usando un nome univoco e facilmente riconoscibile, tipo "classe.istituto". Per gli account studente scegliamo "Cognome Nome" <nome.cognome@dominio.tld>, così si ordineranno per cognome.
Per partire abbiamo bisogno di un file che descriva le organizzazioni e i gruppi e di una serie di file con i momi degli studenti divisi per Istituto e classe. Le operazioni da svolgere saranno quindi in sequenza:
Questi i file .csv che andremo ad usare:
file_group_org.csv (GROUP PARENT ORGANIZATION):
1am.marconi@mfv-school.com, Students/Marconi, 1AM 1bm.marconi@mfv-school.com, Students/Marconi, 1BM 2am.arconi@mfv-school.com, Students/Marconi, 2BM ... 1af.fermi@mfv-school.com, Students/Fermi, 1AF 2af.fermi@mfv-school.com, Students/Fermi, 2AF ... 1av.volta@mfv-school.com, Students/Volta,1AV ...
file_students.csv (SURNAME NAME EMAIL PASSWORD ORG PARENT):
"Smith", "John", "john.smith@mfv-school.com", "pw_john", "1AM", "Marconi" "Brown", "David", "david.brown@mfv-school.com", "pw_david", "1AM", "Marconi" ... "Johnson", "Kate", "kate.johnson@mfv-school.com", "pw_kate", "1AF", "Fermi" ...
make_orgs.sh
#!/bin/bash CWD=`pwd` if [ "a$1" == "a" ] ; then echo "Usage: $0 file_group_org" exit fi IFS=',' cat $1 | while read GROUP PARENT ORG do echo $PARENT $ORG python $CWD/gam.py create org $ORG description "" parent $PARENT noinherit done
make_groups.sh
#!/bin/bash CWD=`pwd` LANGUAGE=it GROUP_PREFIX="Classe" GROUP_DESCRIPTION="Tutti gli allievi della" if [ "a$1" == "a" ] ; then echo "Usage: $0 file_group_org" exit fi IFS=',' cat $1 | while read GROUP PARENT ORG do PARENT=`echo $PARENT | cut -d'/' -f2` echo $PARENT $ORG python $CWD/gam.py create group $GROUP name "$GROUP_PREFIX $ORG" description "$GROUP_DESCRIPTION $ORG - $PARENT" python $CWD/gam.py update group $GROUP primary_language "$LANGUAGE" python $CWD/gam.py update group $GROUP who_can_invite all_managers_can_invite python $CWD/gam.py update group $GROUP who_can_join invited_can_join python $CWD/gam.py update group $GROUP send_message_deny_notification true python $CWD/gam.py update group $GROUP allow_external_members false python $CWD/gam.py update group $GROUP settings who_can_post_message anyone_can_post python $CWD/gam.py update group $GROUP settings who_can_view_group all_in_domain_can_view python $CWD/gam.py update group $GROUP who_can_view_membership all_in_domain_can_view python $CWD/gam.py update group $GROUP include_in_global_address_list false done
Nota: negli scipt si presume che l'organizzazione "Sudents" sia già esistente.
bulk_users.sh (SURNAME NAME EMAIL PASSWORD ORG PARENT):
#!/bin/bash CWD=`pwd` ROOT_ORG=Students DOMAIN=mfv-school.com if [ "a$1" == "a" ] ; then echo "Usage: $0 file_users_list" exit fi IFS=',' cat $1 | while read SURNAME NAME EMAIL PASSWORD ORG PARENT do SURNAME=$(echo $SURNAME|sed 's/"//g') NAME=$(echo $NAME|sed 's/"//g') EMAIL=$(echo $EMAIL|sed 's/"//g') PASSWORD=$(echo $PASSWORD|sed 's/"//g') ORG=$(echo $ORG|sed 's/"//g') PARENT=$(echo $PARENT|sed 's/"//g') if [ "a$EMAIL" != "a" ] ; then echo $EMAIL $ORG python $CWD/gam.py create user $EMAIL firstname "$SURNAME" lastname "$NAME" \ password $PASSWORD suspended off changepassword on \ nohash org "$ROOT_ORG/$PARENT/$ORG" mailORG=`echo $ORG | tr '[:upper:]' '[:lower:]'` mailPARENT=`echo $PARENT | tr '[:upper:]' '[:lower:]'` python $CWD/gam.py update group $mailORG.$mailPARENT@$DOMAIN add member $EMAIL fi done
Nota: lo script crea gli account e li inserisce nei rispettivi gruppi e nelle organizioni
Se avete creato per errore degli account sbagliati, è possibile rimediare creando un file .csv con l'elenco degli account da correggere e avviare lo script di cui sotto: file_users_to_corrige.csv
"Smith", "John", "john.smith@nfv-school.org", "Smith", "James", "james.smith@nfv-school.org" ...
users-corrige.sh (SURNAME NAME EMAIL newSURNAME newNAME newEMAIL):
#!/bin/bash CWD=`pwd` if [ "a$1" == "a" ] ; then echo "Usage: $0 file_users_to_corrige" exit fi IFS=',' cat $1 | while read SURNAME NAME EMAIL newSURNAME newNAME newEMAIL do EMAIL=$(echo $EMAIL|sed 's/"//g') newSURNAME=$(echo $newSURNAME|sed 's/"//g') newNAME=$(echo $newNAME|sed 's/"//g') newEMAIL=$(echo $newEMAIL|sed 's/"//g') echo $EMAIL' --> '$newEMAIL python $CWD/gam.py update user $EMAIL username $newEMAIL firstname "$newSURNAME" lastname "$newNAME" done
Bene, dovreste avere a disposizione tutti i file, date i permessi di esecuzione ai file .sh e avviateli nella corretta sequenza, in poche ore avrete registrato tutta la scuola. Buon divertimento!
cd ~/GAM ./make_orgs.sh file_group_org.csv ./make_groups.sh file_group_org.csv ./bulk_users.sh file_users_list.csv
Nota: le notizie e i software in questo tutorial sono rilasciati "as is", "così come sono", e senza garanzia alcuna. Usare a proprio rischio e pericolo.