[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

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


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