Search code examples
linuxazurevirtual-machineinstanceazure-resource-manager

Beginner to Azure and cloud computing in general, how can I set up a "template" for launching a certain set or mix of custom VMs?


Forgive my noobiness in advance, I'm new to the industry and really interested in cloud computing, but unfamiliar with a lot of the ecosystem surrounding it.

For example, let's say I want to launch 4 Linux VMs of a certain size with certain configurations in each of 4 regions. With the limited beginner-level experience I have now, my approach would be to hand-deploy each of the 16 resultant Linux VMs.

However, I feel like there's got to be a way to automate this. How can I write a script that will let me pre-define a set or list of VMs with unique configurations and then deploy them all at once? Is it possible to then run the same bash script on-launch for each of them?


Solution

  • There are dozen of ways of doing this:

    1. az cli script
    2. powershell script
    3. arm template
    4. terraform
    5. ansible
    6. pulumi
    7. various SDK (c#, python, java, etc)
    8. plain rest api calls
    9. multiple others tools

    Just pick whatever you are comfortable with and start working in that direction

    In terms of ease of use: I'd rate api calls and SDK's as the least comfortable to use. Others - are a matter of experience\preference

    In terms of usefulness outside of Azure: probably powershell and terraform would be the most useful (and ansible)