Skip to content

Commit fd2fa6e

Browse files
committed
Initial commit
0 parents  commit fd2fa6e

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

terraforming_all_resources_aws.sh

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Generate .tf and .tfstate for existing AWS VPC resources
2+
# Author: Kyler Middleton, 7.6.2019
3+
4+
# Limitations/bugs
5+
# SG rules are stripped of descriptions during import for some reason
6+
7+
8+
#/bin/bash
9+
10+
# Establish directory for temp config files
11+
mkdir temp
12+
13+
# Export single region
14+
export AWS_REGION=us-east-2
15+
16+
# Find all files in AWS, generate terraform config for them in individual files in temp folder
17+
terraforming help | grep terraforming | grep -v help | awk '{print "terraforming", $2, ">", "temp/"$2".tf";}' | bash
18+
19+
# Build the .tfstate file as empty so it can be iterated on
20+
cat <<EOL > terraform.tfstate
21+
{
22+
"version": 1,
23+
"serial": 12,
24+
"modules": [
25+
{
26+
"path": [
27+
"root"
28+
],
29+
"outputs": {
30+
},
31+
"resources": {
32+
}
33+
}
34+
]
35+
}
36+
EOL
37+
38+
# Identify which resource .tf files aren’t empty (resources exist of that type) and generate tfstate for each existing resource
39+
wc -l temp/*.tf | grep ' [0,2-9].' | awk '{print $2}' | sed s/.tf// $1 | sed s:temp/:: | awk '{print "terraforming", $1, "--tfstate", "--merge=terraform.tfstate", "--overwrite";}' | bash
40+
41+
# Delete previous terraform_config.tf if it exists
42+
rm terraform_config.tf
43+
44+
# Build single file with all .tf configuration in it
45+
wc -l temp/*.tf | grep ' [0,2-9].' | awk '{print $2}' | sed s/.tf// $1 | sed s:temp/:: | awk '{print "terraforming", $1, ">>", "terraform_config.tf";}' | bash
46+
47+
# Fixup file for terraform 0.12
48+
terraform 0.12upgrade
49+
# Respond with yes when prompted
50+
51+
# Remove temp directory, no longer needed
52+
rm -rd temp

0 commit comments

Comments
 (0)