[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/tftp-tools/install-clients-linux/sources/ -> post-install_ubuntu.sh (source)

   1  #!/bin/bash
   2  
   3  # Script lancé en fin d'installation preseed ubuntu
   4  # pour finaliser de la config .
   5  #
   6  # 
   7  # lastupdate 5-06-2014 initab
   8  
   9  . /root/bin/params.sh
  10  
  11  # quelques couleurs ;-)
  12  rouge='\e[0;31m'
  13  rose='\e[1;31m'
  14  COLTITRE='\e[0;33m'
  15  jaune='\e[1;33m'
  16  vert='\e[0;32m'
  17  bleu='\e[1;34m'
  18  neutre='\e[0;m'
  19  
  20  
  21  DEBIAN_PRIORITY="critical"
  22  DEBIAN_FRONTEND="noninteractive"
  23  export  DEBIAN_PRIORITY
  24  export  DEBIAN_FRONTEND
  25  
  26  
  27  ladate=$(date +%Y%m%d%H%M%S)
  28  
  29  
  30  TEST_CLIENT=$(ifconfig | grep ":$ip_se3 ")
  31  if [ -e /var/www/se3 ]; then
  32      echo "Malheureux... Ce script est a executer sur les clients Linux, pas sur le serveur."
  33      exit 1
  34  fi
  35  
  36  compte_rendu=/root/compte_rendu_post-install_$ladate}.txt
  37  
  38  echo "Compte-rendu de post-installation: $ladate" > $compte_rendu
  39  
  40  
  41  
  42  
  43  
  44  echo -e "$COLTITRE"
  45  echo "--------------------------------------------------------------------------------"
  46  echo "Post Configuration du poste"
  47  echo "--------------------------------------------------------------------------------"
  48  echo -e "$neutre"
  49  echo "Appuyez sur Entree pour continuer"
  50  read -t 20 dummy
  51  
  52  
  53  
  54  
  55  # Debug:
  56  #echo "++++++++"
  57  #cat /root/bin/params.sh >> $compte_rendu 2>&1
  58  #echo "ip_se3=$ip_se3"|tee -a $compte_rendu
  59  #echo "++++++++"
  60  
  61  echo "Mise en place des cles publiques SSH" | tee -a $compte_rendu
  62  mkdir -p /root/.ssh
  63  chmod 700 /root/.ssh
  64  cd /root/.ssh
  65  if [ -n "$ip_se3}" ]; then
  66      wget http://$ip_se3}/paquet_cles_pub_ssh.tar.gz >/dev/null 2>&1
  67      if [ "$?" = "0" ]; then
  68          tar -xzf paquet_cles_pub_ssh.tar.gz && \
  69          cat *.pub > authorized_keys && \
  70          rm paquet_cles_pub_ssh.tar.gz
  71      else
  72          echo "Echec de la recuperation des cles pub." | tee -a $compte_rendu
  73      fi
  74  #     echo "Config proxy apt..." | tee -a $compte_rendu
  75  #     echo 'Acquire::http { Proxy "http://'$ip_se3':'9999'"; };' > /etc/apt/apt.conf.d/02apt-proxy
  76  #     cat /etc/apt/apt.conf.d/02apt-proxy | tee -a $compte_rendu
  77  else
  78      echo "IP SE3 non trouvee???" | tee -a $compte_rendu
  79  fi
  80  sleep 5
  81  
  82  if [ -n "$ip_proxy" -a -n "$port_proxy" ]; then
  83      echo "Config proxy..." | tee -a $compte_rendu
  84      echo "
  85  export http_proxy=\"http://$ip_proxy:$port_proxy\"
  86  " >> /etc/proxy.sh
  87      chmod +x /etc/proxy.sh
  88  
  89  #     echo '
  90  # if [ -e /etc/proxy.sh ]; then
  91  # . /etc/proxy.sh
  92  # fi
  93  # ' >> /etc/profile
  94  
  95  fi
  96  
  97  echo "Config vim..." | tee -a $compte_rendu
  98  echo 'filetype plugin indent on
  99  set autoindent
 100  set ruler
 101  if &t_Co > 2 || has("gui_running")
 102    syntax on
 103    set hlsearch
 104  endif' > /root/.vimrc
 105  
 106  cp /root/.vimrc /etc/skel/.vimrc
 107  
 108  if [ -n "$ip_ldap}" -a -n "$ldap_base_dn}" ]; then
 109      echo "Config LDAP..." | tee -a $compte_rendu
 110  echo "HOST $ip_ldap
 111  BASE $ldap_base_dn
 112  # TLS_REQCERT never
 113  # TLS_CACERTDIR /etc/ldap/
 114  # TLS_CACERT /etc/ldap/slapd.pem
 115  " > /etc/ldap/ldap.conf
 116  else
 117      echo "IP LDAP ou ldap_base_dn et/non trouves..." | tee -a $compte_rendu
 118  fi
 119  
 120  
 121  
 122  if [ "$ocs" = "1" ]; then
 123      echo "Installation et configuration du client OCS" | tee -a $compte_rendu 
 124      aptitude -y install ocsinventory-agent
 125      echo "server=$ip_se3:909" > /etc/ocsinventory/ocsinventory-agent.cfg 
 126  fi
 127  
 128  
 129  
 130  
 131  if [ -n "$ip_se3}" ]; then
 132      echo "Telechargement de integration_trusty.bash..." | tee -a $compte_rendu
 133      mkdir -p /root/bin
 134      cd /root/bin
 135      wget http://$ip_se3}/install/integration_trusty.bash >/dev/null 2>&1
 136      if [ "$?" = "0" ]; then
 137          echo "Telechargement reussi." | tee -a $compte_rendu
 138          chmod +x integration_trusty.bash
 139      else
 140          echo "Echec du telechargement." | tee -a $compte_rendu
 141          echo "Le poste ne pourra pas être intégré au domaine" | tee -a $compte_rendu 
 142          ISCRIPT="erreur"
 143      fi
 144  fi
 145  
 146  
 147  t=$(ifconfig |grep "HWaddr"|sed -e "s|.*HWaddr ||"|wc -l)
 148  if [ "$t}" = "1" ]; then
 149      # Il semble qu on n entre pas ici en post-inst exécuté en fin d install
 150      mac=$(ifconfig |grep HWaddr|sed -e "s|.*HWaddr ||")
 151      echo "Une adresse mac trouvee : $mac"
 152      if [ -n "$mac" ]; then
 153          #nom_machine=$(ldapsearch -xLLL macAddress=$mac cn|grep "^cn: "|sed -e "s|^cn: ||")
 154  
 155          t=$(ldapsearch -xLLL macAddress=$mac cn|grep "^cn: "|sed -e "s|^cn: ||"|head -n1)
 156          if [ -z "$t" ]; then
 157              echo "Nom de machine non trouvé dans l annuaire LDAP"
 158          else
 159              tab_nom_machine=($(ldapsearch -xLLL macAddress=$mac cn|grep "^cn: "|sed -e "s|^cn: ||"))
 160              if [ "${#tab_nom_machine[*]}" = "1" ]; then
 161                  t=$(echo "$tab_nom_machine[0]}"|sed -e "s|[^A-Za-z0-9_\-]||g")
 162                  t2=$(echo "$tab_nom_machine[0]}"|sed -e "s|_|-|g")
 163                  if [ "$t" != "$tab_nom_machine[0]}" ]; then
 164                      echo "Le nom de machine $tab_nom_machine[0]} contient des caracteres invalides."
 165                  elif [ "$t2" != "$tab_nom_machine[0]}" ]; then
 166                      echo "Le nom de machine $tab_nom_machine[0]} contient des _ qui seront remplaces par des -"
 167                      nom_machine="$t2"
 168                      echo "nouveau nom : $nom_machine"
 169                      sleep 2
 170                  else
 171                      nom_machine=$tab_nom_machine[0]}
 172  
 173                      echo "Nom de machine trouve dans l annuaire LDAP : $nom_machine"
 174                      
 175                  fi
 176              else
 177                  echo "Attention : adresse MAC $mac est associee a plusieurs machines:"
 178                  ldapsearch -xLLL macAddress=$mac cn|grep "^cn: "|sed -e "s|^cn: ||"
 179              fi
 180          fi    
 181      else
 182          echo "Attention : adresse MAC illisible !!"
 183                  
 184      fi
 185  fi
 186  
 187      
 188      
 189  while [ -z "$nom_machine" ]
 190      do
 191          echo "Machine non connue de l'annuare, Veuillez saisir un nom"
 192          echo "Attention espaces et _ sont interdits et 15 car maxi" 
 193          read nom_machine
 194          echo "Nom de machine: $nom_machine"
 195          if [ -n "$nom_machine}" ]; then
 196              t=$(echo "$nom_machine:0:1}"|grep "[A-Za-z]")
 197              if [ -z "$t" ]; then
 198                  echo "Le nom doit commencer par une lettre."
 199                  nom_machine=""
 200              else
 201                  t=$(echo "$nom_machine}"|sed -e "s/[A-Za-z0-9\-]//g")
 202                  if [ -n "$t" ]; then
 203                      echo "Le nom $nom_machine contient des caracteres invalides: '$t'"
 204                      nom_machine=""
 205                  fi
 206              fi
 207          fi
 208      done
 209      sleep 2
 210  
 211  
 212  echo ""
 213  echo "Config SSMTP..."
 214  cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.$ladate}
 215  echo "
 216  root=$email
 217  #mailhub=mail
 218  mailhub=$mailhub
 219  rewriteDomain=$rewriteDomain
 220  hostname=$nom_machine.$nom_domaine
 221  " > /etc/ssmtp/ssmtp.conf
 222  sleep 2
 223  
 224  
 225  if [ $ISCRIPT != "erreur" ]; then
 226      echo -e "$jaune}"
 227      echo -e "==========================================="
 228      echo -e "Intégration au domaine SE3"
 229      echo -e "===========================================$neutre}"
 230  
 231      echo "Voulez-vous intégrer la machine au domaine SE3 (o)"
 232      read -t 10 rep
 233  else
 234      echo "Script d'intégration non présent" | tee -a $compte_rendu 
 235  fi
 236  
 237  
 238  [ "$rep" != "n" ] && echo "La machine sera mise au domaine" && sleep 1
 239  
 240  
 241  
 242  echo -e "$jaune}"
 243  echo -e "==========================================="
 244  echo -e "Début de l'installation des paquets de base"
 245  echo -e "===========================================$neutre}"
 246  
 247  echo "Installation des paquets définis dans mesapplis-ubuntu.txt"
 248  sleep 2
 249  apt-get -q update
 250  # aptitude -y full-upgrade
 251  apt-get install -y tofrodos
 252  fromdos /root/bin/mesapplis-ubuntu.txt
 253  for i in $(cat /root/bin/mesapplis-ubuntu.txt)
 254  do
 255      #installation des paquets
 256      echo -e "$vert}=========================="
 257      echo -e "on installe $i"
 258      echo -e "==========================$neutre}"
 259      sleep 2
 260      
 261      aptitude -y install $i
 262      
 263  done
 264  echo -e "$jaune}"
 265  echo -e "==========================================="
 266  echo -e "Fin de l'installation des paquets mesapplis-ubuntu"
 267  echo -e "===========================================$neutre}"
 268  
 269  
 270  if [ "$rep" != "n" ]; then
 271      ./integration_trusty.bash --nom-client="$nom_machine" --is --ivl | tee -a $compte_rendu 
 272      
 273  else
 274      
 275      echo "on intègre pas au domaine....Renommage du poste pour $nom_machine"| tee -a $compte_rendu 
 276      echo "$nom_machine" > "/etc/hostname"  
 277      invoke-rc.d hostname.sh stop > $SORTIE 2>&1
 278      invoke-rc.d hostname.sh start > $SORTIE 2>&1
 279  
 280      echo "
 281      127.0.0.1    localhost
 282      127.0.1.1    $nom_machine
 283  
 284      # The following lines are desirable for IPv6 capable hosts
 285      ::1      ip6-localhost ip6-loopback
 286      fe00::0  ip6-localnet
 287      ff00::0  ip6-mcastprefix
 288      ff02::1  ip6-allnodes
 289      ff02::2  ip6-allrouters
 290      " > "/etc/hosts"
 291  
 292      echo "Renommage termine."| tee -a $compte_rendu 
 293      echo "pour intégrer le poste plus tard : 
 294      cd /root/bin/
 295      ./integration_trusty.bash --nom-client=\"$nom_machine\" --is --ivl" | tee -a $compte_rendu 
 296  fi
 297  
 298  
 299  # if [ -n "$nom_machine" -a -n "$email" ]; then
 300  #     cat /root/firstboot.txt|mail -s "[$nom_se3.$nom_domaine]: Post-install $nom_machine" $email
 301  # fi
 302  
 303  # update-rc.d gdm3 defaults
 304  
 305  ### A adapter voir config de grub
 306  mv /root/bin/post-install_ubuntu.sh /root/bin/post-install_ubuntu.sh.$ladate
 307  
 308  
 309  echo "Reconfig grub..." | tee -a $compte_rendu
 310  sed -i "s|^GRUB_DEFAULT=.*|GRUB_DEFAULT=saved|" /etc/default/grub
 311  sed -i "/^GRUB_SAVEDEFAULT=.*/d" /etc/default/grub
 312  echo "
 313  # Pour rebooter sur le dernier OS choisi
 314  GRUB_SAVEDEFAULT=true" >> /etc/default/grub
 315  
 316  # Virer l'entree (mode de dépannage)
 317  echo '
 318  # Pour ne pas generer l entree mode de depannage (sans mot de passe root)
 319  GRUB_DISABLE_LINUX_RECOVERY="true"' >> /etc/default/grub
 320  egrep -v "(^$|^#)" /etc/default/grub | tee -a $compte_rendu
 321  sed -r -i -e 's/^\GRUB_TIMEOUT=-1.*$/GRUB_TIMEOUT=3/g' /etc/default/grub
 322  
 323  # retour mode graphic
 324  sed 's|GRUB_CMDLINE_LINUX_DEFAULT="text"|GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"|' -i /etc/default/grub
 325  os-prober
 326  update-grub
 327  
 328  apt-get remove -y xscreensaver
 329  
 330  
 331  
 332  # Suppression autologin
 333  sed 's|-a root||' -i /etc/init/tty1.conf 
 334  
 335  
 336  
 337  echo -e "$COLTITRE"
 338  echo "--------------------------------------------------------------------------------"
 339  echo "Fin du script -reboot dans 10s pour finaliser l'installation"
 340  echo "--------------------------------------------------------------------------------"
 341  echo -e "$COLTXT"
 342  read -t 10 dummy
 343  reboot
 344  
 345  exit 0


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1