diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-03-16 19:14:29 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-03-16 20:13:46 +0100 |
commit | 69da835d04e741f4e85da3c473ba86c8801931fd (patch) | |
tree | 0cfb28cfd468a5b681f2b5af2b935c81d2221950 /bin | |
parent | c15f2234474ff8a8266e26856702b3c561050667 (diff) | |
download | Puppet-69da835d04e741f4e85da3c473ba86c8801931fd.tar.gz Puppet-69da835d04e741f4e85da3c473ba86c8801931fd.tar.zst Puppet-69da835d04e741f4e85da3c473ba86c8801931fd.zip |
Merge install scripts
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/install_script.sh (renamed from bin/install_script_ovh_vps_ssd.sh) | 78 | ||||
-rwxr-xr-x | bin/install_script_ovh_cloud_instance.sh | 114 |
2 files changed, 55 insertions, 137 deletions
diff --git a/bin/install_script_ovh_vps_ssd.sh b/bin/install_script.sh index b5b0efb..bd7f38b 100755 --- a/bin/install_script_ovh_vps_ssd.sh +++ b/bin/install_script.sh | |||
@@ -2,39 +2,63 @@ | |||
2 | 2 | ||
3 | usage() { | 3 | usage() { |
4 | cat <<EOF | 4 | cat <<EOF |
5 | $0 [options] | 5 | $(basename $0) [options] |
6 | --help,-h This help | 6 | --help,-h This help |
7 | --vps vps_name Name of the vps | 7 | |
8 | --password password Password of the vps (only useful in case of no reboot) | 8 | One of the following options is necessary: |
9 | --instance-id id Id of the cloud instance | ||
10 | --vps-id id Id of the vps | ||
11 | |||
12 | Optional arguments: | ||
13 | --password password Password of the host (only useful in case of no reboot and vps) | ||
9 | --reinstall-first Start with reinstalling the vps | 14 | --reinstall-first Start with reinstalling the vps |
10 | --host-user user Use another user (default: root) | 15 | --host-user user Use another user than the default one |
11 | --no-reboot Don't reboot | 16 | --no-reboot Don't reboot |
12 | --no-reboot-start Don't reboot to rescue at the beginning | 17 | --no-reboot-start Don't reboot to rescue at the beginning |
13 | --no-reboot-end Don't reboot to normal at the end | 18 | --no-reboot-end Don't reboot to normal at the end |
14 | --git-branch Use another puppet branch (default: master) | 19 | --git-branch branch Use another puppet branch (default: master) |
15 | --environment Environment to use for the installl (default: production) | 20 | --environment env Environment to use for the install (default: production) |
16 | EOF | 21 | EOF |
17 | } | 22 | } |
18 | 23 | ||
19 | set -e | 24 | set -e |
20 | 25 | ||
21 | host_user=root | ||
22 | git_branch=master | 26 | git_branch=master |
23 | environment=production | 27 | environment=production |
28 | host_user="" | ||
29 | password="" | ||
30 | T="" | ||
24 | 31 | ||
25 | while [ -n "$1" ]; do | 32 | while [ -n "$1" ]; do |
26 | case "$1" in | 33 | case "$1" in |
27 | --vps) | 34 | --instance-id) |
28 | vps_name="$2" | 35 | host_id="$2" |
36 | if [ -z "$host_user" ]; then | ||
37 | host_user="arch" | ||
38 | fi | ||
39 | if [ -z "$password" ]; then | ||
40 | password="x" | ||
41 | fi | ||
42 | [ -n "$T" ] && usage && exit 1 | ||
43 | T="ovh_cloud_instance" | ||
29 | shift | 44 | shift |
30 | ;; | 45 | ;; |
31 | --reinstall-first) | 46 | --vps-id) |
32 | reinstall_first=1 | 47 | host_id="$2" |
48 | if [ -z "$host_user" ]; then | ||
49 | host_user="root" | ||
50 | fi | ||
51 | [ -n "$T" ] && usage && exit 1 | ||
52 | T="ovh_vps_ssd" | ||
53 | shift | ||
33 | ;; | 54 | ;; |
34 | --password) | 55 | --password) |
35 | password="$2" | 56 | password="$2" |
36 | shift | 57 | shift |
37 | ;; | 58 | ;; |
59 | --reinstall-first) | ||
60 | reinstall_first=1 | ||
61 | ;; | ||
38 | --host-user) | 62 | --host-user) |
39 | host_user="$2" | 63 | host_user="$2" |
40 | shift | 64 | shift |
@@ -65,24 +89,27 @@ while [ -n "$1" ]; do | |||
65 | shift | 89 | shift |
66 | done | 90 | done |
67 | 91 | ||
92 | if [ -z "$T" -o -z "$host_id" ]; then | ||
93 | usage | ||
94 | exit 1 | ||
95 | fi | ||
96 | |||
68 | DIRECTORY=$(cd `dirname $0` && pwd) | 97 | DIRECTORY=$(cd `dirname $0` && pwd) |
69 | PYTHON_DIRECTORY="$DIRECTORY/../python" | 98 | PYTHON_DIRECTORY="$DIRECTORY/../python" |
70 | SCRIPTS="$DIRECTORY/../scripts" | 99 | SCRIPTS="$DIRECTORY/../scripts" |
71 | 100 | ||
72 | if [ -z "$vps_name" ]; then | ||
73 | read -p "Nom du vps : " vps_name | ||
74 | fi | ||
75 | |||
76 | if [ -n "$reinstall_first" ]; then | 101 | if [ -n "$reinstall_first" ]; then |
77 | echo "Réinstallation du système" | 102 | echo "Réinstallation du système" |
78 | python $PYTHON_DIRECTORY/reinstall_vps_server.py --use-current "$vps_name" | 103 | python $PYTHON_DIRECTORY/reinstall_$T.py --use-current "$host_id" |
79 | 104 | ||
80 | read -p "Appuyer sur une touche quand le serveur est prêt" ready | 105 | read -p "Appuyer sur une touche quand le serveur est prêt" ready |
81 | fi | 106 | fi |
82 | 107 | ||
83 | if [ -z "$no_reboot" -a -z "$no_reboot_start" ]; then | 108 | if [ -z "$no_reboot" -a -z "$no_reboot_start" ]; then |
84 | echo "Patienter le temps du reboot" | 109 | echo "Patienter le temps du reboot" |
85 | python $PYTHON_DIRECTORY/reboot_vps_server.py --rescue "$vps_name" | 110 | python $PYTHON_DIRECTORY/reboot_$T.py --rescue "$host_id" |
111 | |||
112 | read -p "Appuyer sur une touche quand l'instance a redémarré" ready | ||
86 | fi | 113 | fi |
87 | 114 | ||
88 | if [ -z "$password" ]; then | 115 | if [ -z "$password" ]; then |
@@ -92,19 +119,24 @@ if [ -z "$password" ]; then | |||
92 | fi | 119 | fi |
93 | 120 | ||
94 | ARCH_DIR=`mktemp -d` | 121 | ARCH_DIR=`mktemp -d` |
95 | ARCH_HOST_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_host_script.sh" | 122 | ARCH_HOST_SCRIPT="$SCRIPTS/$T/arch_host_script.sh" |
96 | ARCH_CHROOT_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_chroot_script.sh" | 123 | if [ -f "$SCRIPTS/$T/arch_chroot_script.sh" ]; then |
124 | ARCH_CHROOT_SCRIPT="$SCRIPTS/$T/arch_chroot_script.sh" | ||
125 | else | ||
126 | ARCH_CHROOT_SCRIPT="" | ||
127 | fi | ||
97 | ARCH_INSTALL_SCRIPT="$SCRIPTS/arch_install_script.sh" | 128 | ARCH_INSTALL_SCRIPT="$SCRIPTS/arch_install_script.sh" |
98 | ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/ovh_vps_ssd/arch_host_puppet_configuration_script.sh" | 129 | ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/$T/arch_host_puppet_configuration_script.sh" |
99 | ARCH_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/arch_puppet_configuration_script.sh" | 130 | ARCH_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/arch_puppet_configuration_script.sh" |
100 | ARCH_PUPPET_INITIAL_CONFIGURATION="$ARCH_DIR/puppet_variables.json" | 131 | ARCH_PUPPET_INITIAL_CONFIGURATION="$ARCH_DIR/puppet_variables.json" |
101 | 132 | ||
102 | trap "rm -rf $ARCH_DIR" EXIT | 133 | trap "rm -rf $ARCH_DIR" EXIT |
103 | 134 | ||
104 | #### Base installation stage | 135 | #### Base installation stage |
105 | python $PYTHON_DIRECTORY/get_initial_configuration.py $vps_name > $ARCH_PUPPET_INITIAL_CONFIGURATION | 136 | python $PYTHON_DIRECTORY/get_initial_configuration_$T.py $host_id > $ARCH_PUPPET_INITIAL_CONFIGURATION |
137 | host_address=$(python $PYTHON_DIRECTORY/get_initial_configuration_$T.py $host_id | jq -r '.ips.v4.ipAddress') | ||
106 | 138 | ||
107 | dest="$host_user@$vps_name" | 139 | dest="$host_user@$host_address" |
108 | files="$ARCH_HOST_SCRIPT $ARCH_CHROOT_SCRIPT $ARCH_PUPPET_INITIAL_CONFIGURATION $ARCH_INSTALL_SCRIPT" | 140 | files="$ARCH_HOST_SCRIPT $ARCH_CHROOT_SCRIPT $ARCH_PUPPET_INITIAL_CONFIGURATION $ARCH_INSTALL_SCRIPT" |
109 | 141 | ||
110 | $SCRIPTS/send_and_run.tcl "$dest" "$password" "$git_branch" "$environment" $files | 142 | $SCRIPTS/send_and_run.tcl "$dest" "$password" "$git_branch" "$environment" $files |
@@ -119,5 +151,5 @@ $SCRIPTS/send_and_run.tcl "$dest" "$password" "$git_branch" "$environment" $file | |||
119 | ### Installation finished | 151 | ### Installation finished |
120 | if [ -z "$no_reboot" -a -z "$no_reboot_end" ]; then | 152 | if [ -z "$no_reboot" -a -z "$no_reboot_end" ]; then |
121 | echo "Rebooting" | 153 | echo "Rebooting" |
122 | python $PYTHON_DIRECTORY/reboot_vps_server.py --local "$vps_name" | 154 | python $PYTHON_DIRECTORY/reboot_$T.py --local "$host_id" |
123 | fi | 155 | fi |
diff --git a/bin/install_script_ovh_cloud_instance.sh b/bin/install_script_ovh_cloud_instance.sh deleted file mode 100755 index e1c8a54..0000000 --- a/bin/install_script_ovh_cloud_instance.sh +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | usage() { | ||
4 | cat <<EOF | ||
5 | $0 [options] | ||
6 | --help,-h This help | ||
7 | --instance-id id Id of the instance | ||
8 | --reinstall-first Start with reinstalling the vps | ||
9 | --host-user user Use another user (default: arch) | ||
10 | --no-reboot Don't reboot | ||
11 | --no-reboot-start Don't reboot to rescue at the beginning | ||
12 | --no-reboot-end Don't reboot to normal at the end | ||
13 | --git-branch Use another puppet branch (default: master) | ||
14 | --environment Environment to use for the installl (default: production) | ||
15 | EOF | ||
16 | } | ||
17 | |||
18 | set -e | ||
19 | |||
20 | host_user=arch | ||
21 | git_branch=master | ||
22 | environment=production | ||
23 | |||
24 | while [ -n "$1" ]; do | ||
25 | case "$1" in | ||
26 | --instance-id) | ||
27 | instance_id="$2" | ||
28 | shift | ||
29 | ;; | ||
30 | --reinstall-first) | ||
31 | reinstall_first=1 | ||
32 | ;; | ||
33 | --host-user) | ||
34 | host_user="$2" | ||
35 | shift | ||
36 | ;; | ||
37 | --no-reboot) | ||
38 | no_reboot=1 | ||
39 | ;; | ||
40 | --no-reboot-start) | ||
41 | no_reboot_start=1 | ||
42 | ;; | ||
43 | --no-reboot-end) | ||
44 | no_reboot_end=1 | ||
45 | ;; | ||
46 | --git-branch) | ||
47 | git_branch="$2" | ||
48 | shift | ||
49 | ;; | ||
50 | --environment) | ||
51 | environment="$2" | ||
52 | shift | ||
53 | ;; | ||
54 | --help|-h) | ||
55 | usage | ||
56 | exit 0 | ||
57 | ;; | ||
58 | esac | ||
59 | |||
60 | shift | ||
61 | done | ||
62 | |||
63 | DIRECTORY=$(cd `dirname $0` && pwd) | ||
64 | PYTHON_DIRECTORY="$DIRECTORY/../python" | ||
65 | SCRIPTS="$DIRECTORY/../scripts" | ||
66 | |||
67 | if [ -z "$instance_id" ]; then | ||
68 | read -p "Id de l'instance : " instance_id | ||
69 | fi | ||
70 | |||
71 | if [ -n "$reinstall_first" ]; then | ||
72 | echo "Réinstallation du système" | ||
73 | python $PYTHON_DIRECTORY/reinstall_cloud_instance.py --use-current "$instance_id" | ||
74 | |||
75 | read -p "Appuyer sur une touche quand le serveur est prêt" ready | ||
76 | fi | ||
77 | |||
78 | if [ -z "$no_reboot" -a -z "$no_reboot_start" ]; then | ||
79 | echo "Patienter le temps du reboot" | ||
80 | python $PYTHON_DIRECTORY/reboot_cloud_instance.py --rescue "$instance_id" | ||
81 | |||
82 | read -p "Appuyer sur une touche quand l'instance a redémarré" ready | ||
83 | fi | ||
84 | |||
85 | ARCH_DIR=`mktemp -d` | ||
86 | ARCH_HOST_SCRIPT="$SCRIPTS/ovh_cloud_instance/arch_host_script.sh" | ||
87 | ARCH_INSTALL_SCRIPT="$SCRIPTS/arch_install_script.sh" | ||
88 | ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/ovh_cloud_instance/arch_host_puppet_configuration_script.sh" | ||
89 | ARCH_PUPPET_CONFIGURATION_SCRIPT="$SCRIPTS/arch_puppet_configuration_script.sh" | ||
90 | ARCH_PUPPET_INITIAL_CONFIGURATION="$ARCH_DIR/puppet_variables.json" | ||
91 | |||
92 | trap "rm -rf $ARCH_DIR" EXIT | ||
93 | |||
94 | #### Base installation stage | ||
95 | python $PYTHON_DIRECTORY/get_initial_configuration_cloud_instance.py $instance_id > $ARCH_PUPPET_INITIAL_CONFIGURATION | ||
96 | host_address=$(python $PYTHON_DIRECTORY/get_initial_configuration_cloud_instance.py $instance_id | jq -r '.ips.v4.ipAddress') | ||
97 | |||
98 | dest="$host_user@$host_address" | ||
99 | files="$ARCH_HOST_SCRIPT $ARCH_PUPPET_INITIAL_CONFIGURATION $ARCH_INSTALL_SCRIPT" | ||
100 | |||
101 | $SCRIPTS/send_and_run.tcl "$dest" "" "$git_branch" "$environment" $files | ||
102 | |||
103 | ### Role specific stage | ||
104 | read -p "Press key when LDAP is configured" i | ||
105 | |||
106 | files="$ARCH_HOST_PUPPET_CONFIGURATION_SCRIPT $ARCH_PUPPET_CONFIGURATION_SCRIPT" | ||
107 | |||
108 | $SCRIPTS/send_and_run.tcl "$dest" "" "$git_branch" "$environment" $files | ||
109 | |||
110 | ### Installation finished | ||
111 | if [ -z "$no_reboot" -a -z "$no_reboot_end" ]; then | ||
112 | echo "Rebooting" | ||
113 | python $PYTHON_DIRECTORY/reboot_cloud_instance.py --local "$instance_id" | ||
114 | fi | ||