Awesome course! UPDATE: After watching this course here on RU-vid I went ahead and purchased Derek's course provided in the description. I have to say hands down this is the best Terraform course on the internet! (Believe me, I have watched courses here on RU-vid and on Udemy). I have the Terraform Associate Certification and the title of Derek's course, more than certified, really does justice to the course! The Hashicorp certification is a joke compared to what Derek teaches in the course, and for just $29.99 it's a freebie. The course is worth more than 10X that. My Terraform skills have really improved thanks to this course and Derek I cannot thank you enough for the depth of the course! So for anyone really looking to take their Terraform skills to the next level, forget Udemy courses, Derek's morethancertified Terraform course is on a level by itself. Thank you!!!
This course was beautiful and very much effective, I faced a lot of issues while getting along with the course, but eventually I made it out and in the process I was able to grasp what exactly is Terraform and how to work with it. I want say that I have learnt it completely or mastered it, but I have a clear vision on what is terraform and I thank Derrick for bringing such a simple yet wonderful course to us for FREE!!
Great course - been using TF for about 6 months and this really gave a lot of useful information and optimizations plus using them well in TF. Thank you.
to anybody else who follows this tutorial - it seems in the time that this video was made - a new change was made at 9:44 from terraform. You will now see that on this same terraform page that you have to add a new variable to shared credentials tf file: shared_config_files and then populate the .config file with header like so: [default] region=your-region and output=json then add to be safe: [profile your_custom_profile_name e.g vscode] region=your-region and output=json
You can also remove the shared_config_files line completely, and change shared_credentials_files to shared_credentials_file. You'll also need to remove the [ ] brackets, but other than that should be good to go.
To anyone else following this advice, you must also completely close Visual Studio Code (VSC) in order for the changes in the path variables to take place. After that you should be good.
Nice tutorial, a really nice way for me to get started with Terraform. It was at time challenging to follow along because of the scripts that were not available, but I made it to the end. It took me two days.
No word of thank you could justify your effort and explanation. You are just just awesome. I really appreciate the hard work. HUGE humble request please!! Bring a next video and include Modules, data, ENV_VARIABLES (how to use them), also would be nice if you could include a reat time project (mid-->expert level please). I am new to terraform but your video is a great source of learning. many thanks
Thanks for this awesome video. Everything worked for me except I couldn't SSH into my instance via VS code. However, I am able to ssh in using Putty. Once again thank you so much this is a very well put together course. Appreciate it. I like to learn Terraform for Kubernetese.
For those who are getting stuck with launching an instance: If you get an error saying that query has no results, it's because data "aws_ami' "example" is used with already registered AMIs. Try using aws_ami_ids instead. Browse the documentation as it is always changing
Hello Derek, AWESOME Tutorial!! I have been following this class and executing as you're executing the tasks. I am experiencing an issue when attempting to execute the bootstrap in the userdata.tpl file. The script is complaining about the "#!/bin/bash". The server did deploy, but docker was not installed. I am not seeing the issue with this standard bash command. Any advice?
do you have another example on setting up SSH config scripts? I'm getting an error and I don't have a config file on my .ssh folder. Thank you and more power!
Same thing happened with me as well, but we can do it manually, Install the “remote ssh” plugin , open command pallet, search for “ssh” and click on ”add host” ….it’ll generate the config file….after that when you’ll search for “connect to host” on command pallet…it’ll work same as shown in the tutorial
Did anyone have an issue with docker not being installed in the instance after following the instructions to build the userdata.tpl file. Thanks in advance.
Same here. And I never recalled him actually providing the .tpl script to copy, so I typed by hand. May have to find a way to install all these manually or with another solution. That's the problem with these FreeCodeCamp videos. My suggestion: downvote and try to combine with a different solution
I love the video. There's just one thing I don't understand well: I don't know why, but there were two "sudo" in sequence in that userdata. Did that not cause any errors?
@Rodrigo Araújo e Castro When Ubuntu EC2 instance is provisioned/created, you're allowed to access using default user which is ubuntu in this case. you can't access with root user. However, ubuntu user is already present in sudoer file to run any sudo command without password. That's why when you're running super admin commands(apt update && apt install package-name) with ubuntu user, you have to pass sudo first. Hope this helps.
Great course, but would be nice if userdata.tpl file was provided somewhere as making sure I copied it correctly took up some time. I checked the link provided in the description but couldn't find it.
Hay Derek, i couldnot use the provisioner block on this course. When i ran the terraform plan it says the provisioner block is not expected here. What can i do here as an alternative.Thanks
This is great... Please please please... Can you break it up into chatpers and (bitesize) sections with appropriate names/labels so that one can easily reference particular aspects?
i have been troubleshooting this but can't get it resolved. "Error: creating EC2 Instance: InvalidParameterValue: The architecture 'x86_64' of the specified instance type does not match the architecture 'arm64' of the specified AMI. Specify an instance type and an AMI that have matching architectures, and try again. You can use 'describe-instance-types' or 'describe-images' to discover the architecture of the instance type or AMI."
I was able to make SSH connection work from VScode. But, I don't understand what the purpose is to have direct SSH link from inside VScode. Don't you do the same thing with separate SSH connections from putty? Or, you want to run tests directly from EC2 instance with code managed by VScode, version control type of stuff?
I have been following the tutorial exactly as showed, but I cannot ping the public IP of the EC2 instances I create. Does anyone know why that is? I have been stuck for a while now and need help.
I understood. I was using the wrong personal IP, I have mistakenly put the internal IP rather than the external IP, I was trying to use a private network IP address which obviously prevented me to connect to the EC2 instance
The video was nice.. it would have been even more beneficial if there was some explanation on the resources itself..like what is subnet and what is routingtable etc. Maybe a separate video on that..
I get this error msg in my "aws_vpc" "mtc_vpc" resource: enable_dns_hostnames = true A reference to a resource type must be followed by at least one attribute access, specifying the resource name. Any suggestions, please?
Great tutorial! however, I'm having trouble trying to ssh into the instance. I keep getting a connection timeout. Any help or suggestions would be greatly appreciated.
Sorry Im starting this GREAT tutorial im amazed by, but where is the script for the boostrap the EC2 installing docker?? hahahah I cant find it anywhere or even on the official page, can someone paste it here? thanks!
I figured we can do it manually, Install the “remote ssh” plugin , open command pallet, search for “ssh” and click on ”add host” ….it’ll generate the config file….after that when you’ll search for “connect to host” on command pallet…it’ll work same as shown in the tutorial
Hello, Great video. Just an update regarding the shared_credentials_files, I struggle with the format of the string. The one that works needed the square bracket around the string. This format works ["C:/users/nameofuser/.aws/credentials" ]
@@radegold3122 still didn"t figure it out: is this what you mean? add-content -path c:/users/.ssh/config -value @' Host ${hostname} HostName ${hostname} User ${user} IdentityFile ${identityfile} '@
If anyone else experiences problems when opening remote VS Code If error is like 'permissions are too open' You need to go to your .pub file -> Properties -> Security and leave only Administrators, System and youself with Read rights
One weird thing I'm experiencing: my route table has the 'name' tag set to 'dev_public_rt', and the tag shows as such in the AWS console; however, the 'Name' column is still blank for it in the console's 'Route tables' list, unlike how it shows in this video 39:28. I know I can manually add that label easily, but wondering if something is different on the code level...
@@justinshobby Hi Justin, and thanks for the note! Sadly setting the tag to 'Name' instead of 'name' didn't work for me still - the 'Name' column for the RT remains blank.
@@calebemmanuel5178 can you share the link to the script files. I typed out the userdata however when I ssh into the instance docker isn't installed :(
can someone tell me why I did the userdata.tpl file when I spin up the EC2 it says I have to install docker. I literally copied the code from MTC's github but it docker isn't install on the EC2 instance? Please help!
Sometimes it takes a bit for Docker to become installed. You may have to wait a few minutes for it to work. Also, ensure you're using the right Ubuntu instance. If you use CentOS or a distribution that doesn't utilize apt, it will fail.