github.com/chasestarr/deis@v1.13.5-0.20170519182049-1d9e59fbdbfc/docs/installing_deis/azure.rst (about) 1 :title: Installing Deis on Microsoft Azure 2 :description: How to provision a multi-node Deis cluster on Microsoft Azure 3 4 .. _deis_on_azure: 5 6 Microsoft Azure 7 =============== 8 9 This section will show you how to create a 3-node Deis cluster on Microsoft Azure. 10 11 Before you start, :ref:`get the Deis source <get_the_source>` and change directory into `contrib/azure`_ 12 while following this documentation. 13 14 15 Install Tools 16 ------------- 17 18 The cluster creation tool uses a Python script to generate a configuration file. 19 This script uses PyYAML, a Python library, to do its work. 20 21 If you haven't already, install these on your development machine: 22 23 For OSX users: 24 25 .. code-block:: console 26 27 $ brew install python 28 $ sudo pip install pyyaml 29 30 For Ubuntu users: 31 32 .. code-block:: console 33 34 $ sudo apt-get install -y python-yaml 35 36 Additionally, we'll also need to install the `Azure CLI`_ from Microsoft. 37 38 Create CoreOS Cluster 39 --------------------- 40 41 First, login to the Azure CLI: 42 43 .. code-block:: console 44 45 $ azure login 46 47 .. note:: 48 49 Deis makes use of `Azure Resource Manager`_ to submit a template 50 describing the infrastructure that we'd like to create. You'll need an 51 `organizational account`_ (not a typical Microsoft or Live account) in order to 52 use this template. 53 54 Instruct the client to switch to ARM mode: 55 56 .. code-block:: console 57 58 $ azure config mode arm 59 60 Switch to the ``contrib/azure`` directory: 61 62 .. code-block:: console 63 64 $ cd contrib/azure 65 66 Generate a new discovery URL for the deployment so the hosts can find each other: 67 68 .. code-block:: console 69 70 $ ./create-azure-user-data $(curl -s https://discovery.etcd.io/new) 71 72 Next, edit ``parameters.json`` to configure the parameters required for the 73 cluster. For ``publicDomainName``, specify the prefix of domain name (like ``deisNode``). 74 For ``sshKeyData``, use the public key material for the SSH key you'd like 75 to use to log into the hosts. For ``customData``, you'll need to supply the 76 base64-encoded version of ``azure-user-data``. This can be generated using ``base64``: 77 78 .. code-block:: console 79 80 $ base64 azure-user-data 81 82 Paste the result into ``parameters.json``. Any of the values in ``parameters.json`` 83 are defaults and can be customized if desired. 84 85 .. note:: 86 87 For best performance, Deis clusters on Azure default to using `premium storage`_. 88 This incurs an additional cost. Using standard storage is possible, but is unsupported 89 as it resulted in cluster issues during testing. Premium storage is only available 90 in `some regions`_. 91 92 Finally, we can deploy. Choose a valid location to deploy -- you can list all locations 93 with ``azure location list``. 94 95 As an example, to create a deployment named "deis" in the "West US" region: 96 97 .. code-block:: console 98 99 $ azure group create --name deis --location "West US" --deployment-name deis --template-file arm-template.json --parameters-file parameters.json 100 101 Each instance will have a public IP address which can be used to log in via SSH 102 or as a tunnel endpoint for ``deisctl``. You can get these IPs from the Azure Portal 103 or via the CLI with ``azure vm show``: 104 105 .. code-block:: console 106 107 $ azure vm show deisNode0 --resource-group deis | grep 'Public IP address' 108 109 Configure DNS 110 ------------- 111 112 See :ref:`configure-dns` for more information on properly setting up your DNS records with Deis. 113 114 115 Install Deis Platform 116 --------------------- 117 118 Now that you've finished provisioning a cluster, please refer to :ref:`install_deis_platform` to 119 start installing the platform. 120 121 .. _`Azure CLI`: https://azure.microsoft.com/en-us/documentation/articles/xplat-cli-install/ 122 .. _`Azure Resource Manager`: https://azure.microsoft.com/en-us/documentation/articles/resource-manager-deployment-model/ 123 .. _`contrib/azure`: https://github.com/deis/deis/tree/master/contrib/azure 124 .. _`organizational account`: http://www.brucebnews.com/2013/04/the-difference-between-a-microsoft-account-and-an-office-365-account/ 125 .. _`premium storage`: https://azure.microsoft.com/en-us/services/storage/premium-storage/ 126 .. _`some regions`: https://azure.microsoft.com/en-us/regions/#services