DevOps Classroomnotes 04/Jun/2022

Terraform Provisioning

  • Provisioners can be used to model specific actions on the local machine or on a remote machine in order to prepare server or other infrastructure objects at scale.
  • Concept of provisioning
    Preview
  • Provisioner types:
    • file
    • local-exec
    • remote-exec
    • chef
    • salt
    • puppet
  • Refer Here

Activity: Lets install the following on the web vm

  • Lets install apache server
sudo apt update
sudo apt install apache2 -y
  • Lets do this in Azure (/AWS)
  • Lets create connection
  • Refer Here for the changes done to install apache2 on web vm and conditionally create app and db servers
  • Situation1: To get the public ip from vm, we had to go to azure portal. Refer Here for the output documentation. Refer Here for the changes done
    Preview
  • Situation 2: We need to change the script and execute the installation of some other software
    • The VM is already created
    • Lets change the script and rexecute
      Preview
    • The change in script of provisioning is not considered as change
      Preview
  • Solution 1 to above problem:
    • Whenever you change any thing in script, recreate the virtual machine
    • We need to mark virtual machine for deletion during next apply this is referred as taint in terraform.
    • Lets taint the vm and execute apply
      Preview
      Preview
      Preview
      Preview
  • Solution 2: Execute provisioning all the times when you execute apply
    • But terraform executes provisioner only when resource is created.
    • Terraform has a resource called as null resource which it tries to create during apply and we run the provisioner over there
      Preview
    • One option is to mark the null resource for taint before apply (or when the provisioining needs to happen)
    • other option is to use triggers
      Preview
      Preview
    • Refer Here for the changes done.
  • Exercise:
    • For the people aware of ansible try to install apache server from ansible playbook in terraform provisioning
    • Create the provisioner to install tomcat on appserver
  • Made some subtle changes and we have the following output, Refer Here for the changes
    Preview

Activity: Create a reusable terraform configuration to create ntier

  • Terraform modules can help in creating reusable configuration Refer Here

Situation 1: Lets try to use existing modules

  • A lot of opensource contributers create reusable terraform configuration as modules and host them on various sources.
  • Terraform registry is the popular one
  • Lets try to use a module created by someone to create a network in Azure Refer Herefor the network module
  • Refer Here for the changeset
    Preview
  • The source code of the module which we have used is Refer Here
  • It is exactly similar what we have been developing
  • A Module is a collection of terraform files
    • input variables become arguments
    • output variables become attributes of the module

Situation 2: Lets try to create module from our configuration

  • Refer Here for the module which we added
  • Structure recommendations of module from terraform Refer Here
  • We have used the source which is present in the same machine and we can use this source to access any drive (local/network) to gain access to reusable modules

Situation 3: How to make modules to be used by all of our team members

  • One way is make them available on network file shares and access them
  • We can use any of the module sources Refer Here
    Preview
  • Create a git repository for every module which devops team creates Refer Here
  • for using module from git we have created the following changeset Refer Here
  • Now execute init and apply
    Preview
    Preview

Published
Categorized as Uncategorized Tagged

By continuous learner

devops & cloud enthusiastic learner

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Please turn AdBlock off
Animated Social Media Icons by Acurax Wordpress Development Company

Discover more from Direct DevOps from Quality Thought

Subscribe now to keep reading and get access to the full archive.

Continue reading

Visit Us On FacebookVisit Us On LinkedinVisit Us On Youtube