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
  • НаукаНаука

Комментарии • 43

  • @jigneshpatel5469
    @jigneshpatel5469 Месяц назад

    Best ever session on TF modules.

  • @takione5991
    @takione5991 2 года назад +1

    Great work! Watching the whole list and learning a lot.

  • @Jambajakumba
    @Jambajakumba 2 года назад +1

    I've just discovered you. I'm definitely here to stay. Thank you for the video.

  • @zvirtual1724
    @zvirtual1724 3 года назад

    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!

  • @pscoriae6981
    @pscoriae6981 Год назад

    awesome, this was really easy to follow and now I understand clearly. Thanks!

  • @donskye5750
    @donskye5750 3 года назад

    I am enyouying your video. It's very well explain and easy to understand. You make complex explanation to be easy.Ty

  • @surekaka4916
    @surekaka4916 2 года назад

    Excellent Tutorial :) learned a lot in a short time .. keep up the good work .

  • @ickebinberliner
    @ickebinberliner 2 года назад

    Great Tutorial, thank you very much. You helped me a lot!

  • @2012gaspar
    @2012gaspar 2 года назад

    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

  • @ayencoscolfield3312
    @ayencoscolfield3312 2 года назад

    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

  • @padmanathanmariappan5694
    @padmanathanmariappan5694 2 года назад

    Wow really good content for beginners

  • @diegonayalazo
    @diegonayalazo Год назад

    Thanks for sharing

  • @vikinoX
    @vikinoX 2 года назад

    so nice work man!

  • @TilakVardhan
    @TilakVardhan 2 года назад +1

    Wow! This is certainly the easiest explanation I've come across.
    Thanks, man!

  • @diegoraggio3180
    @diegoraggio3180 Год назад

    great video!

  • @rodrigueawom1565
    @rodrigueawom1565 2 года назад +1

    This was a great experience, Can you pls cover backend.

  • @ThePotassiumiodide
    @ThePotassiumiodide 3 года назад +11

    Thanks, this was really clear! Do you think you could also share the code through a repo?

  • @michaelduncan6769
    @michaelduncan6769 2 года назад

    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 ?

  • @Umar0x01
    @Umar0x01 2 года назад

    Thanks - could you do one for monitoring and alerting if someone creates/terminates some instance. I want to see some sample TF rules. Thanks!

  • @wyattblake4126
    @wyattblake4126 3 года назад

    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?

  • @akramsystems
    @akramsystems 2 года назад

    bless your soul

  • @stevegrimes5105
    @stevegrimes5105 3 года назад

    thanks for the video. I tried to find this example, I'd like to see the root and sub module files.

  • @desmondamberetu4345
    @desmondamberetu4345 Год назад

    Cool

  • @pallavianand564
    @pallavianand564 3 года назад

    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.

  • @amauryborgessouza6064
    @amauryborgessouza6064 2 года назад +1

    Do you have any GitHub profile to fork the project? appreciate your videos!!!

  • @sab611
    @sab611 7 дней назад

    should say, ec2_instance_name
    = var.ec2_instance_name ;-)

  • @arvinvitug7744
    @arvinvitug7744 2 года назад

    where can you find what can be used as outputs for a given resource?

    • @usheeg
      @usheeg Год назад

      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)

  • @saurabhgoreamazing9368
    @saurabhgoreamazing9368 10 месяцев назад

    Surprised to know that the infra is created without AWS credentials. How are you authenticating terraform

    • @CobusBernard
      @CobusBernard  10 месяцев назад

      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).

  • @eakokel
    @eakokel Год назад

    Good, but you never showed what was in the env tfvars files?

    • @usheeg
      @usheeg Год назад

      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

  • @johnmorsley
    @johnmorsley 3 года назад +1

    Cracking content, but please, please, please, drop the background music. It's so incredibly distracting and annoying.

  • @shilashm5691
    @shilashm5691 2 года назад +1

    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

  • @xammocoloniax
    @xammocoloniax Год назад

    agreed with others, nice content but plz share the code.

    • @xammocoloniax
      @xammocoloniax Год назад

      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?

  • @vitality7195
    @vitality7195 2 года назад +1

    Where is the source code?

    • @vitality7195
      @vitality7195 2 года назад +1

      At all can't understand what your are doing. What represents abstraction: new_module or parent directory?

  • @tekoverlbert6516
    @tekoverlbert6516 Месяц назад

    hi

  • @Ritch548
    @Ritch548 5 месяцев назад

    Using a root module is better practice

  • @alex-ce2te
    @alex-ce2te Год назад

    Braa! Your module explanation is not clear. You were practically moving unnecessarily too fast without a detailed explanation.

  • @mymacaintwag
    @mymacaintwag Год назад +1

    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.