4
4
5
5
cd $( dirname $0 ) /..
6
6
7
- mkdir -p group_vars/all
8
-
9
7
VARS=group_vars/all/vars.yml
10
8
VAULT_VARS=group_vars/all/secret.yml
11
9
VAULT_PASS=" .vault_pass.txt"
12
10
13
- cp bin/all.yml group_vars/all/vars.yml
11
+ if [ ! -d group_vars/all ]; then
12
+ mkdir -p group_vars/all
13
+ fi
14
+
15
+ tmp_vars=/tmp/tmpvars$$
16
+ cp bin/all.yml $tmp_vars
17
+
18
+ cleanup ()
19
+ {
20
+ rm -f $tmp_vars
21
+ if [ -r $VAULT_PASS ]; then
22
+ ansible-vault encrypt $VAULT_VARS
23
+ fi
24
+ }
25
+
26
+ trap cleanup EXIT
27
+
28
+ if [ -r $VAULT_VARS -a -r $VAULT_PASS ]; then
29
+ ansible-vault decrypt $VAULT_VARS
30
+ fi
31
+
32
+ get_stored_default ()
33
+ {
34
+ case $1 in
35
+ vault_* )
36
+ __r=$( grep " $1 " $VAULT_VARS 2> /dev/null| awk ' {print $2}' )
37
+ ;;
38
+ * )
39
+ __r=$( grep " $1 " $VARS 2> /dev/null| awk ' {print $2}' )
40
+ ;;
41
+ esac
42
+ __r=$( echo $__r | sed " s/^\([\" ']\)\(.*\)\1\$ /\2/g" )
43
+ if [ -z " $__r " ]; then echo " $2 " ; else echo " $__r " ; fi
44
+ }
14
45
15
46
prompt_with_default ()
16
47
{
17
- __prompt=" $( eval echo \" $1 [\$ $2 \] : \" )"
48
+ __get=" $3 " # set to grab the stored values
49
+ __def=" $( eval echo \$ $2 ) "
50
+ if [ -n " $__get " ]; then __def=" $( get_stored_default $2 $__def ) " ; fi
51
+ __prompt=" $( eval echo \" $1 [\$ __def\] : \" )"
18
52
read -p " $__prompt " ans
19
- eval " $2 = \$ {ans:-\$ $2 }"
53
+ eval " $2 = \$ {ans:-\$ __def }"
20
54
}
21
55
22
56
domain_name=domain.com
23
- prompt_with_default " Top level domain name" domain_name
57
+ prompt_with_default " Top level domain name" domain_name -stored
24
58
25
- echo ${domain_name} > inventory
59
+ inventory_hostname=$domain_name
60
+ if [ -r inventory ]; then inventory_hostname=$( cat inventory) ; fi
61
+ prompt_with_default " Hostname (for Ansible inventory)" inventory_hostname
62
+ echo ${inventory_hostname} > inventory
26
63
27
64
timezone='America/Los_Angeles'
28
- prompt_with_default " Server timezone" timezone
65
+ prompt_with_default " Server timezone" timezone -stored
29
66
30
67
vault_root_password=MyR00tPa33w0rd
31
- prompt_with_default " root password" vault_root_password
68
+ prompt_with_default " root password" vault_root_password -stored
32
69
33
70
deploy_user_name=deploy
34
- prompt_with_default " deploy user name" deploy_user_name
71
+ prompt_with_default " deploy user name" deploy_user_name -stored
35
72
vault_deploy_password=MyD3pl0yPas3w0rd
36
- prompt_with_default " deploy user password" vault_deploy_password
73
+ prompt_with_default " deploy user password" vault_deploy_password -stored
37
74
38
75
admin_email=postmaster@${domain_name}
39
- prompt_with_default " Admin reports email (for logwatch, etc.)" admin_email
76
+ prompt_with_default " Admin reports email (for logwatch, etc.)" admin_email -stored
40
77
41
78
vault_db_password=myDBpa88w0rd
42
- prompt_with_default " MariaDB root user password" vault_db_password
79
+ prompt_with_default " MariaDB root user password" vault_db_password -stored
43
80
44
81
vault_user_password=postf1x001a9
45
- prompt_with_default " MariaDB postfix user password" vault_user_password
82
+ prompt_with_default " MariaDB postfix user password" vault_user_password -stored
46
83
47
84
self_signed_certs=false
48
- prompt_with_default " Use self-signed certs (use for testing)" self_signed_certs
85
+ prompt_with_default " Use self-signed certs (use for testing)" self_signed_certs -stored
49
86
50
87
echo " "
51
88
echo " NOTE: When DB is initialized, database passwords are set."
@@ -54,7 +91,7 @@ echo ""
54
91
55
92
for i in domain_name deploy_user_name admin_email timezone self_signed_certs
56
93
do
57
- echo "$i: $(eval echo \$$i)" >> $VARS
94
+ echo "$i: $(eval echo \$$i)" >> $tmp_vars
58
95
done
59
96
60
97
vault_root_encrypted_password=$(./bin/mkpasswd "$vault_root_password")
74
111
75
112
vault_pass='This is my c00l vault password'
76
113
prompt_with_default " Your vault password" vault_pass
114
+
77
115
echo " $vault_pass " > $VAULT_PASS
78
- ansible-vault encrypt $VAULT_VARS
116
+ cp $tmp_vars $VARS
0 commit comments