From 40b3464c8bbbb417f9bd9f6c0af87808375689f3 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sat, 22 Oct 2022 18:02:32 -0400 Subject: [PATCH 01/20] Update launch.py --- projects/hello-world/hello-world-python/launch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/hello-world/hello-world-python/launch.py b/projects/hello-world/hello-world-python/launch.py index 3a161a5e..1ac542e4 100755 --- a/projects/hello-world/hello-world-python/launch.py +++ b/projects/hello-world/hello-world-python/launch.py @@ -2,6 +2,6 @@ helloworld = Flask(__name__) @helloworld.route("/") def run(): - return "{\"message\":\"Hello World Python v1\"}" + return "{\"message\":\"Hello World Python v2\"}" if __name__ == "__main__": helloworld.run(host="0.0.0.0", port=int("5000"), debug=True) \ No newline at end of file From 7264f63c0125b3c7097def6cd16d96e1d69c8644 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Tue, 25 Oct 2022 21:10:27 -0400 Subject: [PATCH 02/20] Update index.js --- projects/hello-world/hello-world-nodejs/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/hello-world/hello-world-nodejs/index.js b/projects/hello-world/hello-world-nodejs/index.js index 3d23b495..9e7306e1 100755 --- a/projects/hello-world/hello-world-nodejs/index.js +++ b/projects/hello-world/hello-world-nodejs/index.js @@ -3,7 +3,7 @@ const process = require('process'); var expressapp = express() expressapp.get('/', function (req, res) { - res.send('{"message":"Hello World JavaScript v1"}') + res.send('{"message":"Hello World JavaScript v2"}') }) expressapp.listen(5000, function () { console.log('Ready on port 5000!') From 75a4a9a07b2ed9eb33c89372733d5244783e2fa4 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Thu, 1 Dec 2022 22:18:18 -0500 Subject: [PATCH 03/20] Create main.tf --- terraform/Terraform/01-terraform-basics/main.tf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 terraform/Terraform/01-terraform-basics/main.tf diff --git a/terraform/Terraform/01-terraform-basics/main.tf b/terraform/Terraform/01-terraform-basics/main.tf new file mode 100644 index 00000000..521cb844 --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/main.tf @@ -0,0 +1,3 @@ +provider "aws" { + region = "us-east-1" +} \ No newline at end of file From fd22741d370ad29cf2f99b69fa68eaa84f32630d Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sat, 3 Dec 2022 20:18:41 -0500 Subject: [PATCH 04/20] Update main.tf --- terraform/Terraform/01-terraform-basics/main.tf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/terraform/Terraform/01-terraform-basics/main.tf b/terraform/Terraform/01-terraform-basics/main.tf index 521cb844..696f4202 100644 --- a/terraform/Terraform/01-terraform-basics/main.tf +++ b/terraform/Terraform/01-terraform-basics/main.tf @@ -1,3 +1,5 @@ provider "aws" { region = "us-east-1" + version = "~> 2.46" + } \ No newline at end of file From 4c19e52d71d26330794070b61c7a27d5a13b949c Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Thu, 29 Dec 2022 19:45:55 -0500 Subject: [PATCH 05/20] update to terraform --- terraform/05-ec2-instances/main.tf | 34 ++++++ terraform/05-ec2-instances/output.tf | 3 + terraform/05-ec2-instances/output1 | 3 + .../01-terraform-basics/04-maps/main.tf | 21 ++++ .../05-ec2-instances/main.tf | 14 +++ .../Terraform/01-terraform-basics/iam.tfplan | Bin 0 -> 6469 bytes .../Terraform/01-terraform-basics/main.tf | 12 +- .../Terraform/01-terraform-basics/outputs.tf | 9 ++ .../01-terraform-basics/resources.tf | 10 ++ .../terraform.tfstate copy.backup | 103 ++++++++++++++++++ .../02-more-terraform-basics/main.tf | 13 +++ .../02-more-terraform-basics/terraform.tfvars | 1 + terraform/Terraform/03-lists-and-sets/main.tf | 14 +++ terraform/Terraform/04-maps/04-maps/main.tf | 14 +++ terraform/Terraform/05-ec2-instances | 5 + 15 files changed, 252 insertions(+), 4 deletions(-) create mode 100644 terraform/05-ec2-instances/main.tf create mode 100644 terraform/05-ec2-instances/output.tf create mode 100644 terraform/05-ec2-instances/output1 create mode 100644 terraform/Terraform/01-terraform-basics/04-maps/main.tf create mode 100644 terraform/Terraform/01-terraform-basics/05-ec2-instances/main.tf create mode 100644 terraform/Terraform/01-terraform-basics/iam.tfplan create mode 100644 terraform/Terraform/01-terraform-basics/outputs.tf create mode 100644 terraform/Terraform/01-terraform-basics/resources.tf create mode 100644 terraform/Terraform/01-terraform-basics/terraform.tfstate copy.backup create mode 100644 terraform/Terraform/02-more-terraform-basics/main.tf create mode 100644 terraform/Terraform/02-more-terraform-basics/terraform.tfvars create mode 100644 terraform/Terraform/03-lists-and-sets/main.tf create mode 100644 terraform/Terraform/04-maps/04-maps/main.tf create mode 100644 terraform/Terraform/05-ec2-instances diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf new file mode 100644 index 00000000..511a6314 --- /dev/null +++ b/terraform/05-ec2-instances/main.tf @@ -0,0 +1,34 @@ + +provider "aws" { + region = "us-east-1" +} + +//HTTP Server -> SG +//SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] +resource "aws_security_group" "http_server_sg" { + name = "http_server_sg" + vpc_id = "vpc-02523c91a94e96bca" + + ingress { + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + from_port = 0 + to_port = 0 + protocol = -1 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + name = "http_server_sg" + } +} \ No newline at end of file diff --git a/terraform/05-ec2-instances/output.tf b/terraform/05-ec2-instances/output.tf new file mode 100644 index 00000000..17383c82 --- /dev/null +++ b/terraform/05-ec2-instances/output.tf @@ -0,0 +1,3 @@ +output "aws_security_group_http_server_details" { + value = "aws_security_group_http_server_sg" +} \ No newline at end of file diff --git a/terraform/05-ec2-instances/output1 b/terraform/05-ec2-instances/output1 new file mode 100644 index 00000000..551c357d --- /dev/null +++ b/terraform/05-ec2-instances/output1 @@ -0,0 +1,3 @@ + output "aws_security_group_http_server_details" { + value = aws_security_group_http_server_sg + } \ No newline at end of file diff --git a/terraform/Terraform/01-terraform-basics/04-maps/main.tf b/terraform/Terraform/01-terraform-basics/04-maps/main.tf new file mode 100644 index 00000000..16f62333 --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/04-maps/main.tf @@ -0,0 +1,21 @@ +variable "users" { + default = { + ravs : { country : "Netherlands", department : "ABC" }, + tom : { country : "US", department : "DEF" }, + jane : { country : "India", department : "XYZ" } + } +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_users" { + for_each = var.users + name = each.key + tags = { + #country:each.value + country : each.value.country + department : each.value.department + } +} \ No newline at end of file diff --git a/terraform/Terraform/01-terraform-basics/05-ec2-instances/main.tf b/terraform/Terraform/01-terraform-basics/05-ec2-instances/main.tf new file mode 100644 index 00000000..7332e9b4 --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/05-ec2-instances/main.tf @@ -0,0 +1,14 @@ +variable "names" { + default = ["ravs","sats","ranga", "tom","jane"] +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_users" { + # count = length(var.names) + # name = var.names[count.index] + for_each = toset(var.names) + name = each.value +} \ No newline at end of file diff --git a/terraform/Terraform/01-terraform-basics/iam.tfplan b/terraform/Terraform/01-terraform-basics/iam.tfplan new file mode 100644 index 0000000000000000000000000000000000000000..13a37301cb87b0e410689dd2df58d6a59ac99f3e GIT binary patch literal 6469 zcmaKQWl)^U*7e|!5F8Q+5*!ko0E4>*cXxLff&>e}f=h7s;7$e!?jCf4Cb$ni6By(r z@B7`Gb54Etu70|n>L0zUYj^FnS1;8!D5yjL%!k3C8mA(FO*8;f zb9ubQp{`0Cxh%2C<9=O~_1bVey~hOfY6NkIy5~;PqyP7ZbenK z&hhc_?fzU2V&ZCpJC(i95;_FfW1z(@ew)NgLD2n8bv9|c2lG(wk>n{_ny%-8zZZ1O z({QFU5Vgp}*@@!G6Rb@neOU(o({yZOXD8u#ytUlIq&FYE%@e$Vl%lcSF?X(OE}ZIg zRmn02A{-Go@2B@HF!Hklpn)LO{jK@=2C30Ff=%vF$PW=y!;O%Q4%(ldbhPuLK%uX< zIEshM3Js>GH|?MwB42E5z`0pf!UBjNRoOLSn3{4wi>8(ZTqFE{VTNQ}cg1Cjwc-*k zfmZ@LsfwR0IbjoU%0S{az$!;i-U=!FaJYj9fp4;0+UO z6gNBXx^_Xor=BQCsVC+(xPoo%l%{|csB?|5V|yE8Yr8i1Nw%@U$My;13b5e&6*GkS z=SwT3SGac`TfG%JSH6${|BdUWiZ~;(jVa%}m=xsMaFRVWiL;O9DDH9n{QY)Ov7lEb#;-v^$EiPEEZCH`mfGFy%Y?hqo~>NJw2GO|Q1z6#kklmj0lHTtdfJA<+4v z6fMR5EX|7ex;FZd+GB-{M`#Vot$fEtzPW;=`SMxW0d5$>pVjwIx(8K2jGb3BWXQOx z`Mpn77=g9ZYqvXBRQ$>%f&6-fIOeoXna1~qVz!hl{Xw?kU`np&8m4RKT)IiHy&(BT2${NOA9(chOaTUo!q#%+?EQGKjJK9Pi8OvV!8vU)Zjg5ob5+ zs-5;$2P|CT%qGmp$!`J^GwdhbZEc>~4bPBHCU;i0XjBN(7rOF$7#N+K)1DNhYt_Ro z=`PV5?&@pj1$T!^u{Z2Bx^Lz>H9>eibc?KR6EB@& zI7{BhL@k^I4;(Bk&h|)_Wlc&Y-|09VKZ5BClYM$kXQY2NPj^>dSE_0Wpxuk7(?nRX zPMjs<+JTgfG$QGnb3LS_BhMm<82So!YPhJX?ZPhM>f{wkHB&-zJ`<1U!u@e*YH`Yt z1w`cYBytbb8Z{67(oVzY>1@jG4K0nBAf~GTt{Aqg>V|%g zD+R5G-%q1fqjNRi7y=qeAr6`d)zl25eE|HG7bc2)j)6FHPVk_+jRF^gn|ipAO}9Gd zh)d9V*_Mv@>Ca5Qi~suu_%4oeA*<>#?-v6;!(f9A_i;*b3}FMj=(rg2Gv`0Xu~Js; z`P#%U51+z7@k6%83 zYXpg%+PbGO$7_*_RiL+;51Pdic01wiw|Ix#8TIbx*urUeFu^*&@Y|uP47!s!Wz`o1%I!AjDlYElYJB1b( zwUF**>*u=BW)z%yC-v^P`=d60wmJT=0oKsYG|)4VnyPAHI9xn#_!T zuc4Zez(u2A493=$^KMtW*tb4Ci`XQywyhW{zgHQOGJ6Y8v_l<>tt!(^&MGStEs>jJ z8Xu3(&6*Qct}PGD36zxY+CNW>O23-1(%h54WR@;X^i)E8J`tS9w=jP~sgDE`TkOf! z;Ivba*D;}4NofIpy2{h(L5P3Cl24r_8_K>_LXQhlJ+Wxq-H;7QeNTkfO~~3Rbg}ay zsy7$Z>B8OVZvMvSd-mh*Gnnn0e)+uRLgtJltJAO~-Qr@LOC8Y^@XtsUFG zebHyP0U5j~ElHYrd*=uvXWW*sm%91_gGrXyy)TwA>q3RahZk0|E@oL~Hja>dG4sLR zW$Rp2uAdHfT%I#{UG-IM#t`@5-Sh8fJdOfeZ(zh2v>IsXhtYm4$4bA|5MCFb5rsE8({cA+(&K`KLpH$fuMshr;lLgVl_kZbmc=cZL;g@(mef2or@d?&)`cIh z_;h{cg*Q`#lt?rJ4kagO?Vc3PvatEw7`mpe`t zn_WjJkWymghhAs;W@vj(x8C)(`h;?(MBT2?Mpr?Xg$KTu@wjk?d+;#pO3qOt=A&G2 zd|_3J3*q(U<^CH?L#i2Ptz@iLH!V34SV+a@gx}OTG)(HYwLTX(l;nxvs0!dK zX`%69bd;N0(585*SP_ZC+(a#ACLuNS_Ht{At3>*2{1lN#Pp@VC$-+O=CPl;>tW2<1 zn<&bQBXFqqxej>+@n}WzqJVpHfK=(W{F;Vu`#xN6spFW#MDscm7Wt@j5+M~>ik#Fc`J5O2-~WJ)ra0&6M3o*tMGL)Q;~Ep z6TbaOs_i-1Wwy!^eMl@%xSp#(u@4`2MvMBPGNpHVLodN5SCrIZfYgr#Sr*ZReFcuD ztqC1)J+Dfm$hJ3DjzMBL#2%bS;S;XesD{E!S!$zxvwiOp$jF|qFuLpg*iN`)9YU=A zN+AS0px@yV?At~t*)pB>sfX4ar@3h8kzbbhfG23@eN&1@&Z^nt_-gAk`w{K1a(n$0r=~A%n5GWkKDCq|+I4&PaJ>VP6Db zkBW)=c+48R471(yUhN*C#p?|E5Fhf8YCrbpA=m!pAW?qXsyk?i6|4lTQvDvHjvKC| zwJV8FHeG_9uJp{_tU~QAPn|fL zchDkyT0jq2Wr0H@E-eHYp-;Y9c7CxZsqZe~(Oq&ED%wV?GSfhrc{!<*3h5MGHJrSd z8(cWquS8s2^)`wgnJoK5RoWUp!!IIV2|PEfT?o9h%!T%CTtIK%U7NwZd_3I(&mpwu zA_2uZUNZqHytgOD{_9U2VGyc|eJH$C5dpv6-td8MkA9xIxYkgHUYNAcjErnD&9%SL z7K0|B64zHHkPB1Yvj0mt4Bp{!-(Ua$U%398a=`wh99Ui5tvvrNA1bwuUDknkx2v5r zBRf4|A@xZvE1pZQXr$YU!5AweWLfeYK+g%!JhT4$00s4cP|X!VqhbZ%@zwaRaqpXh zvHC;$m*YjXzS;;OljoX`B+AU|We>Gy96S$^A*Ih;+idvz6S;%%%#>fcrDxFbEJF2K zzFIA~$u!EAFdOA9*mL0@Vfx^7%^3ES5>0}slv0T5HJDqB{Fbxy=1VXOR7W+{#(IUG zeph~#B3{Rej)ad6i=eE$5Xl#2dBFy^dTU#-nTS^EJ^+KCs~DK|HLB@>cJx0Dt8jng zmMK;c=~lRJG=Xs`+M=v;9QQ6ijx6DhUhDGPxxquXAj&L3zYGd8h*sY$?c!km$ZM+J zUNMT#%APC7UxQrE#LF}loD8+AfgJSfN&3c2$D$KD^I6lxt?G8M*aKq?v;slZu4kf7 z^g+=bk!tFV)N_P1xj|^@?HG}4@`oeck{dTJuF*H5Jjy-oIm%mtdLp5m zeDwqq3#3x)zon=_a|TP>4ITkkU_^^%2R(0JGBPC*YI4r_SnOwLJ{mciF%_#0$1ObW z4f2=pF2i3j9&^A`=Xi7@UsxWM^HTc)gtkClRk1oz#QQA1iAYYtf?;(I%pUjfUUR#5 z^Dto59KNdkIp>rWD#tx?xCf3{~M7p`L!R+_L2lcBcxZwuFlN_jLBnE@$@eX^xmVQ zY3ZH$a$-yMk1fsmF?RW|4wxrxIcS3R;wTG$H0$_+ajD8tB*>Am;tRW-r0=vUs$I*| z%barfcAePfsBA{X@#zwYduePa;$si%cpi;o8_@8-(~PxPiZFk}lvvMs01|}`Ztxo+ zAgm&uE;hka5Xi8tW0=|{|-bop2HF>D97`ZyY*-xv#&--GN|d?x;>+K+~BE z>^}J5&irg68N*A(5eQ$A9P4bEh8Ii@igwhk-8gtg-nL{cuLyh^M8t}=icVkN+ZsVJ z`sd-P4M*j`A|)HSr&9UKSJm%Ubh;r~{ug^RPboejGa zE4!1Koim$<^}h=?I-%P+m;*cPSng{u@kCiGtp4$!aQ|y*W^Wc`0-`0Oin3#o&`Ojd z`^6_Hcjx|rCC?_R`!PoX5~qnMcI>8LcF_Wo{iGb zphY~HzzU1qrc;Wm6pMje0%doo(c*NJWV3CKZq|G}jGxKFVTCh@Tk+!i$!Ei8$9`V2 zk}fJJUsO?KyDy-;AScc&iWs~B#X3diz9oF_?qiIZ%l44~t@=P)OOj{BDK^1R1(i|C zlZ?7o>Q>o~=dBJ61(&ock{Et@LF5~=GA8SZ@eD}H#oH~9zVez#;^l;ZS!?h?0}D8b zj`#2NJdNQlZMgwEY?PE!A(o@I`j!Xi*KlzwHw4bVk}Rj(()}C>0B}bBZ%HQpTasNY z-#S`>*z7?rf2_F3ZFSYshxvdrql<+Do2`Z8zi(D^+8}Cnff(%seoYiOG8h5{ zEv3@_GL?|9<#`lAgMD6GGaq;ebuTYBSTgHCsA9{FBlJYSA5_|m-g_Om4PWx6TsAKc zzY9#f6!A+4pSe?3t{6T#nki5jg%O1ZZ{E3rE8z!rzD+(~z9t|rT8w%iGyFG=wk%-8 zhMnGVsvl68+}!8ax_jitob~xuZJ?nr&L|8ocYb5<#N#sft3Dhe$Pd+CqUtalg=~0U zIW@4vxdE#Yh^_v53LTW{5zhve9WOUSV-``T6f3c`Cng>c6?_Pu&?7d2fVE=z-f(wnxY=5!{gxC7y4?XD9^MEi<_I1W(eao zl%AoF9<9)!>q?rmA&jKZPTeVGzeIknn3^|Dm%DU=W$cNs42dH@Td8qz>+CMs+TPfF zl>}iZ@_tHt>J-!Smq=cw=(cG^3Z}t9Y^9tdN!Uya6Hk@H5Bo?PQrS=*HDVdrS8y{| zq`7Hi8Do;YDl=4PqnuA}wqadOq^)mbLe)`ENaOV-%qf^%F<3b#;s8 zZLZ5C(Mg;pE8+d1)?H5Qb_iwl)#*7j?K!p` zgyzXLYE|OY`)`fWoNFH>2ss^!(cn}3gl)kpMXQBwlbi){5kn$Vsue*AJ6)6+*w%r? znn`V@Z@*Cw6q8{B@c;@~Jsh4E8LQtDKjtaw$PuBoF3(8`9xH+L`(3RlwGuGKIZAoA zu|E@Sa@7{U=Ea)I(N55k?JR2Kl@IG?BBWnlusi#fINUVyZK^=9AxdYjtTz(*DLbuI z<7o9*)oz|5Wq+BgJ;6t7j&}#nNpsvQ2FDVbEj(pKrr(({*1qQXji5riV=&vpUg{UT zrSiDLIVz?nbi;W`k}fVb6SIw3Mfy&>|4@#Bo6}7*Wq$lq`>f+k`**oY+K+=-SW1}k zG7g-T@cag2%CubyF@1ZT$69GgI}%DV3WN!w+8;PQ@Y(;{{dc+c&k%p5yWjls2TuuphxpHZn20O$`R=Yhr(p8j6_4-EU&xc~qF literal 0 HcmV?d00001 diff --git a/terraform/Terraform/01-terraform-basics/main.tf b/terraform/Terraform/01-terraform-basics/main.tf index 696f4202..e0f83622 100644 --- a/terraform/Terraform/01-terraform-basics/main.tf +++ b/terraform/Terraform/01-terraform-basics/main.tf @@ -1,5 +1,9 @@ provider "aws" { - region = "us-east-1" - version = "~> 2.46" - -} \ No newline at end of file + region = "us-east-1" +} + +# resource "aws_s3_bucket_versioning""versioning_example"{ +# bucket="aws_s3_bucket.my_s3_bucket.id" +#versioning_configuration { +# status= "Enabled" +#} diff --git a/terraform/Terraform/01-terraform-basics/outputs.tf b/terraform/Terraform/01-terraform-basics/outputs.tf new file mode 100644 index 00000000..e4a2a6a6 --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/outputs.tf @@ -0,0 +1,9 @@ +output "my_s3_bucket_versioning" { + value = aws_s3_bucket.my_s3_bucket.versioning[0].enabled +} +output "my_s3_bucket_complete_details" { + value = aws_s3_bucket.my_s3_bucket +} +output "my_iam_user_complete_details" { + value = aws_iam_user.my_iam_user +} \ No newline at end of file diff --git a/terraform/Terraform/01-terraform-basics/resources.tf b/terraform/Terraform/01-terraform-basics/resources.tf new file mode 100644 index 00000000..89a55642 --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/resources.tf @@ -0,0 +1,10 @@ +#plan-execute +resource "aws_s3_bucket" "my_s3_bucket" { + bucket = "my-s3-bucket-in28minutes-kahg-002" + versioning { + enabled = true + } +} +resource "aws_iam_user" "my_iam_user" { + name = "my_iam_user_gkk_update" +} \ No newline at end of file diff --git a/terraform/Terraform/01-terraform-basics/terraform.tfstate copy.backup b/terraform/Terraform/01-terraform-basics/terraform.tfstate copy.backup new file mode 100644 index 00000000..5fc7a07a --- /dev/null +++ b/terraform/Terraform/01-terraform-basics/terraform.tfstate copy.backup @@ -0,0 +1,103 @@ +{ + "version": 4, + "terraform_version": "1.3.6", + "serial": 19, + "lineage": "d9c75993-9bb6-efe5-f34a-bd19bc924d88", + "outputs": {}, + "resources": [ + { + "mode": "managed", + "type": "aws_iam_user", + "name": "my_iam_users", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "index_key": "jane", + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::355852034624:user/jane", + "force_destroy": false, + "id": "jane", + "name": "jane", + "path": "/", + "permissions_boundary": null, + "tags": null, + "tags_all": {}, + "unique_id": "AIDAVFWTPEJAMCULGW6SN" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + }, + { + "index_key": "ranga", + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::355852034624:user/ranga", + "force_destroy": false, + "id": "ranga", + "name": "ranga", + "path": "/", + "permissions_boundary": null, + "tags": null, + "tags_all": {}, + "unique_id": "AIDAVFWTPEJAO4FJMFFZB" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + }, + { + "index_key": "ravs", + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::355852034624:user/ravs", + "force_destroy": false, + "id": "ravs", + "name": "ravs", + "path": "/", + "permissions_boundary": null, + "tags": null, + "tags_all": {}, + "unique_id": "AIDAVFWTPEJAG42DV5GUV" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + }, + { + "index_key": "sats", + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::355852034624:user/sats", + "force_destroy": false, + "id": "sats", + "name": "sats", + "path": "/", + "permissions_boundary": null, + "tags": null, + "tags_all": {}, + "unique_id": "AIDAVFWTPEJAGJDVS3IWP" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + }, + { + "index_key": "tom", + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::355852034624:user/tom", + "force_destroy": false, + "id": "tom", + "name": "tom", + "path": "/", + "permissions_boundary": null, + "tags": null, + "tags_all": {}, + "unique_id": "AIDAVFWTPEJAJNNDAAHPS" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + } + ], + "check_results": null +} diff --git a/terraform/Terraform/02-more-terraform-basics/main.tf b/terraform/Terraform/02-more-terraform-basics/main.tf new file mode 100644 index 00000000..bb30f92e --- /dev/null +++ b/terraform/Terraform/02-more-terraform-basics/main.tf @@ -0,0 +1,13 @@ +variable "iam_user_name_prefix" { + type = string #any, number, bool, list, map, set, object, tuple + default = "my_iam_user" +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_users" { + count = 1 + name = "${var.iam_user_name_prefix}_${count.index}" +} \ No newline at end of file diff --git a/terraform/Terraform/02-more-terraform-basics/terraform.tfvars b/terraform/Terraform/02-more-terraform-basics/terraform.tfvars new file mode 100644 index 00000000..5e3e390e --- /dev/null +++ b/terraform/Terraform/02-more-terraform-basics/terraform.tfvars @@ -0,0 +1 @@ +iam_user_name_prefix = "VALUE_FORM_TERRAFORM_TFVARS" \ No newline at end of file diff --git a/terraform/Terraform/03-lists-and-sets/main.tf b/terraform/Terraform/03-lists-and-sets/main.tf new file mode 100644 index 00000000..7332e9b4 --- /dev/null +++ b/terraform/Terraform/03-lists-and-sets/main.tf @@ -0,0 +1,14 @@ +variable "names" { + default = ["ravs","sats","ranga", "tom","jane"] +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_users" { + # count = length(var.names) + # name = var.names[count.index] + for_each = toset(var.names) + name = each.value +} \ No newline at end of file diff --git a/terraform/Terraform/04-maps/04-maps/main.tf b/terraform/Terraform/04-maps/04-maps/main.tf new file mode 100644 index 00000000..7332e9b4 --- /dev/null +++ b/terraform/Terraform/04-maps/04-maps/main.tf @@ -0,0 +1,14 @@ +variable "names" { + default = ["ravs","sats","ranga", "tom","jane"] +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_users" { + # count = length(var.names) + # name = var.names[count.index] + for_each = toset(var.names) + name = each.value +} \ No newline at end of file diff --git a/terraform/Terraform/05-ec2-instances b/terraform/Terraform/05-ec2-instances new file mode 100644 index 00000000..68638998 --- /dev/null +++ b/terraform/Terraform/05-ec2-instances @@ -0,0 +1,5 @@ +US East (N. Virginia) +Amazon Machine Image (AMI) ami-0b5eea76982371e91 +Instance Type - t2.micro +VPC - vpc-02523c91a94e96bca +Security Group \ No newline at end of file From 76ce5314735b65fb728253c173b110c83bd5a567 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Fri, 6 Jan 2023 14:35:49 -0500 Subject: [PATCH 06/20] made updates --- terraform/05-ec2-instances/main.tf | 27 ++++++++++++++++++++++++++- terraform/05-ec2-instances/output.tf | 4 ++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf index 511a6314..5214ebed 100644 --- a/terraform/05-ec2-instances/main.tf +++ b/terraform/05-ec2-instances/main.tf @@ -1,4 +1,6 @@ - +variable "aws_key_pair" { + default = "C:/Users/gemes/Downloads/terraform/aws_key_pair/default-ec2.pem" +} provider "aws" { region = "us-east-1" } @@ -31,4 +33,27 @@ resource "aws_security_group" "http_server_sg" { tags = { name = "http_server_sg" } +} + +resource "aws_instance" "http_server" { + ami = "ami-0b5eea76982371e91" + key_name = "default-ec2" + instance_type = "t2.micro" + vpc_security_group_ids = [aws_security_group.http_server_sg.id] + subnet_id = "subnet-09936102560fa544c" + + connection { + type = "ssh" + host = self.public_ip + user = "ec2-user" + private_key = file(var.aws_key_pair) + } + + provisioner "remote-exec" { + inline = [ + "sudo yum install httpd -y", + "sudo service httpd start", + "echo Welcome to in28minutes - virtual server is at ${self.public_dns} | sudo tee /var/www/html/index.html" + ] + } } \ No newline at end of file diff --git a/terraform/05-ec2-instances/output.tf b/terraform/05-ec2-instances/output.tf index 17383c82..06aa9b82 100644 --- a/terraform/05-ec2-instances/output.tf +++ b/terraform/05-ec2-instances/output.tf @@ -1,3 +1,7 @@ output "aws_security_group_http_server_details" { value = "aws_security_group_http_server_sg" +} + +output "http_server_public_dns" { + value = aws_instance.http_server.public_dns } \ No newline at end of file From fb4550e6c41cc1ece13373070b21982ae93f24a8 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sat, 7 Jan 2023 16:33:45 -0500 Subject: [PATCH 07/20] Update main.tf --- terraform/05-ec2-instances/main.tf | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf index 5214ebed..c789c098 100644 --- a/terraform/05-ec2-instances/main.tf +++ b/terraform/05-ec2-instances/main.tf @@ -5,11 +5,24 @@ provider "aws" { region = "us-east-1" } +resource "aws_default_vpc" "default" { + tags = { + name = "Default vpc" + } +} + +data "aws_subnets" "default_subnets" { + filter{ + name = "vpc-id" + values = [aws_default_vpc.default.id] + } +} //HTTP Server -> SG //SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] resource "aws_security_group" "http_server_sg" { name = "http_server_sg" - vpc_id = "vpc-02523c91a94e96bca" + //vpc_id = "vpc-02523c91a94e96bca" + vpc_id = aws_default_vpc.default.id ingress { from_port = 80 From e598ec29fa5b4bc7b6fc96856d4102c27864bb0b Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sun, 8 Jan 2023 15:24:54 -0500 Subject: [PATCH 08/20] Update main.tf --- terraform/05-ec2-instances/main.tf | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf index c789c098..93175a94 100644 --- a/terraform/05-ec2-instances/main.tf +++ b/terraform/05-ec2-instances/main.tf @@ -12,15 +12,27 @@ resource "aws_default_vpc" "default" { } data "aws_subnets" "default_subnets" { - filter{ - name = "vpc-id" + filter { + name = "vpc-id" values = [aws_default_vpc.default.id] } } + +data "aws_ami" "aws_linux_2_latest" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*"] + } +} +data "aws_ami_ids" "aws_linux_2_latest_ids" { + owners = ["amazon"] +} //HTTP Server -> SG //SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] resource "aws_security_group" "http_server_sg" { - name = "http_server_sg" + name = "http_server_sg" //vpc_id = "vpc-02523c91a94e96bca" vpc_id = aws_default_vpc.default.id @@ -49,7 +61,8 @@ resource "aws_security_group" "http_server_sg" { } resource "aws_instance" "http_server" { - ami = "ami-0b5eea76982371e91" + #ami = "ami-0b5eea76982371e91" + ami = data.aws_ami.aws_linux_2_latest.id key_name = "default-ec2" instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.http_server_sg.id] From e0cadd850ab29c6066f98f78d81ad9090ea79e54 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sun, 8 Jan 2023 16:15:08 -0500 Subject: [PATCH 09/20] update from hardcoding flexible --- terraform/05-ec2-instances/data-providers.tf | 18 +++++++++++++++++ terraform/05-ec2-instances/main.tf | 21 -------------------- terraform/05-ec2-instances/variables.tf | 3 +++ 3 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 terraform/05-ec2-instances/data-providers.tf create mode 100644 terraform/05-ec2-instances/variables.tf diff --git a/terraform/05-ec2-instances/data-providers.tf b/terraform/05-ec2-instances/data-providers.tf new file mode 100644 index 00000000..bf4dc796 --- /dev/null +++ b/terraform/05-ec2-instances/data-providers.tf @@ -0,0 +1,18 @@ +data "aws_subnets" "default_subnets" { + filter { + name = "vpc-id" + values = [aws_default_vpc.default.id] + } +} + +data "aws_ami" "aws_linux_2_latest" { + most_recent = true + owners = ["amazon"] + filter { + name = "name" + values = ["amzn2-ami-hvm-*"] + } +} +data "aws_ami_ids" "aws_linux_2_latest_ids" { + owners = ["amazon"] +} diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf index 93175a94..3f7b5af3 100644 --- a/terraform/05-ec2-instances/main.tf +++ b/terraform/05-ec2-instances/main.tf @@ -1,6 +1,3 @@ -variable "aws_key_pair" { - default = "C:/Users/gemes/Downloads/terraform/aws_key_pair/default-ec2.pem" -} provider "aws" { region = "us-east-1" } @@ -11,24 +8,6 @@ resource "aws_default_vpc" "default" { } } -data "aws_subnets" "default_subnets" { - filter { - name = "vpc-id" - values = [aws_default_vpc.default.id] - } -} - -data "aws_ami" "aws_linux_2_latest" { - most_recent = true - owners = ["amazon"] - filter { - name = "name" - values = ["amzn2-ami-hvm-*"] - } -} -data "aws_ami_ids" "aws_linux_2_latest_ids" { - owners = ["amazon"] -} //HTTP Server -> SG //SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] resource "aws_security_group" "http_server_sg" { diff --git a/terraform/05-ec2-instances/variables.tf b/terraform/05-ec2-instances/variables.tf new file mode 100644 index 00000000..84cecbe0 --- /dev/null +++ b/terraform/05-ec2-instances/variables.tf @@ -0,0 +1,3 @@ +variable "aws_key_pair" { + default = "C:/Users/gemes/Downloads/terraform/aws_key_pair/default-ec2.pem" +} \ No newline at end of file From 7a2e17b4293c09caefe98a854cf684dd5ad0dd10 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Wed, 11 Jan 2023 12:46:50 -0500 Subject: [PATCH 10/20] modify plan --- .../.terraform.tfstate.lock.info | 1 + .../data-providers.tf | 3 - terraform/06-ec2-with-elb/main.tf | 83 +++++++++++++++++++ terraform/06-ec2-with-elb/output.tf | 11 +++ .../variables.tf | 0 5 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 terraform/06-ec2-with-elb/.terraform.tfstate.lock.info rename terraform/{05-ec2-instances => 06-ec2-with-elb}/data-providers.tf (79%) create mode 100644 terraform/06-ec2-with-elb/main.tf create mode 100644 terraform/06-ec2-with-elb/output.tf rename terraform/{05-ec2-instances => 06-ec2-with-elb}/variables.tf (100%) diff --git a/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info b/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info new file mode 100644 index 00000000..ab55ae99 --- /dev/null +++ b/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info @@ -0,0 +1 @@ +{"ID":"27473215-9d4b-444f-f552-2579c4eff1dd","Operation":"OperationTypeInvalid","Info":"","Who":"LAPTOP-1U6A1UHH\\gemes@LAPTOP-1U6A1UHH","Version":"1.3.6","Created":"2023-01-11T16:07:39.8214936Z","Path":"terraform.tfstate"} \ No newline at end of file diff --git a/terraform/05-ec2-instances/data-providers.tf b/terraform/06-ec2-with-elb/data-providers.tf similarity index 79% rename from terraform/05-ec2-instances/data-providers.tf rename to terraform/06-ec2-with-elb/data-providers.tf index bf4dc796..ea1bafa4 100644 --- a/terraform/05-ec2-instances/data-providers.tf +++ b/terraform/06-ec2-with-elb/data-providers.tf @@ -13,6 +13,3 @@ data "aws_ami" "aws_linux_2_latest" { values = ["amzn2-ami-hvm-*"] } } -data "aws_ami_ids" "aws_linux_2_latest_ids" { - owners = ["amazon"] -} diff --git a/terraform/06-ec2-with-elb/main.tf b/terraform/06-ec2-with-elb/main.tf new file mode 100644 index 00000000..c926fbb7 --- /dev/null +++ b/terraform/06-ec2-with-elb/main.tf @@ -0,0 +1,83 @@ +provider "aws" { + region = "us-east-1" +} + +resource "aws_default_vpc" "default" { + +} + +//HTTP Server -> SG +//SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] +resource "aws_security_group" "http_server_sg" { + name = "http_server_sg" + //vpc_id = "vpc-02523c91a94e96bca" + vpc_id = aws_default_vpc.default.id + + ingress { + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + from_port = 22 + to_port = 22 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + egress { + from_port = 0 + to_port = 0 + protocol = -1 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + name = "http_server_sg" + } +} + +resource "aws_elb" "elb" { + name = "elb" + subnets = data.aws_subnets.default_subnets.ids + security_groups = [aws_security_group.elb_sg.id] + instances = values(aws_instance.http_servers).*.id + + listener { + instance_port = 80 + instance_protocol = "http" + lb_port = 80 + lb_protocol = "http" + } +} + +resource "aws_instance" "http_servers" { + #ami = "ami-0b5eea76982371e91" + ami = data.aws_ami.aws_linux_2_latest.id + key_name = "default-ec2" + instance_type = "t2.micro" + vpc_security_group_ids = [aws_security_group.http_server_sg.id] + + for_each = toset(data.aws_subnets.default_subnets.ids) + subnet_id = each.value + + tags = { + name : "http_servers_${each.value}" + + } + + connection { + type = "ssh" + host = self.public_ip + user = "ec2-user" + private_key = file(var.aws_key_pair) + } + + provisioner "remote-exec" { + inline = [ + "sudo yum install httpd -y", + "sudo service httpd start", + "echo Welcome to in28minutes - virtual server is at ${self.public_dns} | sudo tee /var/www/html/index.html" + ] + } +} \ No newline at end of file diff --git a/terraform/06-ec2-with-elb/output.tf b/terraform/06-ec2-with-elb/output.tf new file mode 100644 index 00000000..72783d6a --- /dev/null +++ b/terraform/06-ec2-with-elb/output.tf @@ -0,0 +1,11 @@ +output "aws_security_group_http_server_details" { + value = "aws_security_group_http_server_sg" +} + +output "http_server_public_dns" { + value = values(aws_instance.http_servers).*.id +} + +output "elb_public_dns" { + value = aws_elb.elb +} \ No newline at end of file diff --git a/terraform/05-ec2-instances/variables.tf b/terraform/06-ec2-with-elb/variables.tf similarity index 100% rename from terraform/05-ec2-instances/variables.tf rename to terraform/06-ec2-with-elb/variables.tf From 6c60dff28abd9fa6f7c8139b907c097d12070177 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sat, 14 Jan 2023 17:09:35 -0500 Subject: [PATCH 11/20] update main --- .../.terraform.tfstate.lock.info | 1 - terraform/06-ec2-with-elb/main.tf | 31 ++++++++++++++++--- terraform/06-ec2-with-elb/output.tf | 2 +- 3 files changed, 27 insertions(+), 7 deletions(-) delete mode 100644 terraform/06-ec2-with-elb/.terraform.tfstate.lock.info diff --git a/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info b/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info deleted file mode 100644 index ab55ae99..00000000 --- a/terraform/06-ec2-with-elb/.terraform.tfstate.lock.info +++ /dev/null @@ -1 +0,0 @@ -{"ID":"27473215-9d4b-444f-f552-2579c4eff1dd","Operation":"OperationTypeInvalid","Info":"","Who":"LAPTOP-1U6A1UHH\\gemes@LAPTOP-1U6A1UHH","Version":"1.3.6","Created":"2023-01-11T16:07:39.8214936Z","Path":"terraform.tfstate"} \ No newline at end of file diff --git a/terraform/06-ec2-with-elb/main.tf b/terraform/06-ec2-with-elb/main.tf index c926fbb7..cc74b08e 100644 --- a/terraform/06-ec2-with-elb/main.tf +++ b/terraform/06-ec2-with-elb/main.tf @@ -6,8 +6,6 @@ resource "aws_default_vpc" "default" { } -//HTTP Server -> SG -//SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] resource "aws_security_group" "http_server_sg" { name = "http_server_sg" //vpc_id = "vpc-02523c91a94e96bca" @@ -26,17 +24,39 @@ resource "aws_security_group" "http_server_sg" { protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } + egress { from_port = 0 to_port = 0 protocol = -1 cidr_blocks = ["0.0.0.0/0"] } + tags = { name = "http_server_sg" } } +resource "aws_security_group" "elb_sg" { + name = "elb_sg" + vpc_id = aws_default_vpc.default.id + + ingress { + from_port = 80 + to_port = 80 + protocol = "tcp" + cidr_blocks = ["0.0.0.0/0"] + } + + egress { + from_port = 0 + to_port = 0 + protocol = -1 + cidr_blocks = ["0.0.0.0/0"] + } + +} + resource "aws_elb" "elb" { name = "elb" subnets = data.aws_subnets.default_subnets.ids @@ -58,12 +78,12 @@ resource "aws_instance" "http_servers" { instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.http_server_sg.id] + #for_each = data.aws_subnet_ids.default_subnets.ids for_each = toset(data.aws_subnets.default_subnets.ids) subnet_id = each.value tags = { name : "http_servers_${each.value}" - } connection { @@ -77,7 +97,8 @@ resource "aws_instance" "http_servers" { inline = [ "sudo yum install httpd -y", "sudo service httpd start", - "echo Welcome to in28minutes - virtual server is at ${self.public_dns} | sudo tee /var/www/html/index.html" + "echo Welcome to in28minutes - Virtual Server is at ${self.public_dns} | sudo tee /var/www/html/index.html" ] } -} \ No newline at end of file +} + diff --git a/terraform/06-ec2-with-elb/output.tf b/terraform/06-ec2-with-elb/output.tf index 72783d6a..ae0a234d 100644 --- a/terraform/06-ec2-with-elb/output.tf +++ b/terraform/06-ec2-with-elb/output.tf @@ -3,7 +3,7 @@ output "aws_security_group_http_server_details" { } output "http_server_public_dns" { - value = values(aws_instance.http_servers).*.id + value = aws_instance.http_servers.*.public_dns } output "elb_public_dns" { From 3af6207971f092a59948fd249967f4272ec742d5 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Tue, 17 Jan 2023 21:20:47 -0500 Subject: [PATCH 12/20] update min.tf --- terraform/05-ec2-instances/main.tf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/terraform/05-ec2-instances/main.tf b/terraform/05-ec2-instances/main.tf index 3f7b5af3..7c6190b5 100644 --- a/terraform/05-ec2-instances/main.tf +++ b/terraform/05-ec2-instances/main.tf @@ -3,16 +3,12 @@ provider "aws" { } resource "aws_default_vpc" "default" { - tags = { - name = "Default vpc" - } + } -//HTTP Server -> SG -//SG -> 80 TCP, 22 TCP, CIDR ["0.0.0.0/0"] resource "aws_security_group" "http_server_sg" { name = "http_server_sg" - //vpc_id = "vpc-02523c91a94e96bca" + //vpc_id = "vpc-02523c91a94e96bca" vpc_id = aws_default_vpc.default.id ingress { @@ -28,12 +24,14 @@ resource "aws_security_group" "http_server_sg" { protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } + egress { from_port = 0 to_port = 0 protocol = -1 cidr_blocks = ["0.0.0.0/0"] } + tags = { name = "http_server_sg" } @@ -45,7 +43,9 @@ resource "aws_instance" "http_server" { key_name = "default-ec2" instance_type = "t2.micro" vpc_security_group_ids = [aws_security_group.http_server_sg.id] - subnet_id = "subnet-09936102560fa544c" + + //subnet_id = "subnet-3f7b2563" + subnet_id = data.aws_subnets.default_subnets.ids[0] connection { type = "ssh" @@ -58,7 +58,7 @@ resource "aws_instance" "http_server" { inline = [ "sudo yum install httpd -y", "sudo service httpd start", - "echo Welcome to in28minutes - virtual server is at ${self.public_dns} | sudo tee /var/www/html/index.html" + "echo Welcome to in28minutes - Virtual Server is at ${self.public_dns} | sudo tee /var/www/html/index.html" ] } } \ No newline at end of file From 54420e8a97a12d466ffcb77a3f0e5e85c7a4994b Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Wed, 18 Jan 2023 20:28:09 -0500 Subject: [PATCH 13/20] elastic load balance --- terraform/06-ec2-with-elb/output.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/06-ec2-with-elb/output.tf b/terraform/06-ec2-with-elb/output.tf index ae0a234d..72783d6a 100644 --- a/terraform/06-ec2-with-elb/output.tf +++ b/terraform/06-ec2-with-elb/output.tf @@ -3,7 +3,7 @@ output "aws_security_group_http_server_details" { } output "http_server_public_dns" { - value = aws_instance.http_servers.*.public_dns + value = values(aws_instance.http_servers).*.id } output "elb_public_dns" { From 11f0ac619cc495b33b5ae1421b49dcdc228de725 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Thu, 19 Jan 2023 08:05:55 -0500 Subject: [PATCH 14/20] remote state backend-state remote --- .../07-backend-state/backend-state/main.tf | 58 +++++++++++++++++++ terraform/07-backend-state/user/main.tf | 7 +++ terraform/07-backend-state/user/output.tf | 4 ++ 3 files changed, 69 insertions(+) create mode 100644 terraform/07-backend-state/backend-state/main.tf create mode 100644 terraform/07-backend-state/user/main.tf create mode 100644 terraform/07-backend-state/user/output.tf diff --git a/terraform/07-backend-state/backend-state/main.tf b/terraform/07-backend-state/backend-state/main.tf new file mode 100644 index 00000000..cc85fa05 --- /dev/null +++ b/terraform/07-backend-state/backend-state/main.tf @@ -0,0 +1,58 @@ +provider "aws" { + region = "us-east-1" + //version = "~> 2.46" +} + +//S3 bucket +resource "aws_s3_bucket" "enterprise_backend_state" { + bucket = "dev-applications-backend-state-in28minutes-abc" + + lifecycle { + prevent_destroy = true + } + +# versioning { +# enabled = true +# } +# +# server_side_encryption_configuration { +# rule { +# apply_server_side_encryption_by_default { +# sse_algorithm = "AES256" +# } +# } +# } + +} + +resource "aws_s3_bucket_versioning" "versioning_example" { + bucket = aws_s3_bucket.enterprise_backend_state.id + versioning_configuration { + status = "Enabled" + } +} + +resource "aws_s3_bucket_server_side_encryption_configuration" "example" { + bucket = aws_s3_bucket.enterprise_backend_state.bucket + + rule { + apply_server_side_encryption_by_default { + sse_algorithm = "AES256" + } + } +} + +//Locking - Dynamo DB + +resource "aws_dynamodb_table" "enterprise_backend_lock" { + name = "dev_application_locks" + billing_mode = "PAY_PER_REQUEST" + + hash_key = "LockID" + + attribute { + name = "LockID" + type = "S" + } + +} \ No newline at end of file diff --git a/terraform/07-backend-state/user/main.tf b/terraform/07-backend-state/user/main.tf new file mode 100644 index 00000000..06c57052 --- /dev/null +++ b/terraform/07-backend-state/user/main.tf @@ -0,0 +1,7 @@ +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_user" { + name = "my_iam_user_abc" +} \ No newline at end of file diff --git a/terraform/07-backend-state/user/output.tf b/terraform/07-backend-state/user/output.tf new file mode 100644 index 00000000..edcf3e29 --- /dev/null +++ b/terraform/07-backend-state/user/output.tf @@ -0,0 +1,4 @@ + +output "my_iam_user_complete_details" { + value = aws_iam_user.my_iam_user +} \ No newline at end of file From 2b11b08ba3d7e0041b540750a955130cfe456c2c Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Thu, 19 Jan 2023 13:12:58 -0500 Subject: [PATCH 15/20] remote state --- .../07-backend-state/backend-state/main.tf | 58 ------------------- 1 file changed, 58 deletions(-) delete mode 100644 terraform/07-backend-state/backend-state/main.tf diff --git a/terraform/07-backend-state/backend-state/main.tf b/terraform/07-backend-state/backend-state/main.tf deleted file mode 100644 index cc85fa05..00000000 --- a/terraform/07-backend-state/backend-state/main.tf +++ /dev/null @@ -1,58 +0,0 @@ -provider "aws" { - region = "us-east-1" - //version = "~> 2.46" -} - -//S3 bucket -resource "aws_s3_bucket" "enterprise_backend_state" { - bucket = "dev-applications-backend-state-in28minutes-abc" - - lifecycle { - prevent_destroy = true - } - -# versioning { -# enabled = true -# } -# -# server_side_encryption_configuration { -# rule { -# apply_server_side_encryption_by_default { -# sse_algorithm = "AES256" -# } -# } -# } - -} - -resource "aws_s3_bucket_versioning" "versioning_example" { - bucket = aws_s3_bucket.enterprise_backend_state.id - versioning_configuration { - status = "Enabled" - } -} - -resource "aws_s3_bucket_server_side_encryption_configuration" "example" { - bucket = aws_s3_bucket.enterprise_backend_state.bucket - - rule { - apply_server_side_encryption_by_default { - sse_algorithm = "AES256" - } - } -} - -//Locking - Dynamo DB - -resource "aws_dynamodb_table" "enterprise_backend_lock" { - name = "dev_application_locks" - billing_mode = "PAY_PER_REQUEST" - - hash_key = "LockID" - - attribute { - name = "LockID" - type = "S" - } - -} \ No newline at end of file From 8f7a18c855104b346cbb0dc00a419140d3d44bf0 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Fri, 20 Jan 2023 18:28:15 -0500 Subject: [PATCH 16/20] update --- .vscode/settings.json | 5 ++ .../07-backend-state/backend-state/main.tf | 58 +++++++++++++++++++ terraform/07-backend-state/user/main.tf | 7 --- terraform/07-backend-state/users/main.tf | 19 ++++++ .../{user/output.tf => users/outputs.tf} | 3 +- terraform/07-backend-state/variables.tf | 3 + 6 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 terraform/07-backend-state/backend-state/main.tf delete mode 100644 terraform/07-backend-state/user/main.tf create mode 100644 terraform/07-backend-state/users/main.tf rename terraform/07-backend-state/{user/output.tf => users/outputs.tf} (51%) create mode 100644 terraform/07-backend-state/variables.tf diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..6c2ff60b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "githubPullRequests.ignoredPullRequestBranches": [ + "master" + ] +} \ No newline at end of file diff --git a/terraform/07-backend-state/backend-state/main.tf b/terraform/07-backend-state/backend-state/main.tf new file mode 100644 index 00000000..af51b452 --- /dev/null +++ b/terraform/07-backend-state/backend-state/main.tf @@ -0,0 +1,58 @@ +provider "aws" { + region = "us-east-1" + //version = "~> 2.46" +} + +//S3 bucket +resource "aws_s3_bucket" "enterprise_backend_state" { + bucket = "kkgdev-applications-backend-state-in28minutes-abc" + + lifecycle { + prevent_destroy = true + } + +# versioning { +# enabled = true +# } +# +# server_side_encryption_configuration { +# rule { +# apply_server_side_encryption_by_default { +# sse_algorithm = "AES256" +# } +# } +# } + +} + +resource "aws_s3_bucket_versioning" "versioning_example" { + bucket = aws_s3_bucket.enterprise_backend_state.id + versioning_configuration { + status = "Enabled" + } +} + +resource "aws_s3_bucket_server_side_encryption_configuration" "example" { + bucket = aws_s3_bucket.enterprise_backend_state.bucket + + rule { + apply_server_side_encryption_by_default { + sse_algorithm = "AES256" + } + } +} + +//Locking - Dynamo DB + +resource "aws_dynamodb_table" "enterprise_backend_lock" { + name = "dev_application_locks" + billing_mode = "PAY_PER_REQUEST" + + hash_key = "LockID" + + attribute { + name = "LockID" + type = "S" + } + +} \ No newline at end of file diff --git a/terraform/07-backend-state/user/main.tf b/terraform/07-backend-state/user/main.tf deleted file mode 100644 index 06c57052..00000000 --- a/terraform/07-backend-state/user/main.tf +++ /dev/null @@ -1,7 +0,0 @@ -provider "aws" { - region = "us-east-1" -} - -resource "aws_iam_user" "my_iam_user" { - name = "my_iam_user_abc" -} \ No newline at end of file diff --git a/terraform/07-backend-state/users/main.tf b/terraform/07-backend-state/users/main.tf new file mode 100644 index 00000000..67d3400a --- /dev/null +++ b/terraform/07-backend-state/users/main.tf @@ -0,0 +1,19 @@ +terraform { + backend "s3" { + bucket = "kkgdev-applications-backend-state-in28minutes-abc" + #key = "07-backend-state-users-dev" + key = "dev/07-backend-state/users/backend-state" + region = "us-east-1" + dynamodb_table = "kkgdev_application_locks" + encrypt = true + } +} + +provider "aws" { + region = "us-east-1" + // version = "~> 2.46" +} + +resource "aws_iam_user" "my_iam_user" { + name = "${terraform.workspace}_my_iam_user_abc" +} diff --git a/terraform/07-backend-state/user/output.tf b/terraform/07-backend-state/users/outputs.tf similarity index 51% rename from terraform/07-backend-state/user/output.tf rename to terraform/07-backend-state/users/outputs.tf index edcf3e29..5ecf7a5d 100644 --- a/terraform/07-backend-state/user/output.tf +++ b/terraform/07-backend-state/users/outputs.tf @@ -1,4 +1,3 @@ - output "my_iam_user_complete_details" { - value = aws_iam_user.my_iam_user + value = aws_iam_user.my_iam_user } \ No newline at end of file diff --git a/terraform/07-backend-state/variables.tf b/terraform/07-backend-state/variables.tf new file mode 100644 index 00000000..84cecbe0 --- /dev/null +++ b/terraform/07-backend-state/variables.tf @@ -0,0 +1,3 @@ +variable "aws_key_pair" { + default = "C:/Users/gemes/Downloads/terraform/aws_key_pair/default-ec2.pem" +} \ No newline at end of file From 2eca6ba7ebd507607be22cca774907bd61fb711d Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Sun, 22 Jan 2023 19:55:25 -0500 Subject: [PATCH 17/20] modified plan --- terraform/07-backend-state/users/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/07-backend-state/users/main.tf b/terraform/07-backend-state/users/main.tf index 67d3400a..74752fb5 100644 --- a/terraform/07-backend-state/users/main.tf +++ b/terraform/07-backend-state/users/main.tf @@ -4,7 +4,7 @@ terraform { #key = "07-backend-state-users-dev" key = "dev/07-backend-state/users/backend-state" region = "us-east-1" - dynamodb_table = "kkgdev_application_locks" + dynamodb_table = "dev_application_locks" encrypt = true } } From fe66f5d568c4fbc4191c39d75d6b667c95aff3c5 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Mon, 23 Jan 2023 09:12:52 -0500 Subject: [PATCH 18/20] modules --- terraform/08-modules/main.tf | 8 ++++++++ terraform/08-modules/outputs.tf | 3 +++ 2 files changed, 11 insertions(+) create mode 100644 terraform/08-modules/main.tf create mode 100644 terraform/08-modules/outputs.tf diff --git a/terraform/08-modules/main.tf b/terraform/08-modules/main.tf new file mode 100644 index 00000000..49046a52 --- /dev/null +++ b/terraform/08-modules/main.tf @@ -0,0 +1,8 @@ +provider "aws" { + region = "us-east-1" + //version = "~> 2.46" (No longer necessary) +} + +resource "aws_iam_user" "my_iam_user" { + name = "my_iam_user_abc_updated" +} \ No newline at end of file diff --git a/terraform/08-modules/outputs.tf b/terraform/08-modules/outputs.tf new file mode 100644 index 00000000..f1ea9899 --- /dev/null +++ b/terraform/08-modules/outputs.tf @@ -0,0 +1,3 @@ +output "my_iam_user_complete_details" { + value = aws_iam_user.my_iam_user +} \ No newline at end of file From deddffed247aff83c8ae562e516b711b91db8852 Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Mon, 23 Jan 2023 11:45:37 -0500 Subject: [PATCH 19/20] modules --- terraform/08-modules/terraform-modules/users/main.tf | 11 +++++++++++ .../08-modules/terraform-modules/users/outputs.tf | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 terraform/08-modules/terraform-modules/users/main.tf create mode 100644 terraform/08-modules/terraform-modules/users/outputs.tf diff --git a/terraform/08-modules/terraform-modules/users/main.tf b/terraform/08-modules/terraform-modules/users/main.tf new file mode 100644 index 00000000..b374c415 --- /dev/null +++ b/terraform/08-modules/terraform-modules/users/main.tf @@ -0,0 +1,11 @@ +variable "environment" { + default= "default" +} + +provider "aws" { + region = "us-east-1" +} + +resource "aws_iam_user" "my_iam_user" { + name = "my_iam_user_abc_${var.environment}" +} diff --git a/terraform/08-modules/terraform-modules/users/outputs.tf b/terraform/08-modules/terraform-modules/users/outputs.tf new file mode 100644 index 00000000..5ecf7a5d --- /dev/null +++ b/terraform/08-modules/terraform-modules/users/outputs.tf @@ -0,0 +1,3 @@ +output "my_iam_user_complete_details" { + value = aws_iam_user.my_iam_user +} \ No newline at end of file From 09a5a339c790673dd28d7db3cb3bd7840d855a1e Mon Sep 17 00:00:00 2001 From: kahgeorge <88637241+kahgeorge@users.noreply.github.com> Date: Tue, 24 Jan 2023 20:34:04 -0500 Subject: [PATCH 20/20] edit modules --- terraform/08-modules/dev/users/main.tf | 4 ++++ terraform/08-modules/main.tf | 8 -------- terraform/08-modules/outputs.tf | 3 --- terraform/08-modules/qa/users/main.tf | 4 ++++ terraform/08-modules/terraform-modules/users/main.tf | 9 +++++++-- terraform/08-modules/terraform-modules/users/outputs.tf | 2 +- 6 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 terraform/08-modules/dev/users/main.tf delete mode 100644 terraform/08-modules/main.tf delete mode 100644 terraform/08-modules/outputs.tf create mode 100644 terraform/08-modules/qa/users/main.tf diff --git a/terraform/08-modules/dev/users/main.tf b/terraform/08-modules/dev/users/main.tf new file mode 100644 index 00000000..403a4941 --- /dev/null +++ b/terraform/08-modules/dev/users/main.tf @@ -0,0 +1,4 @@ +module "user_module" { + source = "../../terraform-modules/users" + environment = "dev" +} \ No newline at end of file diff --git a/terraform/08-modules/main.tf b/terraform/08-modules/main.tf deleted file mode 100644 index 49046a52..00000000 --- a/terraform/08-modules/main.tf +++ /dev/null @@ -1,8 +0,0 @@ -provider "aws" { - region = "us-east-1" - //version = "~> 2.46" (No longer necessary) -} - -resource "aws_iam_user" "my_iam_user" { - name = "my_iam_user_abc_updated" -} \ No newline at end of file diff --git a/terraform/08-modules/outputs.tf b/terraform/08-modules/outputs.tf deleted file mode 100644 index f1ea9899..00000000 --- a/terraform/08-modules/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "my_iam_user_complete_details" { - value = aws_iam_user.my_iam_user -} \ No newline at end of file diff --git a/terraform/08-modules/qa/users/main.tf b/terraform/08-modules/qa/users/main.tf new file mode 100644 index 00000000..44ddf353 --- /dev/null +++ b/terraform/08-modules/qa/users/main.tf @@ -0,0 +1,4 @@ +module "user_module" { + source = "../../terraform-modules/users" + environment = "qa" +} \ No newline at end of file diff --git a/terraform/08-modules/terraform-modules/users/main.tf b/terraform/08-modules/terraform-modules/users/main.tf index b374c415..c8b17c3d 100644 --- a/terraform/08-modules/terraform-modules/users/main.tf +++ b/terraform/08-modules/terraform-modules/users/main.tf @@ -1,11 +1,16 @@ variable "environment" { - default= "default" + default = "default" } provider "aws" { region = "us-east-1" + // version = "~> 2.46" } resource "aws_iam_user" "my_iam_user" { - name = "my_iam_user_abc_${var.environment}" + name = "${local.iam_user_extension}_${var.environment}" } + +locals { + iam_user_extension = "my_iam_user_abc" +} \ No newline at end of file diff --git a/terraform/08-modules/terraform-modules/users/outputs.tf b/terraform/08-modules/terraform-modules/users/outputs.tf index 5ecf7a5d..f1ea9899 100644 --- a/terraform/08-modules/terraform-modules/users/outputs.tf +++ b/terraform/08-modules/terraform-modules/users/outputs.tf @@ -1,3 +1,3 @@ output "my_iam_user_complete_details" { - value = aws_iam_user.my_iam_user + value = aws_iam_user.my_iam_user } \ No newline at end of file