Creating a module in Terraform - Getting started with Terraform Modules (part 1)
HTML-код
- Опубликовано: 22 июл 2024
- #terraform #devops #infrastructureascode
Once you start seeing patterns in your infrastructure that repeat, e.g. the creation of VPCs, it is time to look at abstracting them into reusable blocks. These are modules in Terraform. This session covers how to create a basic module, looks at defining the inputs (variables) and outputs to it. We then use the module to create our Amazon EC2 instance. The 2nd part of this session will show how to store your module in a git repo, and add versioning.
If you have any questions about this video, or suggestions for content I should cover next, please leave a comment, or reach out to me on social media, details are down below.
Pull up a 🪑and bring a ☕/ 🍵/ 🍸/ 🍺, this channel focusses on Cloud related tech, mostly AWS, with practical, hands-on guides. New videos posted weekly (soon). If you have questions / suggestions for content, please leave a comment on any of the videos.
AWS Technical Developer Advocate, focussing on DevOps ❤️, containers 📦 and a bit of security🔐. Opinions are mine.
COME CHAT:
Twitter: bit.ly/cobus-twitter
LinkedIn: bit.ly/cobus-linkedin
Instagram: bit.ly/cobus-insta
Facebook: bit.ly/cobus-facebook Наука
Best ever session on TF modules.
Great work! Watching the whole list and learning a lot.
I've just discovered you. I'm definitely here to stay. Thank you for the video.
Cobus, thanks for this.....honestly this was as very clear explanation of modules as well as the best example of using the variables.tf file. Nice!
awesome, this was really easy to follow and now I understand clearly. Thanks!
I am enyouying your video. It's very well explain and easy to understand. You make complex explanation to be easy.Ty
Excellent Tutorial :) learned a lot in a short time .. keep up the good work .
Great Tutorial, thank you very much. You helped me a lot!
Great content, I learned very about it and I´m studying more about because I have to build an infrastructure with 4 environments and 4 vpc´s. Thank you
Could not have asked for more you nailed it man,kudos but could you do a video on the use of different functions in terraform. thanks for the effort so far
Wow really good content for beginners
Thanks for sharing
so nice work man!
Wow! This is certainly the easiest explanation I've come across.
Thanks, man!
great video!
This was a great experience, Can you pls cover backend.
Thanks, this was really clear! Do you think you could also share the code through a repo?
Thank you for the video. I have a question, what if I wanted to spin up a new instance without destroying the first instance I created. How do I run the same terraform code to create a new instance without destroying the one it created previously and how do I repeat that for future instance creation ?
Thanks - could you do one for monitoring and alerting if someone creates/terminates some instance. I want to see some sample TF rules. Thanks!
if you needed to create more than one ec2 instance with different settings what would be the best way to do that? Would you create a second module with a different name?
bless your soul
thanks for the video. I tried to find this example, I'd like to see the root and sub module files.
Cool
Hi Cobus,
This is really simple and understandable. Although I have one question : we have 3 services created in our dev environment : S3,Elastic Search and RDS but I am not understanding that how do I create a module and which would benefit each service? Can you please help me with that.
Do you have any GitHub profile to fork the project? appreciate your videos!!!
should say, ec2_instance_name
= var.ec2_instance_name ;-)
where can you find what can be used as outputs for a given resource?
In your CLI after running terraform plan you'll see this at the end and once you run terraform apply you'll see the output hope this helps
Changes to Outputs:
+ instance_id = (known after apply)
Surprised to know that the infra is created without AWS credentials. How are you authenticating terraform
It falls back on whichever credentials are provided - can be ones you have configured for your AWS CLI (SSO or Api key/secret), or the IAM role if you are running on EC2. Never a good idea to hard code credentials in a file that will be added to version control (git).
Good, but you never showed what was in the env tfvars files?
ec2_instance_name = "Terraform EC2"
ec2_instance_type = "t2-micro"
ec2_ami = "ami-0cd8ad123effa531a"
the variables are customed but this is pretty much what he used to override the values for vars
terraform plan -var-file=.tfvars
Cracking content, but please, please, please, drop the background music. It's so incredibly distracting and annoying.
This is not a recommended way of creating a module. Please refer to the docs. You need a directory of modules inside it you can create a different directory that is a module
agreed with others, nice content but plz share the code.
like really, what are we supposed to do without seeing the content in the first ~20 lines of example.tf or the /variables directory that you all of a sudden involve at 10:33 without having introduced it? i am sort of a noob, so is it just me?
Where is the source code?
At all can't understand what your are doing. What represents abstraction: new_module or parent directory?
hi
Using a root module is better practice
Braa! Your module explanation is not clear. You were practically moving unnecessarily too fast without a detailed explanation.
This is really bad explained,actually you explain almost nothing, but expect implicitly everything to be derived…
Anyhow thanks for the video, it helps of course.