19/30 - Terraform Provisioners (with demo) - local vs remote vs file

Welcome back to day 19 of our Terraform series! In this video, I'll walk you through the complexities and power of Terraform Provisioners. While Terraform is designed primarily for infrastructure management, there are scenarios where you need to bootstrap instances or run specific scripts immediately after creation. This video dives deep into the three main types of provisioners: `local-exec`, `remote-exec`, and the `file` provisioner. We will discuss how to execute commands on your host machine versus the target resource and how to securely transfer files during the build process. We will also address the important "last resort" philosophyโ€”explaining why HashiCorp recommends using these sparingly compared to configuration management tools like Ansible or user data scripts. What you'll learn in this video: The core differences between local-exec, remote-exec, and file provisioners. How to set up connection blocks and handle SSH keys for remote execution. A hands-on demo provisioning an AWS EC2 instance and bootstrapping it with a web server. Best practices for error handling and failure behavior in provisioners. If you found this tutorial helpful, don't forget to Subscribe for more content like this! Let us know your thoughts in the comments. TIMESTAMPS: 00:00 Introduction to Terraform Provisioners 02:15 Understanding File, Remote, and Local provisioners 05:40 Connection block configuration for remote access 09:10 Hands-on Demo: Defining provisioners in code 14:25 Executing Terraform apply and verifying output 17:50 Creation-time vs destroy-time provisioners 19:45 Handling failures and best practices Terraform provisioners with demo ๐—–๐—ข๐— ๐—ฃ๐—Ÿ๐—˜๐—ง๐—˜ COURSES ๐Ÿ‘Œ Itโ€™s ๐Ÿ…ต๐Ÿ†๐Ÿ…ด๐Ÿ…ด โ›ณ โœ… Terraform Full Course For Beginners - #28daysofAZTerraform ย ย ย โ€ขย Azureย Terraformย Fullย Courseย Forย Beginnersย ย  โœ… Certified Kubernetes Administrator (CKA) 2024 ย ย ย โ€ขย Certifiedย Kubernetesย Administratorย Fullย Co...ย ย  โœ… ๐—”๐˜‡๐˜‚๐—ฟ๐—ฒ ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€ ๐—ญ๐—ฒ๐—ฟ๐—ผ ๐˜๐—ผ ๐—›๐—ฒ๐—ฟ๐—ผ: ย ย ย โ€ขย Azureย DevOpsย Zeroย toย Heroย Fullย courseย forย ...ย ย  โœ… ๐—”๐—ญ๐Ÿต๐Ÿฌ๐Ÿฌ ๐—”๐˜‡๐˜‚๐—ฟ๐—ฒ ๐—™๐˜‚๐—ป๐—ฑ๐—ฎ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—น๐˜€ ๐—™๐˜‚๐—น๐—น ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ ย ย ย โ€ขย AZ900WithPiyushย -ย Azureย Tutorialย forย Begin...ย ย  โœ… ๐—ก๐—ฎ๐—บ๐—ฎ๐˜€๐˜๐—ฒ ๐—š๐—ผ๐—ผ๐—ด๐—น๐—ฒ ๐—–๐—น๐—ผ๐˜‚๐—ฑ | ๐—š๐—–๐—ฃ ๐—ง๐˜‚๐˜๐—ผ๐—ฟ๐—ถ๐—ฎ๐—น ๐—ณ๐—ผ๐—ฟ ๐—ฏ๐—ฒ๐—ด๐—ถ๐—ป๐—ป๐—ฒ๐—ฟ๐˜€, ๐—ฎ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—น๐—ฒ๐˜๐—ฒ ๐—ฝ๐—น๐—ฎ๐˜†๐—น๐—ถ๐˜€๐˜ ๐—ณ๐—ผ๐—ฟ ๐˜๐—ต๐—ฒ ๐—”๐˜€๐˜€๐—ผ๐—ฐ๐—ถ๐—ฎ๐˜๐—ฒ ๐—–๐—น๐—ผ๐˜‚๐—ฑ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ (๐—”๐—–๐—˜) ๐—–๐—ฒ๐—ฟ๐˜๐—ถ๐—ณ๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—˜๐˜…๐—ฎ๐—บ: ย ย ย โ€ขย Namasteย Googleย Cloud,ย GCPย Tutorialsย forย be...ย ย  โœ… ๐—”๐˜‡๐˜‚๐—ฟ๐—ฒ ๐——๐—ฎ๐˜๐—ฎ ๐—ณ๐˜‚๐—ป๐—ฑ๐—ฎ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—น๐˜€ ๐——๐—ฃ ๐Ÿต๐Ÿฌ๐Ÿฌ ๐—ณ๐˜‚๐—น๐—น ๐—ฐ๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ ย ย ย โ€ขย Microsoftย Azureย Dataย Fundamentalsย (DP-900)ย ย  โœ… ๐—๐—ฒ๐—ป๐—ธ๐—ถ๐—ป๐˜€ ๐—ง๐˜‚๐˜๐—ผ๐—ฟ๐—ถ๐—ฎ๐—น ๐—ณ๐—ผ๐—ฟ ๐—•๐—ฒ๐—ด๐—ถ๐—ป๐—ป๐—ฒ๐—ฟ๐˜€ ย ย ย โ€ขย Jenkinsย Tutorialย Forย Beginnersย ย  โœ… ๐Ÿญ๐Ÿฌ๐˜„๐—ฒ๐—ฒ๐—ธ๐˜€๐—ผ๐—ณ๐—ฐ๐—น๐—ผ๐˜‚๐—ฑ๐—ผ๐—ฝ๐˜€ - ๐—ฅ๐—ฒ๐—ฎ๐—น-๐˜๐—ถ๐—บ๐—ฒ ๐—ฐ๐—ผ๐—บ๐—ฝ๐—น๐—ฒ๐˜… ๐—ต๐—ฎ๐—ป๐—ฑ๐˜€-๐—ผ๐—ป ๐—ฝ๐—ฟ๐—ผ๐—ท๐—ฒ๐—ฐ๐˜๐˜€ ๐—ผ๐—ป ๐—–๐—น๐—ผ๐˜‚๐—ฑ ๐—ฎ๐—ป๐—ฑ ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€ ย ย ย โ€ขย 10WeeksOfCloudOpsย Challengeย -ย DevOpsย andย C...ย ย  โœ… ๐——๐—ฒ๐˜ƒ๐—ข๐—ฝ๐˜€ ๐—ฎ๐—ป๐—ฑ ๐—–๐—น๐—ผ๐˜‚๐—ฑ ๐—ฃ๐—ผ๐—ฑ๐—ฐ๐—ฎ๐˜€๐˜๐˜€: ย ย ย โ€ขย DevOpsย andย Cloudย Podcastsย ย  โœ… ๐—š๐—ถ๐˜๐—น๐—ฎ๐—ฏ ๐—–๐—œ ๐—–๐—— ๐—ง๐˜‚๐˜๐—ผ๐—ฟ๐—ถ๐—ฎ๐—น | ๐—˜๐—ป๐—ฑ ๐—ง๐—ผ ๐—˜๐—ป๐—ฑ ๐—ฅ๐—ฒ๐—ฎ๐—น-๐˜๐—ถ๐—บ๐—ฒ ๐—ฃ๐—ฟ๐—ผ๐—ท๐—ฒ๐—ฐ๐˜ [๐—™๐˜‚๐—น๐—น ๐—–๐—ผ๐˜‚๐—ฟ๐˜€๐—ฒ] ย ย ย โ€ขย GitLabย CI/CDย Fullย Tutorialย forย Beginnersย [...ย ย  Subscribe to our channel to get notified about the latest videos. ๐Ÿ”ฅ ย ย ย /ย techtutorialswithpiyushย ย  ๐Ÿ‘จโ€๐Ÿ’ป Got a video request? submit it using the below link or vote on the existing requests https://request.techtutorialswithpiyu... ----------------------------------------------------------------------------------------------------------------------- ๐—–๐—ผ๐—ป๐—ป๐—ฒ๐—ฐ๐˜ ๐—บ๐—ฒ ๐—›๐—ฒ๐—ฟ๐—ฒ:๐Ÿ‘‡๐Ÿ‘‡ ๐Ÿ”ฅ๐—ฌ๐—ผ๐˜‚๐—ง๐˜‚๐—ฏ๐—ฒ โ–ถ ย ย ย /ย techtutorialswithpiyushย ย  โ›ณ๐—Ÿ๐—ถ๐—ป๐—ธ๐—ฒ๐—ฑ๐—œ๐—ป โ–ถ ย ย /ย piyush-sachdevaย ย  ๐Ÿš€๐—œ๐—ป๐˜€๐˜๐—ฎ๐—ด๐—ฟ๐—ฎ๐—บ โ–ถ ย ย /ย techtutorialswithpiyushย ย  ๐ŸŒ๐—ง๐˜„๐—ถ๐˜๐˜๐—ฒ๐—ฟ โ–ถ ย ย /ย techie_piyushย ย  ๐Ÿ‘จโ€๐Ÿ’ป ๐—š๐—ถ๐˜๐—ต๐˜‚๐—ฏ โ–ถ https://github.com/piyushsachdeva โœ ๐— ๐—ฒ๐—ฑ๐—ถ๐˜‚๐—บ.๐—ฐ๐—ผ๐—บ โ–ถ ย ย /ย piyush.sachdeva055ย ย  ๐Ÿ“š ๐—ฑ๐—ฒ๐˜ƒ.๐˜๐—ผ โ–ถ https://dev.to/piyushsachdeva โœจ๐——๐—ถ๐˜€๐—ฐ๐—ผ๐—ฟ๐—ฑ โ–ถ ย ย /ย discordย ย  ----------------------------------------------------------------------------------------------------------------------- References ๐Ÿ“š: #devops #techtutorialswithpiyush