Giter Club home page Giter Club logo

deploy_vmss_custom's Introduction

Deploy Custom Virtual Machine Scale Set

Quick Start

This template is intended to be deployed into pre-existing infrastructure. Please review the entirety of this markdown file for full details.

Details

This deployment template deploys a customized virtual machine scale set based on Windows Server 2016 with the following attributes:

  • Deploys utilizing custom image, template assumes IIS is pre-installed though it can be modified for any application by modifiying the configVMSS.ps1 file.
  • Auto scaling enabled
    • Scales up by 2 instances when CPU % Utilization is > 70% over 10 minute duration
    • Scales down by 1 instance when CPU & Utilization is < 30% over 10 minute duration
    • Maintains a miniumum of 2 instances at all times, Maximum of 20 instances
  • Enables graceful scale-in (termination events) operations via the Azure Metadata Service
  • Utilizes multiple extensions
    • Customer script extension which configures IIS and enables termination event actions
      • During scale-in operations, termination events result in the instance being un-joined from Active Directory and any required custom code executed. This is intended to allow for graceful scale-in operations.
    • Joins the specified Active Directory domain during initial deployment and also during all scale-up actions.

Pre-Requisites

This template assumes that the Virtual Machin Scale Set (VMSS) is being deployed into existing infrastructure and that no internet access is permitted. Please ensure the following is in place prior to deploying:

  • Active Directory - The VMSS instances will attempt to join the local Active Directory domain, so one must be avaliable and accessible from the subnet where the VMSS is deployed.
  • Artifact Storage Account - A storage account must be avaliable with an ACL applied to allow traffic from the subnet where the VMSS is deployed.
    • A blob container must be created in the storage account with an Access Policy of "Blob". This will allow the VMSS instances from the VMSS subnet to access the blobs directly. When configured in this fashion, no access is permitted to the storage account except from the specified subnet.
    • Upload configVMSS.ps1 & terminateInstance.ps1 to the blob container
    • Don't forget to update the template parameter "fileURI" and configVMSS.ps1 with the appropriate storage account name and blob container name.
  • VMSS Subnet: Please enable the VNET Service Endpoint for "Azure Storage" within the virtual network that houses your VMSS Subnet.
    • This allows VMSS instances to communicate directly to the storage account hosting your PowerShell scripts from private IP space without the need for network address translation

Additional Resources

Learn all about some of the technologies utilized as part of this template deployment.

NOTICE/WARNING

  • This template is explicitly designed for a lab/classroom environment and is intended to offer a way to move forward by allowing you to import the code and make it your own, fully compliant with the organizations security controls which you represent.

Contributing

This project welcomes contributions and suggestions.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ with any additional questions or comments.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.