tentative bientot avortee de faire un script inutile pour serialiser des machines (ou un autre mot mieux adapte)
This commit is contained in:
		
							parent
							
								
									9656c427b4
								
							
						
					
					
						commit
						fba9c9f3f1
					
				
							
								
								
									
										123
									
								
								MASTER/deploy_machine.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										123
									
								
								MASTER/deploy_machine.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,123 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# script de deploiement de machine sous linux via ssh, parceque ca me gonfle de le faire à la main tout le temps.
 | 
				
			||||||
 | 
					# le but sera de deployer les outils de base sur une becane au systeme tout neuf
 | 
				
			||||||
 | 
					# la becane aura besoin :
 | 
				
			||||||
 | 
					#   - d'un debian (ou dérivés)
 | 
				
			||||||
 | 
					#   - d'un serveur ssh (plus pratique pour deployer a distance)
 | 
				
			||||||
 | 
					#   - d'un user onimaro avec sudoers ALL=ALL(ALL) NOPASSWD:ALL en connexion mdp (on verra pour du root plus tard)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# y'a plus qu'a espérer que ce script ne reste pas 7 lignes de commentaire durant toute son existance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# parametres 
 | 
				
			||||||
 | 
					# param1 : machine_cible : url ou ip de la machine sur laquelle on souhaite déployer le bordel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					# help
 | 
				
			||||||
 | 
					if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "" ]
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					  echo
 | 
				
			||||||
 | 
					  echo "###########################################################################################################################"
 | 
				
			||||||
 | 
					  echo "Syntaxe : ${0##*/} machine_cible"
 | 
				
			||||||
 | 
					  echo "machine_cible = url ou ip de la machine cible"
 | 
				
			||||||
 | 
					  echo "###########################################################################################################################"
 | 
				
			||||||
 | 
					  echo
 | 
				
			||||||
 | 
					  exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					# check nombre d'arguments
 | 
				
			||||||
 | 
					if [ $# -ne 1 ] 
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					  echo "Mauvais nombre d'arguments : $#"
 | 
				
			||||||
 | 
					  echo "Il en faut 1"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# constantes a passer en fichier de parametres
 | 
				
			||||||
 | 
					user_cible=onimaro
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# recuperation des arguments
 | 
				
			||||||
 | 
					machine_cible=$1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					#            FONCTIONS           #
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					# fonction connexionSSH
 | 
				
			||||||
 | 
					# arguments :
 | 
				
			||||||
 | 
					# arg1 : commande lancée
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# passage de commandes vers la cible en SSH
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function connexionSSH
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # check nombre d'arguments
 | 
				
			||||||
 | 
					  if [ $# -ne 1 ] 
 | 
				
			||||||
 | 
					  then
 | 
				
			||||||
 | 
					    echo "Mauvais nombre d'arguments : $#"
 | 
				
			||||||
 | 
					    echo "Il en faut 1"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # recuperation arguments
 | 
				
			||||||
 | 
					  commande_cible=$1
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  [ $(ssh ${user_cible}@${machine_cible} "${commande_cible}") -eq 0 ] || ( echo erreur sur la commande ${commande_cible} && exit 4 )
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# fonction disaster_hunter
 | 
				
			||||||
 | 
					# arguments :
 | 
				
			||||||
 | 
					# aucun
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# on anticipe diverses catastrophes
 | 
				
			||||||
 | 
					function disaster_hunter
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # est-ce que le premier argument n'est pas une injection ?
 | 
				
			||||||
 | 
					  [ $(echo ${machine_cible} | wc -w) -eq 1 ] || ( echo "une url ou une IP, rien d'autre, SVP" && exit 2 )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # est-ce qu'on se connecte à la machine en SSH ?
 | 
				
			||||||
 | 
					  [ $(ssh ${machine_cible} "exit") -eq 0 ] || ( echo "machine ${machine_cible} injoignable." && exit 3 )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # verification des listes de paquets et de users
 | 
				
			||||||
 | 
					  for fichier in liste_paquets liste_users; do
 | 
				
			||||||
 | 
					    if [ -r ${fichier} ]; then
 | 
				
			||||||
 | 
					        OLD_IFS=$IFS
 | 
				
			||||||
 | 
					        IFS='\n'
 | 
				
			||||||
 | 
					        for paquet in $(cat ${fichier}); do
 | 
				
			||||||
 | 
					            [ $(echo ${paquet} | wc -w ) -eq 1 ] || shithappened=8
 | 
				
			||||||
 | 
					        done
 | 
				
			||||||
 | 
					        IFS=${OLD_IFS}
 | 
				
			||||||
 | 
					        [ ${shithappened} -eq 8 ] && echo "Le fichier ${fichier} ne doit contenir qu'un mot par ligne" && exit 6
 | 
				
			||||||
 | 
					        pas_de_${fichier}=0
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo "fichier ${fichier} illisible ou introuvable."
 | 
				
			||||||
 | 
					        pas_de_${fichier}=1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# fonction deploy_packages
 | 
				
			||||||
 | 
					# arguments :
 | 
				
			||||||
 | 
					# aucun
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# on deploie les paquets a partir du fichier de parametres liste_paquets
 | 
				
			||||||
 | 
					function deploy_packages
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  for paquet in $(cat ${fichier_paquets}); do
 | 
				
			||||||
 | 
					    connexionSSH ${paquet}
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					#              MAIN              #
 | 
				
			||||||
 | 
					##################################
 | 
				
			||||||
 | 
					disaster_hunter
 | 
				
			||||||
 | 
					[ ${pas_de_liste_paquets} -eq 0 ] && deploy_packages
 | 
				
			||||||
 | 
					[ ${pas_de_liste_users} -eq 0 ] && deploy_packages
 | 
				
			||||||
 | 
					deploy_users
 | 
				
			||||||
							
								
								
									
										3
									
								
								MASTER/liste_paquets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								MASTER/liste_paquets
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					vim
 | 
				
			||||||
 | 
					mlocate
 | 
				
			||||||
 | 
					net_tools
 | 
				
			||||||
							
								
								
									
										1
									
								
								MASTER/liste_users
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								MASTER/liste_users
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					invitay
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user