| title: | Installing Deis on Microsoft Azure |
|---|---|
| description: | How to provision a multi-node Deis cluster on Microsoft Azure |
This section will show you how to create a 3-node Deis cluster on Microsoft Azure.
Before you start, :ref:`get the Deis source <get_the_source>` and change directory into contrib/azure while following this documentation.
The cluster creation tool uses a Python script to generate a configuration file. This script uses PyYAML, a Python library, to do its work.
If you haven't already, install these on your development machine:
$ brew install python
$ sudo pip install pyyamlAdditionally, we'll also need to install the Azure CLI from Microsoft.
First, login to the Azure CLI:
$ azure loginNote
Deis makes use of Azure Resource Manager to submit a template describing the infrastructure that we'd like to create. You'll need an organizational account (not a typical Microsoft or Live account) in order to use this template.
Instruct the client to switch to ARM mode:
$ azure config mode armSwitch to the contrib/azure directory:
$ cd contrib/azureGenerate a new discovery URL for the deployment so the hosts can find each other:
$ ./create-azure-user-data $(curl -s https://discovery.etcd.io/new)Next, edit parameters.json to configure the parameters required for the
cluster. For sshKeyData, use the public key material for the SSH key you'd like
to use to log into the hosts. For customData, you'll need to supply the
base64-encoded version of azure-user-data. This can be generated using base64:
$ base64 azure-user-dataPaste the result into parameters.json.
Finally, we can deploy. Choose a valid location to deploy -- you can list all locations
with azure location list:
$ azure group create --name deis --location "West US" --deployment-name deis --template-file arm-template.json --parameters-file parameters.jsonEach instance will have a public IP address which can be used to log in via SSH
or as a tunnel endpoint for deisctl. You can get these IPs from the Azure Portal
or via the CLI with azure vm show:
$ azure vm show deisNode0 --resource-group deis | grep 'Public IP address'See :ref:`configure-dns` for more information on properly setting up your DNS records with Deis.
Now that you've finished provisioning a cluster, please refer to :ref:`install_deis_platform` to start installing the platform.