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