-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.sh
88 lines (74 loc) · 1.95 KB
/
main.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/bash
usage(){
echo -e "Usage: $(basename $0) <module name> <user id> "
exit 1
}
check_params() {
# Display help
if [[ "$@" == "--help" || "$@" == "-h" ]]; then
usage
exit 0
fi
# Check for parameter
if [[ "$#" -ne 2 ]]; then
echo "This script needs the module name and user id."
usage
exit 1
fi
}
terraform_init(){
MODULENAME=$1
echo "Executing terraform MODULENAME: ${MODULENAME}"
# Clean up old plans
rm -f plan.tf
# Initialise backend
terraform init \
-input=false ${MODULENAME}/
terraform validate ${MODULENAME}/
# Create the corresponding workspace if it does not exist
terraform workspace select ${MODULENAME} ${MODULENAME}/ || \
terraform workspace new ${MODULENAME} ${MODULENAME}/
}
terraform_plan(){
MODULENAME=$1
USER_ID=$2
if [ ${MODULENAME} == "modifyec2permission" ]
then
USERID="ec2-${USER_ID}"
else
USERID="${USER_ID}"
fi
echo "plan terraform MODULENAME: ${MODULENAME}"
# Create the plan
terraform plan \
-var-file=users/${USERID}.tfvars \
-input=false ${MODULENAME}
}
terraform_deploy(){
MODULENAME=$1
USER_ID=$2
if [ ${MODULENAME} == "modifyec2permission" ]
then
USERID="ec2-${USER_ID}"
else
USERID="${USER_ID}"
fi
echo "deploying terraform MODULENAME: ${MODULENAME}"
# Create the plan
terraform plan \
-out=plan.tf \
-var-file=users/${USERID}.tfvars \
-input=false ${MODULENAME}
# Apply the execution plan
terraform apply -no-color -input=false plan.tf
}
check_params $1 $2
terraform_init $1 # $1 like "bucketpermission,modifyec2permission"
if [ $? -eq 0 ]
then
terraform_plan $1 $2 # $1 like "bucketpermission,modifyec2permission" $2 like userid
if [ $? -eq 0 ]
then
terraform_deploy $1 $2 # $1 like "bucketpermission,modifyec2permission" $2 like userid
fi
fi