script
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
script [2014/07/15 13:10] – [Ubuntu] Gestione automatica gruppi, aggiornati pkg plplot diego.zuccato@unibo.it | script [2024/12/24 10:09] (versione attuale) – aggiornata OU mario.petroli@unibo.it | ||
---|---|---|---|
Linea 2: | Linea 2: | ||
**ATTENZIONE** Questa pagina è accessibile anche agli utenti non autenticati! Non inserire password o informazioni sensibili! | **ATTENZIONE** Questa pagina è accessibile anche agli utenti non autenticati! Non inserire password o informazioni sensibili! | ||
+ | |||
+ | Per prelevare direttamente uno degli script senza aprire il browser, usare | ||
+ | wget http:// | ||
+ | con N da 1 a 3 (rispettivamente Ubuntu, Debian-pbis, | ||
+ | |||
+ | Per l' | ||
+ | #!/bin/bash | ||
+ | export myADUser=nome.cognome | ||
+ | wget http:// | ||
+ | sudo bash / | ||
+ | Ovviamente va cambiato nome.cognome col proprio UPN AD (può essere diverso dalla mail senza dominio, p.e. m.bertelli@unibo.it deve usare michele.bertelli2). | ||
+ | |||
+ | Quando si entra come tecnici, si inserisce la chiavetta (che viene montata automaticamente) e si lancia | ||
+ | bash / | ||
+ | |||
+ | Lo script che viene scaricato ed eseguito è: | ||
+ | <code bash preinst.sh> | ||
+ | #!/bin/bash | ||
+ | ##### | ||
+ | # Preparazione per installazione laboratorio | ||
+ | # File release: 20210729 | ||
+ | if [ -z " | ||
+ | echo -n " | ||
+ | read L | ||
+ | else | ||
+ | L=$1 | ||
+ | fi | ||
+ | |||
+ | if [ -z " | ||
+ | echo -n " | ||
+ | read N | ||
+ | else | ||
+ | N=$2 | ||
+ | fi | ||
+ | |||
+ | sudo sed -i~ " | ||
+ | sudo nmcli c m " | ||
+ | sudo dpkg-reconfigure openssh-server | ||
+ | sudo apt update | ||
+ | wget http:// | ||
+ | sed -i~ " | ||
+ | sudo shutdown -r now | ||
+ | </ | ||
===== Ubuntu ===== | ===== Ubuntu ===== | ||
Linea 9: | Linea 52: | ||
##### | ##### | ||
# Script di installazione per Ubuntu. | # Script di installazione per Ubuntu. | ||
- | # Versione | + | # Versione |
- | # Per Ubuntu LTS 12.04 e 14.04 (beta) | + | |
############################################################ | ############################################################ | ||
Linea 21: | Linea 63: | ||
# Base OU in AD | # Base OU in AD | ||
- | AD_OU=' | + | AD_OU=' |
# Pacchetti base, da installare sempre | # Pacchetti base, da installare sempre | ||
- | SYS_PKGS=" | + | SYS_PKGS=" |
# Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
AD_PKGS=" | AD_PKGS=" | ||
- | # Pacchetti comuni (PC e lab | + | # Pacchetti comuni (PC e lab) |
- | XTRA_PKGS=" | + | XTRA_PKGS=" |
# Pacchetti da installare solo nei laboratori didattici | # Pacchetti da installare solo nei laboratori didattici | ||
- | LAB_PKGS=" | + | LAB_PKGS=" |
############################################################ | ############################################################ | ||
Linea 59: | Linea 101: | ||
if [ -z " | if [ -z " | ||
echo " | echo " | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | echo "Fase di personalizzazione dell' | ||
exit | exit | ||
fi | fi | ||
Linea 70: | Linea 117: | ||
ARCH=" | ARCH=" | ||
fi | fi | ||
- | AD_SCRIPT=pbis-open-8.0.0.2016.linux.${ARCH}.deb.sh | + | |
- | AD_SCRIPTURL=http:// | + | SM_FILE=sm2_4_25tot.tar.gz |
+ | SM_URL=http:// | ||
+ | SM_INST="" | ||
if [ -z " | if [ -z " | ||
Linea 78: | Linea 127: | ||
echo "Non è un PC di laboratorio" | echo "Non è un PC di laboratorio" | ||
ISLAB=0 | ISLAB=0 | ||
- | mkdir / | + | |
- | mkdir / | + | if [ " |
+ | | ||
+ | mkdir / | ||
+ | fi | ||
else | else | ||
# È un lab | # È un lab | ||
ISLAB=1 | ISLAB=1 | ||
+ | JOIN=s | ||
AD_OU=" | AD_OU=" | ||
- | apt-get -qy install ${LAB_PKGS} | + | apt install ${LAB_PKGS} |
+ | |||
DEFSO="" | DEFSO="" | ||
case " | case " | ||
- | "n" | + | "nav") |
- | AD_OU=" | + | AD_OU=" |
- | | + | |
- | useradd -G root -m -U cirsfid | + | |
- | echo " | + | |
- | passwd | + | |
- | + | | |
- | | + | |
- | mkdir / | + | |
- | mkdir / | + | echo "137.204.136.90 ${SRV_LAB}" >> /etc/hosts |
- | echo "serverlab.bo.astro.it:/ | + | echo "${SRV_LAB}:homes /home glusterfs defaults,_netdev |
- | echo "serverlab.bo.astro.it:/home/STUDENTI/ / | + | SM_INST="y" |
- | ;; | + | |
- | " | + | # Preparazione all' |
- | AD_OU="${AD_OU}/r1" | + | |
- | | + | |
- | # Creazione delle home sul fileserver | + | /home/PERSONALE/_LIB/IRAF/deploy.sh |
- | | + | |
- | | + | |
- | mkdir / | + | |
- | mkdir / | + | |
- | mkdir /home/remote/STUDENTI | + | |
- | echo " | + | |
- | | + | |
- | ;; | + | |
" | " | ||
AD_OU=" | AD_OU=" | ||
- | mkdir / | + | |
- | mkdir / | + | useradd -G root -m -U cesia |
+ | | ||
+ | | ||
+ | # IP esterno del server 137.204.248.241 | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
;; | ;; | ||
" | " | ||
Linea 125: | Linea 177: | ||
# I laboratori si spengono alle 20 | # I laboratori si spengono alle 20 | ||
- | echo "0 20 * * * shutdown -h now" | crontab - | + | echo "0 20 * * * /sbin/shutdown -h now" | crontab - |
+ | |||
+ | if [ " | ||
+ | apt-get -qy install libx11-6: | ||
+ | cd / | ||
+ | wget -O $SM_FILE $SM_URL | ||
+ | tar xfz $SM_FILE | ||
+ | rm -f $SM_FILE | ||
+ | cd - | ||
+ | fi | ||
fi | fi | ||
- | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
if [ " | if [ " | ||
readdef "Nome amministratore AD (${AD_USER})" | readdef "Nome amministratore AD (${AD_USER})" | ||
Linea 143: | Linea 203: | ||
apt-get -qy install $SYS_PKGS | apt-get -qy install $SYS_PKGS | ||
if [ " | if [ " | ||
- | apt-get -qy install $AD_PKGS | + | |
- | curl $AD_SCRIPTURL > ~/ | + | wget -O / |
+ | apt-get update | ||
+ | | ||
fi | fi | ||
# Fix schermata di login | # Fix schermata di login | ||
- | if [ -f / | + | if [ ! -s / |
- | # il file non pare esistere in 14.04LTS... | + | # il file non pare esistere in 18.04LTS... |
echo " | echo " | ||
echo " | echo " | ||
Linea 170: | Linea 232: | ||
$pbis_base/ | $pbis_base/ | ||
echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | ||
+ | read A | ||
# Corregge errore con PAM (il file pbis viene creato col join, non prima...) | # Corregge errore con PAM (il file pbis viene creato col join, non prima...) | ||
sed -i ' | sed -i ' | ||
pam-auth-update | pam-auth-update | ||
- | read A | ||
$pbis_base/ | $pbis_base/ | ||
$pbis_base/ | $pbis_base/ | ||
Linea 200: | Linea 262: | ||
$pbis_base/ | $pbis_base/ | ||
} | } | ||
+ | echo " | ||
+ | / | ||
fi | fi | ||
Linea 205: | Linea 269: | ||
apt-get -qy install ${XTRA_PKGS} | apt-get -qy install ${XTRA_PKGS} | ||
- | # Installa ORACLE Java (richiede conferma sia per l' | + | if [ -f /etc/ |
- | add-apt-repository ppa: | + | echo " |
- | apt-get update | + | |
- | apt-get -qy install oracle-java7-installer | + | fi |
# Aggiornamento completo del sistema | # Aggiornamento completo del sistema | ||
apt-get -qy dist-upgrade | apt-get -qy dist-upgrade | ||
- | shutdown -h now | + | shutdown -r now |
</ | </ | ||
===== Debian ===== | ===== Debian ===== | ||
- | I server con Debian necessitano di uno script diverso, | + | I server con Debian necessitano di uno script |
+ | |||
+ | === PBIS (new) === | ||
+ | |||
+ | Questo è lo script preferenziale per i nuovi server. PBIS si è rivelato piuttosto stabile. Rispetto al vecchio script, però, cambia il mapping UID/GID e questo può essere indesiderabile. | ||
<code bash instdeb.sh> | <code bash instdeb.sh> | ||
#!/bin/bash | #!/bin/bash | ||
##### | ##### | ||
- | # Script di installazione per server Debian. Versione del 14/3/2014 | + | # Script di installazione per server Debian. Versione del 09/07/2019 |
+ | # Modifiche per Debian 10 | ||
+ | # Permessa installazione senza join per macchine non str957-* | ||
############################################################ | ############################################################ | ||
Linea 233: | Linea 303: | ||
# Base OU in AD | # Base OU in AD | ||
- | AD_OU=' | + | AD_OU=' |
# Pacchetti base, da installare sempre | # Pacchetti base, da installare sempre | ||
- | SYS_PKGS=" | + | SYS_PKGS=" |
# Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
- | AD_PKGS=" | + | AD_PKGS=" |
# Pacchetti comuni | # Pacchetti comuni | ||
- | XTRA_PKGS=" | + | XTRA_PKGS=" |
############################################################ | ############################################################ | ||
# Qui non modificare nulla | # Qui non modificare nulla | ||
+ | techs=" | ||
+ | NAME=$(hostname -s) | ||
+ | admgrp=" | ||
+ | usrgrp=" | ||
+ | pbis_base=/ | ||
+ | AD_HOME=' | ||
# Read user input with a default | # Read user input with a default | ||
Linea 258: | Linea 334: | ||
fi | fi | ||
} | } | ||
- | |||
- | NAME=$(hostname -s) | ||
PCID=`echo $NAME | sed ' | PCID=`echo $NAME | sed ' | ||
+ | if [ -z " | ||
+ | echo " | ||
+ | echo "Premi INVIO per continuare comunque." | ||
+ | JOIN=n | ||
+ | read A | ||
+ | else | ||
+ | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | readdef "Nome amministratore AD (${AD_USER})" | ||
+ | mkdir / | ||
+ | mkdir / | ||
+ | fi | ||
+ | |||
+ | # Primo aggiornamento/ | ||
+ | apt -qy install $SYS_PKGS | ||
+ | if [ " | ||
+ | wget -O - http:// | ||
+ | wget -O / | ||
+ | apt update | ||
+ | apt -qy install $AD_PKGS pbis-open | ||
+ | fi | ||
+ | |||
+ | # Fix autorizzazioni | ||
+ | sed -i~ " | ||
+ | sed -i~ " | ||
+ | |||
+ | # Operazioni relative al dominio | ||
+ | if [ " | ||
+ | sh ~/ | ||
+ | $pbis_base/ | ||
+ | $pbis_base/ | ||
+ | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | ||
+ | read A | ||
+ | # Corregge errore con PAM (il file pbis viene creato col join, non prima...) | ||
+ | sed -i ' | ||
+ | pam-auth-update | ||
+ | $pbis_base/ | ||
+ | $pbis_base/ | ||
+ | $pbis_base/ | ||
+ | $pbis_base/ | ||
+ | echo " | ||
+ | chmod 0440 / | ||
+ | |||
+ | $pbis_base/ | ||
+ | echo "Admin group found" | ||
+ | echo " | ||
+ | chmod 0440 / | ||
+ | } | ||
+ | $pbis_base/ | ||
+ | echo " | ||
+ | reqm=" | ||
+ | $pbis_base/ | ||
+ | # Trying to lockout admins? Don't! | ||
+ | reqm2=" | ||
+ | } | ||
+ | $pbis_base/ | ||
+ | # Never lockout technicians! | ||
+ | reqm3=" | ||
+ | } | ||
+ | $pbis_base/ | ||
+ | } | ||
+ | fi | ||
+ | |||
+ | # Installazione dei pacchetti base | ||
+ | apt -qy install ${XTRA_PKGS} | ||
+ | |||
+ | # Aggiornamento completo del sistema | ||
+ | apt -qy dist-upgrade | ||
+ | shutdown -r now | ||
+ | </ | ||
+ | |||
+ | === Winbind (old) === | ||
+ | |||
+ | Talvolta è necessario evitare l'uso di PBIS (p.e. perché si aggiungono nodi che devono mantenere il mapping UID/GID coerente con vecchi server). | ||
+ | |||
+ | <code bash instdeb-old.sh > | ||
+ | #!/bin/bash | ||
+ | ##### | ||
+ | # Script di installazione per server Debian. | ||
+ | # Versione del 1/9/2015 | ||
+ | |||
+ | ############################################################ | ||
+ | # Config section: personalizza a volontà | ||
+ | #### | ||
+ | # Utente locale | ||
+ | LOCAL_USER=tecnici | ||
+ | # Amministratore AD da usare per il join | ||
+ | AD_USER=diego.zuccato | ||
+ | |||
+ | # Base OU in AD | ||
+ | AD_OU=' | ||
+ | |||
+ | # Pacchetti base, da installare sempre | ||
+ | SYS_PKGS=" | ||
+ | |||
+ | # Pacchetti da installare solo se si effettua il join, *dopo* SYS_PKGS | ||
+ | AD_PKGS=" | ||
+ | |||
+ | # Pacchetti comuni | ||
+ | XTRA_PKGS=" | ||
+ | |||
+ | ############################################################ | ||
+ | # Qui non modificare nulla | ||
+ | |||
+ | # Read user input with a default | ||
+ | # readdef " | ||
+ | function readdef { | ||
+ | local v; | ||
+ | read -p "$1 " v | ||
+ | if [ -z " | ||
+ | eval $3=" | ||
+ | else | ||
+ | eval $3=" | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | NAME=$(hostname -s) | ||
+ | |||
+ | PCID=`echo $NAME | sed ' | ||
+ | |||
if [ -z " | if [ -z " | ||
echo " | echo " | ||
exit | exit | ||
fi | fi | ||
+ | |||
LAB=`echo $PCID| sed ' | LAB=`echo $PCID| sed ' | ||
PCNO=`echo $PCID| sed " | PCNO=`echo $PCID| sed " | ||
AD_HOME=' | AD_HOME=' | ||
+ | |||
mkdir / | mkdir / | ||
mkdir / | mkdir / | ||
+ | |||
readdef 'Vuoi joinare la macchina? (S/n)' ' | readdef 'Vuoi joinare la macchina? (S/n)' ' | ||
if [ " | if [ " | ||
readdef "Nome amministratore AD (${AD_USER})" | readdef "Nome amministratore AD (${AD_USER})" | ||
fi | fi | ||
+ | |||
# Primo aggiornamento/ | # Primo aggiornamento/ | ||
apt-get -qy install $SYS_PKGS | apt-get -qy install $SYS_PKGS | ||
Linea 286: | Linea 482: | ||
service winbind stop | service winbind stop | ||
mv / | mv / | ||
- | cat > / | + | cat > / |
[global] | [global] | ||
netbios name = ${NAME} | netbios name = ${NAME} | ||
Linea 304: | Linea 500: | ||
wins server = 137.204.25.77 | wins server = 137.204.25.77 | ||
client schannel = no | client schannel = no | ||
+ | |||
#winbind separator = - | #winbind separator = - | ||
winbind enum users = No | winbind enum users = No | ||
Linea 315: | Linea 511: | ||
winbind uid = 10000-99999 | winbind uid = 10000-99999 | ||
winbind gid = 10000-99999 | winbind gid = 10000-99999 | ||
+ | |||
#idmap domains = PERSONALE STUDENTI | #idmap domains = PERSONALE STUDENTI | ||
#idmap config PERSONALE: | #idmap config PERSONALE: | ||
#idmap config STUDENTI: | #idmap config STUDENTI: | ||
+ | |||
idmap config PERSONALE: | idmap config PERSONALE: | ||
idmap config PERSONALE: | idmap config PERSONALE: | ||
Linea 326: | Linea 522: | ||
idmap config STUDENTI: | idmap config STUDENTI: | ||
idmap config STUDENTI: | idmap config STUDENTI: | ||
+ | |||
template homedir = /home/%D/%U | template homedir = /home/%D/%U | ||
template shell = /bin/bash | template shell = /bin/bash | ||
END | END | ||
- | | + | |
+ | getent group $chkgroup > /dev/null && GROUP=" | ||
+ | cat > / | ||
[global] | [global] | ||
- | require_membership_of=${NOME}-abilitati | + | require_membership_of=${GROUP}Str957.Tecnici |
mkhomedir=yes | mkhomedir=yes | ||
END | END | ||
- | echo " | + | |
- | | + | |
- | | + | |
+ | |||
# Controllo ed eventuale restart automatico di winbind ogni 5 minuti | # Controllo ed eventuale restart automatico di winbind ogni 5 minuti | ||
echo '*/5 * * | echo '*/5 * * | ||
fi | fi | ||
+ | |||
# Fix autorizzazioni | # Fix autorizzazioni | ||
sed -i~ " | sed -i~ " | ||
sed -i~ " | sed -i~ " | ||
- | #sed -i~ ' | ||
# Operazioni relative al dominio | # Operazioni relative al dominio | ||
if [ " | if [ " | ||
- | # domainjoin-cli join --ou " | + | |
- | | + | echo "Se il join è riuscito |
- | echo "Se il join è riuscito, premi INVIO, altrimenti ^C" | + | |
read A | read A | ||
+ | net ads dns register -P | ||
echo " | echo " | ||
chmod 0440 / | chmod 0440 / | ||
Linea 361: | Linea 558: | ||
# Installazione dei pacchetti base | # Installazione dei pacchetti base | ||
apt-get -qy install ${XTRA_PKGS} | apt-get -qy install ${XTRA_PKGS} | ||
- | |||
- | # Installa ORACLE Java (richiede conferma sia per l' | ||
- | add-apt-repository ppa: | ||
- | apt-get update | ||
- | apt-get -qy install oracle-java7-installer | ||
# Aggiornamento completo del sistema | # Aggiornamento completo del sistema | ||
apt-get -qy dist-upgrade | apt-get -qy dist-upgrade | ||
- | shutdown -h now | + | shutdown -r now |
</ | </ | ||
+ |
script.1405429817.txt.gz · Ultima modifica: 2014/07/15 13:10 da diego.zuccato@unibo.it