Browse code

tentative bientot avortee de faire un script inutile pour serialiser des machines (ou un autre mot mieux adapte)

onimaro authored on 22/01/2019 12:36:33
Showing 3 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,123 @@
0
+#!/bin/bash
1
+
2
+# script de deploiement de machine sous linux via ssh, parceque ca me gonfle de le faire à la main tout le temps.
3
+# le but sera de deployer les outils de base sur une becane au systeme tout neuf
4
+# la becane aura besoin :
5
+#   - d'un debian (ou dérivés)
6
+#   - d'un serveur ssh (plus pratique pour deployer a distance)
7
+#   - d'un user onimaro avec sudoers ALL=ALL(ALL) NOPASSWD:ALL en connexion mdp (on verra pour du root plus tard)
8
+
9
+# y'a plus qu'a espérer que ce script ne reste pas 7 lignes de commentaire durant toute son existance.
10
+
11
+# parametres 
12
+# param1 : machine_cible : url ou ip de la machine sur laquelle on souhaite déployer le bordel
13
+
14
+##################################
15
+# help
16
+if [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$1" = "" ]
17
+then
18
+  echo
19
+  echo "###########################################################################################################################"
20
+  echo "Syntaxe : ${0##*/} machine_cible"
21
+  echo "machine_cible = url ou ip de la machine cible"
22
+  echo "###########################################################################################################################"
23
+  echo
24
+  exit 0
25
+fi
26
+
27
+##################################
28
+# check nombre d'arguments
29
+if [ $# -ne 1 ] 
30
+then
31
+  echo "Mauvais nombre d'arguments : $#"
32
+  echo "Il en faut 1"
33
+  exit 1
34
+fi
35
+
36
+# constantes a passer en fichier de parametres
37
+user_cible=onimaro
38
+
39
+# recuperation des arguments
40
+machine_cible=$1
41
+
42
+
43
+
44
+##################################
45
+#            FONCTIONS           #
46
+##################################
47
+# fonction connexionSSH
48
+# arguments :
49
+# arg1 : commande lancée
50
+#
51
+# passage de commandes vers la cible en SSH
52
+#
53
+
54
+function connexionSSH
55
+{
56
+  # check nombre d'arguments
57
+  if [ $# -ne 1 ] 
58
+  then
59
+    echo "Mauvais nombre d'arguments : $#"
60
+    echo "Il en faut 1"
61
+    exit 1
62
+  fi
63
+
64
+  # recuperation arguments
65
+  commande_cible=$1
66
+  
67
+  [ $(ssh ${user_cible}@${machine_cible} "${commande_cible}") -eq 0 ] || ( echo erreur sur la commande ${commande_cible} && exit 4 )
68
+}
69
+
70
+# fonction disaster_hunter
71
+# arguments :
72
+# aucun
73
+# 
74
+# on anticipe diverses catastrophes
75
+function disaster_hunter
76
+{
77
+  # est-ce que le premier argument n'est pas une injection ?
78
+  [ $(echo ${machine_cible} | wc -w) -eq 1 ] || ( echo "une url ou une IP, rien d'autre, SVP" && exit 2 )
79
+
80
+  # est-ce qu'on se connecte à la machine en SSH ?
81
+  [ $(ssh ${machine_cible} "exit") -eq 0 ] || ( echo "machine ${machine_cible} injoignable." && exit 3 )
82
+
83
+  # verification des listes de paquets et de users
84
+  for fichier in liste_paquets liste_users; do
85
+    if [ -r ${fichier} ]; then
86
+        OLD_IFS=$IFS
87
+        IFS='\n'
88
+        for paquet in $(cat ${fichier}); do
89
+            [ $(echo ${paquet} | wc -w ) -eq 1 ] || shithappened=8
90
+        done
91
+        IFS=${OLD_IFS}
92
+        [ ${shithappened} -eq 8 ] && echo "Le fichier ${fichier} ne doit contenir qu'un mot par ligne" && exit 6
93
+        pas_de_${fichier}=0
94
+    else
95
+        echo "fichier ${fichier} illisible ou introuvable."
96
+        pas_de_${fichier}=1
97
+    fi
98
+  done
99
+}
100
+
101
+# fonction deploy_packages
102
+# arguments :
103
+# aucun
104
+# 
105
+# on deploie les paquets a partir du fichier de parametres liste_paquets
106
+function deploy_packages
107
+{
108
+  for paquet in $(cat ${fichier_paquets}); do
109
+    connexionSSH ${paquet}
110
+  done
111
+}
112
+
113
+
114
+
115
+
116
+##################################
117
+#              MAIN              #
118
+##################################
119
+disaster_hunter
120
+[ ${pas_de_liste_paquets} -eq 0 ] && deploy_packages
121
+[ ${pas_de_liste_users} -eq 0 ] && deploy_packages
122
+deploy_users
0 123
new file mode 100644
... ...
@@ -0,0 +1,3 @@
0
+vim
1
+mlocate
2
+net_tools
0 3
new file mode 100644
... ...
@@ -0,0 +1 @@
0
+invitay