DevOps Project - Automate deploying to AWS using Terraform with GitLab CICD pipeline

Поделиться
HTML-код
  • Опубликовано: 4 фев 2025

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

  • @soumyadipchatterjee2267
    @soumyadipchatterjee2267 11 месяцев назад +4

    Mind-blowing & Hat's off to you to showcase this project step by step especially how Gitlab & Terraform hand to hand works in Production 😀❤. I have successfully created the same .

  • @cloudchamp
    @cloudchamp  11 месяцев назад +11

    Let's see who can complete this first..... 👀
    Please Like & share :)

    • @sharmanaina
      @sharmanaina 3 месяца назад

      Hi Cloudchamp i am following you and love your videos , would be very helpful if you could just tell the extensions u use as i am facing docker failed to connect issue in vs code . And where can i get the solutions of these issues.

  • @oc4618
    @oc4618 10 месяцев назад +2

    I love your tutorials. Simpe, clear and straight foward. One of the best tutorial for devops on the net. Please keep them coming

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

      Thanks! Means a lot!!

  • @ahmadqayyum7505
    @ahmadqayyum7505 7 месяцев назад +5

    this guy deserves the highest award ever in the field of devops. simplifying such complicated concepts.

    • @cloudchamp
      @cloudchamp  7 месяцев назад

      🤝🤝

    • @ahmadqayyum7505
      @ahmadqayyum7505 7 месяцев назад

      @@cloudchamp any problem that I run into regarding my projects and it's like you already know the problem and when I come to RUclips for research the solution is there. I am starting to love DevOps because of you.

    • @cloudchamp
      @cloudchamp  7 месяцев назад

      @@ahmadqayyum7505 This comment is the reason i create content for!

    • @ahmadqayyum7505
      @ahmadqayyum7505 7 месяцев назад

      @@cloudchamp thank you so much.

    • @ahmadqayyum7505
      @ahmadqayyum7505 7 месяцев назад

      @@cloudchamp also can you make a playlist on Kubernetes for beginners, if you haven't made one already???

  • @kauapozzi8629
    @kauapozzi8629 11 месяцев назад +2

    Just took my SAA-003 certification. Watching your videos to conquer my first IT job and portfolio

    • @cloudchamp
      @cloudchamp  11 месяцев назад +1

      Best of luck to you brother

    • @kauapozzi8629
      @kauapozzi8629 11 месяцев назад

      @@cloudchamp tks bro!

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

    Crisp & Clear. Thanks mate.
    And please dont take me wrong your talking speed has really reduced to good level compared to initial videos and this helps learners like us to understand thoroughly.
    Being in the industry for 6+ years have hardly found good live projects. Please keep them coming!
    Thank you! All the best!

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

      Thanks for this helpful feedback 😀

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

    This tutorial offers an in-depth look at automating Terraform deployments using CI/CD pipelines. As a DevOps engineer, I appreciate the clear explanations and practical examples that make it easy to integrate Terraform with GitLab. The tutorial covers everything from initial setup to best practices for managing infrastructure as code, making it an invaluable resource for anyone looking to streamline their cloud deployments. Highly recommended for those aiming to enhance their DevOps workflows!"

  • @ankitkumargupta9753
    @ankitkumargupta9753 10 месяцев назад +2

    Crisp, Clear, Amazing, Mind-Blowing
    What a tutorial, Loved It ❤

    • @cloudchamp
      @cloudchamp  10 месяцев назад +1

      Glad you liked it

    • @cloudchamp
      @cloudchamp  10 месяцев назад +1

      Make sure to share & subscribe 👍🏻

  • @anudivya1053
    @anudivya1053 2 месяца назад

    First time im watching your channel.... your explanation was just wow. Im very happy i have completed the task, its really vey usfull. Thank a ton. Thanks thanks.................

    • @cloudchamp
      @cloudchamp  2 месяца назад +1

      I'm so happy you completed the task! Keep going!

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

    Good explanation....really concise and articulate....gets to the point and also explains prerequisite videos and concepts to understand... enjoyed it! Will watch all from the all others... just subscribed!

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

      Thanks man!
      Happy to help 😀

  • @rajvirkaur4411
    @rajvirkaur4411 11 месяцев назад +1

    great tutorial. everything is explained in so detail. thank you so much

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      You're very welcome!

  • @inthecloud1043
    @inthecloud1043 11 месяцев назад +3

    You explain it so perfectly bro 👍

  • @karthickmuthiah7241
    @karthickmuthiah7241 7 месяцев назад

    Thanks for the wonderful session and project use case. I have implemented it in my home lab.

  • @nnamdizobeashia7320
    @nnamdizobeashia7320 7 месяцев назад

    men.. i am so amazed at your skill set you need to do a bootcamp.. thank you so much for knowledge shared.

    • @cloudchamp
      @cloudchamp  7 месяцев назад

      Thank you means a lot!

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

    very interesting video . Gives very good key concepts in a very clear way. I'll put these in practise pretty soon, Thanks!

    • @cloudchamp
      @cloudchamp  10 месяцев назад +1

      Let me know how it goes 👍🏻

  • @manasisingh294
    @manasisingh294 2 месяца назад

    Thank you so much! Incredible explanation.

    • @cloudchamp
      @cloudchamp  2 месяца назад

      You're very welcome!

  • @renyirish
    @renyirish 29 дней назад

    You are a star ⭐ Bless your life. So good at explaining difficult content in a simple manner. All the best dear 💯👌🫶

  • @smartengineer4484
    @smartengineer4484 11 месяцев назад +2

    This is very much needed project brother 👍

  • @mhenterprises1873
    @mhenterprises1873 11 месяцев назад +1

    Thanks for this devops project 👍

  • @vamshikittu8635
    @vamshikittu8635 11 месяцев назад

    Awesome 👌 content bhai and funny thing is when the destroy was running the bgm was perfect sync 😂
    And yes today itself I'll do this project and definitely tag you nasi bhai ❤

  • @msr_atpeace
    @msr_atpeace 2 месяца назад

    Loved it , Can you make some changes ,to make it more comprehensive project.
    1. Deploying emr cluster and kubernetes cluster and some ec2 instances.
    2. how pipeline will look like when k8s have some service running.
    3. instead of using gitlab can you use jenkins.
    4. how to handle scenarios of blue/green deployment from terraform.

  • @pinakimukherjee2084
    @pinakimukherjee2084 7 месяцев назад

    Excellent project. Thank you, bro.

  • @Djsanddy
    @Djsanddy 8 месяцев назад

    Amazing tutorial brother. Keep up the good work.

  • @kykel4948
    @kykel4948 9 месяцев назад

    Fantastic tutorial! Thank you! This really helped. Yours was the most comprehensive explanation I've seen so far and just you breaking down the code of the gitlab-ci file line by line in your review was incredibly helpful. So many tutorials I've watched skim over the important details and skip steps or just fail to elaborate on what their code is doing, which contributes to the confusion. My only confusion and question is about your destroy job.
    How did your destroy job run without a state declared? When I tried to run mine, it would "succeed" but only as a false positive. The destroy job wasn't finding the terraform state from the previous jobs and thinking there were 0 things to destroy. I had to troubleshoot and eventually added the state as an artifact in the apply job which resolved my issues.
    Liked, Subscribed and even bookmarked this particular tutorial!

    • @karthickmuthiah7241
      @karthickmuthiah7241 7 месяцев назад

      Hi, can you please share the steps of how you added the state as an artifact in yaml file

    • @kykel4948
      @kykel4948 7 месяцев назад

      @@karthickmuthiah7241 When you write your stages out you need to simply add an artifact path. Each stage of your CI/CD pipeline is going to stand up a new runner container so the runner in your apply stage and destroy stage won't have the terraform state file from the plan stage unless you declare it as an artifact to pass to the next stage.
      Like this:
      stages:
      - validate #simply validate that terraform is available
      - plan #create your plan file and state
      - apply #run your terraform apply
      - destroy #tear down your state build
      Example code:
      plan:
      stage: plan
      script:
      - terraform plan -state=$STATE -out="planfile"
      artifacts:
      paths:
      - planfile
      - state # This artifacts path variable will pass $STATE created in the script command to the next (apply) stage.
      Each stage will need to continue to pass the artifact. So, if you create a state in the plan stage you'll need to declare it as an artifact for apply to have access to it. If you have additional stages (such as destroy used here) then you would also have to declare it as an artifact in your apply stage to ensure that it continues to pass on into your destroy stage. Otherwise, your destroy won't be able to tear down the build from the apply stage as it no longer has that state file. Hope this helps.

  • @amarnathnachimuthu83
    @amarnathnachimuthu83 11 месяцев назад

    Great one! Keep up the good work bro.

    • @cloudchamp
      @cloudchamp  11 месяцев назад +1

      Thanks, will do!

  • @abdulkashem1829
    @abdulkashem1829 3 месяца назад

    Excellent tutorial,

  • @PortgueseProBF3
    @PortgueseProBF3 9 месяцев назад

    This is amazing and exactly what I needed except I'm trying to use gitlab it self as backend!

    • @cloudchamp
      @cloudchamp  9 месяцев назад

      Glad it was helpful!

  • @rahulsawant485
    @rahulsawant485 11 месяцев назад +2

    Great tutorial, thanks

  • @dharshansrsr976
    @dharshansrsr976 11 месяцев назад

    19:30 waiting for the second part to create keys as per the flow 😊

  • @AkshaiReddy183
    @AkshaiReddy183 11 месяцев назад +1

    Great job bhai 🎉

  • @gamingchamp3070
    @gamingchamp3070 11 месяцев назад

    Thank you for everything you do

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      You are so welcome

  • @kevinjessid
    @kevinjessid 7 месяцев назад

    parce, como diriamos en Colombia, usted es una chimba! gracias por tus videos! 👍

    • @cloudchamp
      @cloudchamp  7 месяцев назад

      Thanks brother 😎

  • @gamingchamp2834
    @gamingchamp2834 11 месяцев назад +1

    I will try this project today bro

  • @mabashadudekula367
    @mabashadudekula367 7 месяцев назад

    Clear cut explanation do more videos

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

    on point as always, short and crisp and helpful, one question @cloudchamp, which CI/CD tool is mostly used in organization i have created similar projects using jenkins, github actions and gitlab, which CI/CD tool would you suggest to work on?

  • @tech_channel110
    @tech_channel110 11 месяцев назад +1

    Sir give me fyp idea using devops and cloud
    Eg . Cloud infrastructure

  • @mohammedadbelhadi
    @mohammedadbelhadi 4 месяца назад

    amazing work :)

  • @ZayanasLittleLion
    @ZayanasLittleLion 3 месяца назад

    Thanks for the video, my current company has asked me to implement terraform with our current infrastructure, it has more than 36 resource type already in aws. Is there a easy way to import everything in aws and add CI/CD pipeline ?

  • @ammarsuhail-v8u
    @ammarsuhail-v8u 9 месяцев назад

    Appreciate it, nice work.

  • @RajagopalIyer
    @RajagopalIyer 3 месяца назад

    Is there any reason to use the plan output rather than just running terraform apply -auto-approve?

  • @-34A
    @-34A 2 месяца назад

    Hey Man, thanks for the Video! Could you do one for this Setup Terraform/Gitlab but with Azure? Im currently trying to set this up but i cant get it to work. As far as i know you need to have a gitlab Runner to execute the terraform jobs, but in gitlab it says i dont have an online runner even though i installed one and its also listed online under the runners tab. Do i need Docker on the runner machine?

  • @BrandanKing
    @BrandanKing 7 месяцев назад

    Great tutorial! If I am using Windows where do I find where my binaries and dependencies are when defining them (entrypoint) in the gitlab.ci.yml file?

  • @harshshah4477
    @harshshah4477 11 месяцев назад

    It is a good project to automate the IAC though how can we configure the automation of the BE & FE codebase as well? So that whenever I commit any changes in my code base automation directly updates the code in EC2.

  • @5ggaming760
    @5ggaming760 3 месяца назад

    brother i have a question that what sort of parameters you apply making dynamodb tables beacuse when i make it there is an error showing about the state lock so kindly guide me about this.

  • @mariocortes2670
    @mariocortes2670 11 месяцев назад

    Great explanation!

  • @THISNICKISNGUYEN
    @THISNICKISNGUYEN 23 дня назад

    22:10 day1

  • @lpsundeep3330
    @lpsundeep3330 2 месяца назад

    Awesome good job !!

    • @cloudchamp
      @cloudchamp  2 месяца назад

      Thanks for watching!

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

    can you explain the 'entry point' value on the gitlab yml. I got a bit lost and wasn't sure how you got that value

  • @GaneshRupnawar-o8k
    @GaneshRupnawar-o8k Месяц назад

    can you do this using jenkins ?

  • @Djsanddy
    @Djsanddy 8 месяцев назад

    can you please do a similar one for github CICD. Thanks a ton

  • @OnCloudNine-wv9kv
    @OnCloudNine-wv9kv 10 месяцев назад +1

    While creating the pipeline. 31.53 timestamps. how did you get the image name and the path? i tried looking that in your previous video but coudnt find it. i'd appreciate if you help me here.

    • @raj-mp7rp
      @raj-mp7rp Месяц назад

      Im also having this issue

  • @chipTuanDuc
    @chipTuanDuc 11 месяцев назад +1

    Thanks❤❤❤❤❤

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      You are welcome 🤗
      Lmk if you need help or you complete the project 👍🏻

  • @rohitbhushan7229
    @rohitbhushan7229 6 месяцев назад

    Thanks brother

  • @wassellaouini
    @wassellaouini 8 месяцев назад

    nice video man, i have a question, why didnt you define any triggers? or is the gitlab CI runs automatically when you push on the main branch by default?

    • @anthonyosunde2129
      @anthonyosunde2129 7 месяцев назад

      yes it does once theres a code change to main

  • @ammarsuhail-v8u
    @ammarsuhail-v8u 9 месяцев назад

    only one Thala @ Abhishek Vermalla

  • @prayaspatel6325
    @prayaspatel6325 17 дней назад

    why did you create variable files when you dont want to use it. you passed some empty variable in web where you could have just pass value to it but you left it empty just pain to receive

  • @anishgs84
    @anishgs84 4 месяца назад

    As our project is using TFE , what is the advantages of setup CICD pipeline in Gitlab using ".gitlab-ci.yaml" file , rather than setup "Always trigger RUn" option from TFE workspace VCS level ?
    Could you pls share the link which I can refer?

  • @gg-vt3ss
    @gg-vt3ss 3 месяца назад

    Hi bro
    I am currently pursuing gcp cloud engineer certification and i am unable to find good gcp products zero to hero
    Would be happy to see any initiative from your end for gcp project playlist

  • @techyreport7992
    @techyreport7992 11 месяцев назад

    Thank you 🙏

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      You’re welcome 😊

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

    Do u have any videos ro learn terraform please for a beginner ,appreciate it

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

      Absolutely I do, check out the playlist or a 60 mins video

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

      @cloudchamp Thank you very much ,i will start watching them videos , ,is it possible to learn that in one month for a beginner

  • @AbhishekAnand-e5w
    @AbhishekAnand-e5w 6 месяцев назад

    sometimes it give this error error configuring S3 Backend: no valid credential sources for S3 Backend found. how to solve this

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

    Great Tutorial. I have created the terraform scripts, when I push the repo to gitLab I am getting ! [remote rejected] dev -> dev (pre-receive hook declined)
    error: failed to push some refs to 'gitlab remote repo path", please can you help me to resolve this issue

  • @abhishekpatwari3680
    @abhishekpatwari3680 6 месяцев назад

    I have just read the pre-requisites. My question is that I don't know about GitLab because I haven't used it. So can this project be done with Jenkins also or GitLab is mandatory?

    • @cloudchamp
      @cloudchamp  6 месяцев назад

      Gitlab is mandatory as it is in this video but you can do it on Jenkins too

  • @sharafathussain2036
    @sharafathussain2036 6 месяцев назад

    you didnot configure any runner on this pipeline, which runner is it using ? thanks

    • @cloudchamp
      @cloudchamp  6 месяцев назад

      I did configured and showed you how to connect in this Gitlab Tutorial:
      Learn Complete GitLab CI/CD in 1 hour | GitLab CI CD Tutorial
      ruclips.net/video/JWXVijJfnHc/видео.html

  • @ragavand4678
    @ragavand4678 11 месяцев назад

    Thank you very much brother.it really helps me to understand how terraform works...

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      You are most welcome

  • @MallikarjunG-i1v
    @MallikarjunG-i1v 11 месяцев назад

    Bro which tool you used for project documentation in ubuntu 22.04?.

  • @MallikarjunG-i1v
    @MallikarjunG-i1v 11 месяцев назад

    Bro which tool used for documenting in ubuntu!!?.

  • @ragavraghu8700
    @ragavraghu8700 9 месяцев назад

    thank you!

    • @cloudchamp
      @cloudchamp  9 месяцев назад

      You are welcome 🤗

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

    Hi Nasi, i am almost there. But getting state lock error in the destroy stage. Not very sure how i can pass -lock=false for this stage manually. This work fine manually i can run this. Now im running the full pipeline and it started failing in the plan job itself saying state lock. Any leads please?

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

      You can manually release the lock using terraform force-unlock command with the lock Id.
      -lock=false is not recommended in production environments where you have multiple people working together
      Let me know if still facing issue.

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

      @@cloudchamp yes force-unlock is my first choice but silly thing is i am unable to find the lockid either in the error or state file. Below is the error i get if i run plan and cant see lock id. "Error: Error acquiring the state lock

      │ Error message: 2 errors occurred:
      │ * ResourceNotFoundException: Requested resource not found
      │ * ResourceNotFoundException: Requested resource not found



      │ Terraform acquires a state lock to protect the state from being written
      │ by multiple users at the same time. Please resolve the issue above and try
      │ again. For most commands, you can disable locking with the "-lock=false"
      │ flag, but this is not recommended."

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

      something silly im missing.

  • @jac9886
    @jac9886 8 месяцев назад

    Excellent video Nasi, it helped me a lot! I just have one question left, in your repository there's a variable TF_VAR_gitlab_token: ${GITLAB_ACCESS_TOKEN} which I was particularly interested in seeing its configuration, but you didn't mention it in the video. Is there another video about it or could you explain it to me here? Thank you very much!

  • @sjokkz
    @sjokkz 11 месяцев назад

    how can i reuse the same pipeline to deploy multiple environments with the same resources?

  • @pallavirathod2883
    @pallavirathod2883 6 месяцев назад

    I'm getting this error
    Missing newline after argument
    3: resource = "AWS_instance" "server" {
    An argument definition must end with a newline
    Please help me with this

  • @guibhai8578
    @guibhai8578 11 месяцев назад

    nasi can you share some resource to learn golang

  • @OnCloudNine-wv9kv
    @OnCloudNine-wv9kv 11 месяцев назад

    Did you create s3 and dynamoDB manually or via terraform code?

    • @cloudchamp
      @cloudchamp  10 месяцев назад +1

      Manually in this video but also have another terraform backend video where it’s done in terraform 👍🏻

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

    For anyone else who had terraform validate throw up an error, in web/main.tf:
    Change "security_groups = var.sg" to "security_groups = [var.sg]"
    Because security_groups is expecting a list of inputs to create the security group instead of a string.

  • @zikou6405
    @zikou6405 11 месяцев назад

    apply:
    stage: apply
    script:
    - terraform apply -input=false "planfile"
    dependencies:
    - plan
    the dependencies is not needed since apply and plan are in different stage so if plan stage failed the following stages will fail too
    if we put the plan and apply in the same stage then we need to add the dependecies line

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

    Can I do this project in windows 11

  • @faizanmomin4417
    @faizanmomin4417 11 месяцев назад

    Hey, Brother!
    I am also DevOps engineer, Could you please tell me which terminal are you using, It's Looking Good Though!

    • @cloudchamp
      @cloudchamp  11 месяцев назад +1

      I am using inbuilt terminal . I have Ubuntu 22 in my local

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

    15:09

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

    bruh were did you learn devops course

  • @santhoshkumarsg9339
    @santhoshkumarsg9339 7 месяцев назад

    Instead of calling the child module vpc (source=./vpc) inside web/mani.tf, why did you call source=./vpc inside main.tf (CICDTF/main.tf)
    Kindly explain me this brother..

  • @heisenberg7049
    @heisenberg7049 11 месяцев назад

    Hey bro ur discord link expired can u update it

  • @suresh.beats___
    @suresh.beats___ 11 месяцев назад +2

    bro why dont u explain in super putty

    • @cloudchamp
      @cloudchamp  11 месяцев назад

      It’s the same when you do it in Linux machine mine is Ubuntu 20

  • @gopalkrishnav2946
    @gopalkrishnav2946 8 месяцев назад

    You are too fast bro