• Stars
    star
    529
  • Rank 83,014 (Top 2 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 12 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Microsoft Azure Linux Guest Agent

Microsoft Azure Linux Agent

Linux distributions support

Our daily automation tests most of the Linux distributions supported by Azure; the Agent can be used on other distributions as well, but development, testing and support for those are done by the open source community.

Testing is done using the develop branch, which can be unstable. For a stable build please use the master branch instead.

CodeCov

Introduction

The Microsoft Azure Linux Agent (waagent) manages Linux provisioning and VM interaction with the Azure Fabric Controller. It provides the following functionality for Linux IaaS deployments:

  • Image Provisioning

    • Creation of a user account
    • Configuring SSH authentication types
    • Deployment of SSH public keys and key pairs
    • Setting the host name
    • Publishing the host name to the platform DNS
    • Reporting SSH host key fingerprint to the platform
    • Resource Disk Management
    • Formatting and mounting the resource disk
    • Configuring swap space
  • Networking

    • Manages routes to improve compatibility with platform DHCP servers
    • Ensures the stability of the network interface name
  • Kernel

    • Configure virtual NUMA (disable for kernel <2.6.37)
    • Configure SCSI timeouts for the root device (which could be remote)
  • Diagnostics

    • Console redirection to the serial port
  • SCVMM Deployments

    • Detect and bootstrap the VMM agent for Linux when running in a System Center Virtual Machine Manager 2012R2 environment
  • VM Extension

    • Inject component authored by Microsoft and Partners into Linux VM (IaaS) to enable software and configuration automation
    • VM Extension reference implementation on GitHub

Communication

The information flow from the platform to the agent occurs via two channels:

  • A boot-time attached DVD for IaaS deployments. This DVD includes an OVF-compliant configuration file that includes all provisioning information other than the actual SSH keypairs.

  • A TCP endpoint exposing a REST API used to obtain deployment and topology configuration.

The agent will use an HTTP proxy if provided via the http_proxy (for http requests) or https_proxy (for https requests) environment variables. The HttpProxy.Host and HttpProxy.Port configuration variables (see below), if used, will override the environment settings. Due to limitations of Python, the agent does not support HTTP proxies requiring authentication. Note that when the agent service is managed by systemd, environment variables such as http_proxy and https_proxy should be defined using one the mechanisms provided by systemd (e.g. by using Environment or EnvironmentFile in the service file).

Requirements

The following systems have been tested and are known to work with the Azure Linux Agent. Please note that this list may differ from the official list of supported systems on the Microsoft Azure Platform as described here.

Waagent depends on some system packages in order to function properly:

  • Python 2.6+
  • OpenSSL 1.0+
  • OpenSSH 5.3+
  • Filesystem utilities: sfdisk, fdisk, mkfs, parted
  • Password tools: chpasswd, sudo
  • Text processing tools: sed, grep
  • Network tools: ip-route

Installation

Installation via your distribution's package repository is preferred. You can also customize your own RPM or DEB packages using the configuration samples provided (see deb and rpm sections below).

For more advanced installation options, such as installing to custom locations or prefixes, you can use setuptools to install from source by running:

    sudo python setup.py install --register-service

For Python 3, use:

    sudo python3 setup.py install --register-service

You can view more installation options by running:

    sudo python setup.py install --help

The agent's log file is kept at /var/log/waagent.log.

Upgrade

Upgrading via your distribution's package repository is strongly preferred.

If upgrading manually, same with installation above by running:

    sudo python setup.py install --force

Restart waagent service,for most of linux distributions:

    sudo service waagent restart

For Ubuntu, use:

    sudo service walinuxagent restart

For CoreOS, use:

    sudo systemctl restart waagent

Command line options

Flags

-verbose: Increase verbosity of specified command

-force: Skip interactive confirmation for some commands

Commands

-help: Lists the supported commands and flags.

-deprovision: Attempt to clean the system and make it suitable for re-provisioning, by deleting the following:

  • All SSH host keys (if Provisioning.RegenerateSshHostKeyPair is 'y' in the configuration file)

  • Nameserver configuration in /etc/resolv.conf

  • Root password from /etc/shadow (if Provisioning.DeleteRootPassword is 'y' in the configuration file)

  • Cached DHCP client leases

  • Resets host name to localhost.localdomain

    WARNING! Deprovision does not guarantee that the image is cleared of all sensitive information and suitable for redistribution.

-deprovision+user: Performs everything under deprovision (above) and also deletes the last provisioned user account and associated data.

-version: Displays the version of waagent

-serialconsole: Configures GRUB to mark ttyS0 (the first serial port) as the boot console. This ensures that kernel bootup logs are sent to the serial port and made available for debugging.

-daemon: Run waagent as a daemon to manage interaction with the platform. This argument is specified to waagent in the waagent init script.

-start: Run waagent as a background process

-collect-logs [-full]: Runs the log collector utility that collects relevant agent logs for debugging and stores them in the agent folder on disk. Exact location will be shown when run. Use flag -full for more exhaustive log collection.

Configuration

A configuration file (/etc/waagent.conf) controls the actions of waagent. Blank lines and lines whose first character is a # are ignored (end-of-line comments are not supported).

A sample configuration file is shown below:

Extensions.Enabled=y
Extensions.GoalStatePeriod=6
Provisioning.Agent=auto
Provisioning.DeleteRootPassword=n
Provisioning.RegenerateSshHostKeyPair=y
Provisioning.SshHostKeyPairType=rsa
Provisioning.MonitorHostName=y
Provisioning.DecodeCustomData=n
Provisioning.ExecuteCustomData=n
Provisioning.PasswordCryptId=6
Provisioning.PasswordCryptSaltLength=10
ResourceDisk.Format=y
ResourceDisk.Filesystem=ext4
ResourceDisk.MountPoint=/mnt/resource
ResourceDisk.MountOptions=None
ResourceDisk.EnableSwap=n
ResourceDisk.EnableSwapEncryption=n
ResourceDisk.SwapSizeMB=0
Logs.Verbose=n
Logs.Collect=y
Logs.CollectPeriod=3600
OS.AllowHTTP=n
OS.RootDeviceScsiTimeout=300
OS.EnableFIPS=n
OS.OpensslPath=None
OS.SshClientAliveInterval=180
OS.SshDir=/etc/ssh
HttpProxy.Host=None
HttpProxy.Port=None

The various configuration options are described in detail below. Configuration options are of three types : Boolean, String or Integer. The Boolean configuration options can be specified as "y" or "n". The special keyword "None" may be used for some string type configuration entries as detailed below.

Configuration File Options

Extensions.Enabled

Type: Boolean
Default: y

This allows the user to enable or disable the extension handling functionality in the agent. Valid values are "y" or "n". If extension handling is disabled, the goal state will still be processed and VM status is still reported, but only every 5 minutes. Extension config within the goal state will be ignored. Note that functionality such as password reset, ssh key updates and backups depend on extensions. Only disable this if you do not need extensions at all.

Note: disabling extensions in this manner is not the same as running completely without the agent. In order to do that, the provisionVMAgent flag must be set at provisioning time, via whichever API is being used. We will provide more details on this on our wiki when it is generally available.

Extensions.GoalStatePeriod

Type: Integer
Default: 6

How often to poll for new goal states (in seconds) and report the status of the VM and extensions. Goal states describe the desired state of the extensions on the VM.

Note: setting up this parameter to more than a few minutes can make the state of the VM be reported as unresponsive/unavailable on the Azure portal. Also, this setting affects how fast the agent starts executing extensions.

AutoUpdate.Enabled

Type: Boolean
Default: y

Enables auto-update of the Extension Handler. The Extension Handler is responsible for managing extensions and reporting VM status. The core functionality of the agent is contained in the Extension Handler, and we encourage users to enable this option in order to maintain an up to date version.

On most distros the default value is 'y'.

For more information on the agent version, see our FAQ.

Provisioning.Agent

Type: String Default: auto

Choose which provisioning agent to use (or allow waagent to figure it out by specifying "auto"). Possible options are "auto" (default), "waagent", "cloud-init", or "disabled".

Provisioning.Enabled (removed in 2.2.45)

Type: Boolean Default: y

This allows the user to enable or disable the provisioning functionality in the agent. Valid values are "y" or "n". If provisioning is disabled, SSH host and user keys in the image are preserved and any configuration specified in the Azure provisioning API is ignored.

Note: This configuration option has been removed and has no effect. waagent now auto-detects cloud-init as a provisioning agent (with an option to override with Provisioning.Agent).

Provisioning.MonitorHostName

Type: Boolean Default: n

Monitor host name changes and publish changes via DHCP requests.

Provisioning.MonitorHostNamePeriod

Type: Integer Default: 30

How often to monitor host name changes (in seconds). This setting is ignored if MonitorHostName is not set.

Provisioning.UseCloudInit

Type: Boolean Default: n

This options enables / disables support for provisioning by means of cloud-init. When true ("y"), the agent will wait for cloud-init to complete before installing extensions and processing the latest goal state. Provisioning.Enabled must be disabled ("n") for this option to have an effect. Setting Provisioning.Enabled to true ("y") overrides this option and runs the built-in agent provisioning code.

Note: This configuration option has been removed and has no effect. waagent now auto-detects cloud-init as a provisioning agent (with an option to override with Provisioning.Agent).

Provisioning.DeleteRootPassword

Type: Boolean
Default: n

If set, the root password in the /etc/shadow file is erased during the provisioning process.

Provisioning.RegenerateSshHostKeyPair

Type: Boolean
Default: y

If set, all SSH host key pairs (ecdsa, dsa and rsa) are deleted during the provisioning process from /etc/ssh/. And a single fresh key pair is generated. The encryption type for the fresh key pair is configurable by the Provisioning.SshHostKeyPairType entry. Please note that some distributions will re-create SSH key pairs for any missing encryption types when the SSH daemon is restarted (for example, upon a reboot).

Provisioning.SshHostKeyPairType

Type: String
Default: rsa

This can be set to an encryption algorithm type that is supported by the SSH daemon on the VM. The typically supported values are "rsa", "dsa" and "ecdsa". Note that "putty.exe" on Windows does not support "ecdsa". So, if you intend to use putty.exe on Windows to connect to a Linux deployment, please use "rsa" or "dsa".

Provisioning.MonitorHostName

Type: Boolean
Default: y

If set, waagent will monitor the Linux VM for hostname changes (as returned by the "hostname" command) and automatically update the networking configuration in the image to reflect the change. In order to push the name change to the DNS servers, networking will be restarted in the VM. This will result in brief loss of Internet connectivity.

Provisioning.DecodeCustomData

Type: Boolean
Default: n

If set, waagent will decode CustomData from Base64.

Provisioning.ExecuteCustomData

Type: Boolean
Default: n

If set, waagent will execute CustomData after provisioning.

Provisioning.PasswordCryptId

Type: String
Default: 6

Algorithm used by crypt when generating password hash.

  • 1 - MD5
  • 2a - Blowfish
  • 5 - SHA-256
  • 6 - SHA-512

Provisioning.PasswordCryptSaltLength

Type: String
Default: 10

Length of random salt used when generating password hash.

ResourceDisk.Format

Type: Boolean
Default: y

If set, the resource disk provided by the platform will be formatted and mounted by waagent if the filesystem type requested by the user in "ResourceDisk.Filesystem" is anything other than "ntfs". A single partition of type Linux (83) will be made available on the disk. Note that this partition will not be formatted if it can be successfully mounted.

ResourceDisk.Filesystem

Type: String
Default: ext4

This specifies the filesystem type for the resource disk. Supported values vary by Linux distribution. If the string is X, then mkfs.X should be present on the Linux image. SLES 11 images should typically use 'ext3'. BSD images should use 'ufs2' here.

ResourceDisk.MountPoint

Type: String
Default: /mnt/resource

This specifies the path at which the resource disk is mounted.

ResourceDisk.MountOptions

Type: String
Default: None

Specifies disk mount options to be passed to the mount -o command. This is a comma separated list of values, ex. 'nodev,nosuid'. See mount(8) for details.

ResourceDisk.EnableSwap

Type: Boolean
Default: n

If set, a swap file (/swapfile) is created on the resource disk and added to the system swap space.

ResourceDisk.EnableSwapEncryption

Type: Boolean
Default: n

If set, the swap file (/swapfile) is mounted as an encrypted filesystem (flag supported only on FreeBSD.)

ResourceDisk.SwapSizeMB

Type: Integer
Default: 0

The size of the swap file in megabytes.

Logs.Verbose

Type: Boolean
Default: n

If set, log verbosity is boosted. Waagent logs to /var/log/waagent.log and leverages the system logrotate functionality to rotate logs.

Logs.Collect

Type: Boolean
Default: y

If set, agent logs will be periodically collected and uploaded to a secure location for improved supportability.

NOTE: This feature relies on the agent's resource usage features (cgroups); this flag will not take effect on any distro not supported.

Logs.CollectPeriod

Type: Integer
Default: 3600

This configures how frequently to collect and upload logs. Default is each hour.

NOTE: This only takes effect if the Logs.Collect option is enabled.

OS.AllowHTTP

Type: Boolean
Default: n

If SSL support is not compiled into Python, the agent will fail all HTTPS requests. You can set this option to 'y' to make the agent fall-back to HTTP, instead of failing the requests.

NOTE: Allowing HTTP may unintentionally expose secure data.

OS.EnableRDMA

Type: Boolean
Default: n

If set, the agent will attempt to install and then load an RDMA kernel driver that matches the version of the firmware on the underlying hardware.

OS.EnableFIPS

Type: Boolean
Default: n

If set, the agent will emit into the environment "OPENSSL_FIPS=1" when executing OpenSSL commands. This signals OpenSSL to use any installed FIPS-compliant libraries. Note that the agent itself has no FIPS-specific code. If no FIPS-compliant certificates are installed, then enabling this option will cause all OpenSSL commands to fail.

OS.MonitorDhcpClientRestartPeriod

Type: Integer Default: 30

The agent monitor restarts of the DHCP client and restores network rules when it happens. This setting determines how often (in seconds) to monitor for restarts.

OS.RootDeviceScsiTimeout

Type: Integer
Default: 300

This configures the SCSI timeout in seconds on the root device. If not set, the system defaults are used.

OS.RootDeviceScsiTimeoutPeriod

Type: Integer
Default: 30

How often to set the SCSI timeout on the root device (in seconds). This setting is ignored if RootDeviceScsiTimeout is not set.

OS.OpensslPath

Type: String
Default: None

This can be used to specify an alternate path for the openssl binary to use for cryptographic operations.

OS.RemovePersistentNetRulesPeriod

Type: Integer
Default: 30

How often to remove the udev rules for persistent network interface names (75-persistent-net-generator.rules and /etc/udev/rules.d/70-persistent-net.rules) (in seconds)

OS.SshClientAliveInterval

Type: Integer
Default: 180

This values sets the number of seconds the agent uses for the SSH ClientAliveInterval configuration option.

OS.SshDir

Type: String
Default: /etc/ssh

This option can be used to override the normal location of the SSH configuration directory.

HttpProxy.Host, HttpProxy.Port

Type: String
Default: None

If set, the agent will use this proxy server to access the internet. These values will override the http_proxy or https_proxy environment variables. Lastly, HttpProxy.Host is required (if to be used) and HttpProxy.Port is optional.

CGroups.EnforceLimits

Type: Boolean
Default: y

If set, the agent will attempt to set cgroups limits for cpu and memory for the agent process itself as well as extension processes. See the wiki for further details on this.

CGroups.Excluded

Type: String
Default: customscript,runcommand

The list of extensions which will be excluded from cgroups limits. This should be comma separated.

Telemetry

WALinuxAgent collects usage data and sends it to Microsoft to help improve our products and services. The data collected is used to track service health and assist with Azure support requests. Data collected does not include any personally identifiable information. Read our privacy statement to learn more.

WALinuxAgent does not support disabling telemetry at this time. WALinuxAgent must be removed to disable telemetry collection. If you need this feature, please open an issue in GitHub and explain your requirement.

Appendix

We do not maintain packaging information in this repo but some samples are shown below as a reference. See the downstream distribution repositories for officially maintained packaging.

deb packages

The official Ubuntu WALinuxAgent package can be found here.

Run once:

  1. Install required packages

    sudo apt-get -y install ubuntu-dev-tools pbuilder python-all debhelper
  2. Create the pbuilder environment

    sudo pbuilder create --debootstrapopts --variant=buildd
  3. Obtain waagent.dsc from a downstream package repo

To compile the package, from the top-most directory:

  1. Build the source package

    dpkg-buildpackage -S
  2. Build the package

    sudo pbuilder build waagent.dsc
  3. Fetch the built package, usually from /var/cache/pbuilder/result

rpm packages

The instructions below describe how to build an rpm package.

  1. Install setuptools

    curl https://bootstrap.pypa.io/ez_setup.py -o - | python
  2. The following command will build the binary and source RPMs:

    python setup.py bdist_rpm

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

More Repositories

1

azure-quickstart-templates

Azure Quickstart Templates
Bicep
13,930
star
2

azure-sdk-for-net

This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
C#
5,123
star
3

Azure-Sentinel

Cloud-native SIEM for intelligent security analytics for your entire enterprise.
Jupyter Notebook
4,458
star
4

azure-sdk-for-python

This repository is for active development of the Azure SDK for Python. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/python/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-python.
Python
4,340
star
5

autorest

OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, PowerShell, Go, Java, Node.js, TypeScript, Python
TypeScript
4,332
star
6

azure-powershell

Microsoft Azure PowerShell
C#
4,178
star
7

DotNetty

DotNetty project – a port of netty, event-driven asynchronous network application framework
C#
4,056
star
8

MachineLearningNotebooks

Python notebooks with ML and deep learning examples with Azure Machine Learning Python SDK | Microsoft
Jupyter Notebook
4,030
star
9

azure-cli

Azure Command-Line Interface
Python
3,930
star
10

draft-classic

A tool for developers to create cloud-native applications on Kubernetes.
Go
3,925
star
11

bicep

Bicep is a declarative language for describing and deploying Azure resources
Bicep
3,185
star
12

azure-rest-api-specs

The source for REST API specifications for Microsoft Azure.
TypeScript
2,536
star
13

azure-sdk-for-java

This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
Java
2,242
star
14

azure-sdk-for-js

This repository is for active development of the Azure SDK for JavaScript (NodeJS & Browser). For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/javascript/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-js.
TypeScript
1,975
star
15

AKS

Azure Kubernetes Service
HTML
1,949
star
16

azure-functions-host

The host/runtime that powers Azure Functions
C#
1,871
star
17

golua

A Lua 5.3 engine implemented in Go
Go
1,850
star
18

Azurite

A lightweight server clone of Azure Storage that simulates most of the commands supported by it with minimal dependencies
TypeScript
1,792
star
19

azureml-examples

Official community-driven Azure Machine Learning examples, tested with GitHub Actions.
Jupyter Notebook
1,687
star
20

Microsoft-Defender-for-Cloud

Welcome to the Microsoft Defender for Cloud community repository
PowerShell
1,677
star
21

Enterprise-Scale

The Azure Landing Zones (Enterprise-Scale) architecture provides prescriptive guidance coupled with Azure best practices, and it follows design principles across the critical design areas for organizations to define their Azure architecture
PowerShell
1,603
star
22

azure-sdk-for-go

This repository is for active development of the Azure SDK for Go. For consumers of the SDK we recommend visiting our public developer docs at:
Go
1,552
star
23

durabletask

Durable Task Framework allows users to write long running persistent workflows in C# using the async/await capabilities.
C#
1,497
star
24

Stormspotter

Azure Red Team tool for graphing Azure and Azure Active Directory objects
Python
1,493
star
25

azure-policy

Repository for Azure Resource Policy built-in definitions and samples
Open Policy Agent
1,485
star
26

iotedge

The IoT Edge OSS project
C#
1,421
star
27

aztfexport

A tool to bring existing Azure resources under Terraform's management
Go
1,335
star
28

azure-sdk-for-node

Azure SDK for Node.js - Documentation
JavaScript
1,187
star
29

review-checklists

This repo contains code and examples to operationalize Azure review checklists.
Python
1,160
star
30

azure-functions-core-tools

Command line tools for Azure Functions
C#
1,128
star
31

Azure-Functions

PowerShell
1,107
star
32

acs-engine

WE HAVE MOVED: Please join us at Azure/aks-engine!
Go
1,031
star
33

aks-engine

AKS Engine: legacy tool for Kubernetes on Azure (see status)
Go
1,027
star
34

data-api-builder

Data API builder provides modern REST and GraphQL endpoints to your Azure Databases and on-prem stores.
C#
846
star
35

coco-framework

The Confidential Consortium Blockchain Framework is an open-source system that enables high-scale, confidential blockchain networks that meet all key enterprise requirementsβ€”providing a means to accelerate production enterprise adoption of blockchain technology.
834
star
36

azure-iot-sdks

SDKs for a variety of languages and platforms that help connect devices to Microsoft Azure IoT services
829
star
37

GPT-RAG

Sharing the learning along the way we been gathering to enable Azure OpenAI at enterprise scale in a secure manner. GPT-RAG core is a Retrieval-Augmented Generation pattern running in Azure, using Azure Cognitive Search for retrieval and Azure OpenAI large language models to power ChatGPT-style and Q&A experiences.
Bicep
822
star
38

terraform-azurerm-caf-enterprise-scale

Azure landing zones Terraform module
HCL
794
star
39

azure-sql-database-samples

Azure SQL Database Samples and Reference Implementation Repository
Python
781
star
40

Azure-Network-Security

Resources for improving Customer Experience with Azure Network Security
Python
768
star
41

AzurePublicDataset

Microsoft Azure Traces
Jupyter Notebook
761
star
42

caf-terraform-landingzones

Azure Terraform SRE framework
HCL
756
star
43

azure-search-vector-samples

A repository of code samples for Vector search capabilities in Azure AI Search.
Jupyter Notebook
729
star
44

azure-functions-durable-extension

Durable Task Framework extension for Azure Functions
C#
715
star
45

azure-service-operator

Azure Service Operator allows you to create Azure resources using kubectl
Go
715
star
46

azure-webjobs-sdk

Azure WebJobs SDK
C#
712
star
47

ResourceModules

This repository includes a CI platform for and collection of mature and curated Bicep modules. The platform supports both ARM and Bicep and can be leveraged using GitHub actions as well as Azure DevOps pipelines.
Bicep
710
star
48

ALZ-Bicep

This repository contains the Azure Landing Zones (ALZ) Bicep modules that help deliver and deploy the Azure Landing Zone conceptual architecture in a modular approach. https://aka.ms/alz/docs
Bicep
694
star
49

azure-api-management-devops-resource-kit

Azure API Management DevOps Resource Kit
C#
682
star
50

azure-sdk-for-rust

This repository is for active development of the *unofficial* Azure SDK for Rust. This repository is *not* supported by the Azure SDK team.
Rust
672
star
51

application-gateway-kubernetes-ingress

This is an ingress controller that can be run on Azure Kubernetes Service (AKS) to allow an Azure Application Gateway to act as the ingress for an AKS cluster.
Go
668
star
52

CCOInsights

Welcome to the Continuous Cloud Optimization Power BI Dashboard GitHub Project. In this repository you will find all the guidance and files needed to deploy the Dashboard in your environment to take benefit of a single pane of glass to get insights about your Azure resources and services.
Mathematica
668
star
53

SimuLand

Understand adversary tradecraft and improve detection strategies
PowerShell
664
star
54

azure-xplat-cli

For ARM-based service please go to CLI 2.0.
JavaScript
651
star
55

terraform

Source code for the Azure Marketplace Terraform development VM package.
HCL
648
star
56

DeepLearningForTimeSeriesForecasting

A tutorial demonstrating how to implement deep learning models for time series forecasting
Jupyter Notebook
647
star
57

azure-cosmos-dotnet-v3

.NET SDK for Azure Cosmos DB for the core SQL API
C#
637
star
58

node-sqlserver

C++
625
star
59

azure-devops-cli-extension

Azure DevOps Extension for Azure CLI
Python
621
star
60

azure-storage-fuse

A virtual file system adapter for Azure Blob storage
Go
613
star
61

Community-Policy

This repo is for Microsoft Azure customers and Microsoft teams to collaborate in making custom policies.
Open Policy Agent
612
star
62

azure-resource-manager-schemas

Schemas used to author and validate Resource Manager Templates. These schemas power the intellisense and syntax completion in our ARM Tools VSCode extension, as well as the Export Template API
TypeScript
607
star
63

counterfit

a CLI that provides a generic automation layer for assessing the security of ML models
Python
599
star
64

azure-storage-azcopy

The new Azure Storage data transfer utility - AzCopy v10
Go
597
star
65

azure-cosmos-dotnet-v2

Contains samples and utilities relating to the Azure Cosmos DB .NET SDK
577
star
66

azure-iot-sdk-c

A C99 SDK for connecting devices to Microsoft Azure IoT services
C
575
star
67

azure-service-bus

☁️ Azure Service Bus service issue tracking and samples
571
star
68

aad-pod-identity

[DEPRECATED] Assign Azure Active Directory Identities to Kubernetes applications.
Go
569
star
69

Azure-Sentinel-Notebooks

Interactive Azure Sentinel Notebooks provides security insights and actions to investigate anomalies and hunt for malicious behaviors.
Jupyter Notebook
541
star
70

AzureStack-QuickStart-Templates

Quick start ARM templates that deploy on Microsoft Azure Stack
PowerShell
540
star
71

iot-edge-v1

Azure IoT Edge
C
524
star
72

Industrial-IoT

Azure Industrial IoT Platform
C#
518
star
73

azure-openai-samples

Azure OpenAI Samples is a collection of code samples illustrating how to use Azure Open AI in creating AI solution for various use cases across industries. This repository is mained by a community of volunters. We welcomed your contributions.
Jupyter Notebook
514
star
74

Mission-Critical

This repository provides a design methodology and approach to building highly-reliable applications on Microsoft Azure for mission-critical workloads.
510
star
75

static-web-apps-cli

Azure Static Web Apps CLI ✨
TypeScript
509
star
76

draft

A day 0 tool for getting your app on k8s fast
Go
507
star
77

azure-docs-powershell-samples

Azure Powershell code samples, often used in docs.microsoft.com/Azure developer documentation
PowerShell
502
star
78

AI-in-a-Box

Jupyter Notebook
496
star
79

azure-storage-node

Microsoft Azure Storage SDK for Node.js
JavaScript
495
star
80

api-management-developer-portal

Developer portal provided by the Azure API Management service.
TypeScript
484
star
81

MS-AMP

Microsoft Automatic Mixed Precision Library
Python
483
star
82

Azure-TDSP-ProjectTemplate

TDSP: Data science project template repository with standardized directory structure and document templates to support efficient project execution and collaboration.
R
483
star
83

mlops-v2

Azure MLOps (v2) solution accelerators. Enterprise ready templates to deploy your machine learning models on the Azure Platform.
Shell
481
star
84

azure-mobile-services

Mobile Services is deprecated - Use Mobile Apps instead
HTML
472
star
85

azure-sdk

This is the Azure SDK parent repository and mostly contains documentation around guidelines and policies as well as the releases for the various languages supported by the Azure SDK.
PowerShell
472
star
86

azqr

Azure Quick Review
Go
471
star
87

kubelogin

A Kubernetes credential (exec) plugin implementing azure authentication
Go
467
star
88

bicep-registry-modules

Bicep registry modules
Bicep
457
star
89

azure-devtestlab

Azure DevTestLab artifacts, scripts and samples
PowerShell
455
star
90

azure-iot-sdk-csharp

A C# SDK for connecting devices to Microsoft Azure IoT services
C#
455
star
91

azure-devops-utils

Azure DevOps Utilities
Shell
449
star
92

AzureDatabricksBestPractices

Version 1 of Technical Best Practices of Azure Databricks based on real world Customer and Technical SME inputs
446
star
93

app-service-announcements

Subscribe to this repo to be notified about major changes in App Service
446
star
94

azure-storage-net

Microsoft Azure Storage Libraries for .NET
C#
445
star
95

Azure-DataFactory

C#
444
star
96

actions-workflow-samples

Help developers to easily get started with GitHub Action workflows to deploy to Azure
Pug
438
star
97

arm-ttk

Azure Resource Manager Template Toolkit
PowerShell
433
star
98

RDS-Templates

ARM Templates for Remote Desktop Services deployments
PowerShell
427
star
99

actions

Author and use Azure Actions to automate your GitHub workflows
HTML
422
star
100

container-service-for-azure-china

Container Service for Azure China
Shell
419
star