Chef Backend High-Availability Cluster
This template deploys a Chef High-Availability Cluster.
Tags: chef, cluster, ha, Microsoft.Network/virtualNetworks, Microsoft.Storage/storageAccounts, Microsoft.Network/publicIPAddresses, Microsoft.Network/loadBalancers, Microsoft.Compute/availabilitySets, Microsoft.Network/networkInterfaces, Microsoft.Compute/virtualMachines, extensions, CustomScript
Deployment steps
This template has artifacts (Configuration Scripts) which are automatically grabbed from github, or can be staged for deployment. Use the below command with the upload flag to deploy this template or provide a storage account and SAS token when using the deploy button above.
This template also uses blob storage to share secrets and configuration templates between nodes in the cluster. You must create a blob storage container for these and provide an SAS token. If you're creating a storage container for artifacts, you can use the same one for secrets storage.
Using the command-line
.\Deploy-AzureResourceGroup.ps1 -ResourceGroupLocation 'eastus' -ArtifactsStagingDirectory 'chef-ha-cluster' UploadArtifacts
azure-group-deploy.sh -a chef-ha-cluster -l eastus -u
Using the "deploy to Azure" button
- Provision a Standard (LRS) storage account, or use an existing one (must be Standard)
- Provision a blob storage container underneath storage account. Note the container URL (ie. https://mystandardstorage.blob.core.windows.net/artifactsfolder )
- Generate a Shared Acccess Signature (SAS) token with and End date exceeding the life of your cluster. Note the SAS token.
- Click the "deploy to Azure" button at the beginning of this document
- Enter in the required fields
- Artifacts Location: the container URL from step 2
- Artifacts Location SAS Token: the SAS token from step 3
- Chef DNS name: A unique short name (ex: mychefhacluster ) that will be prepended to
.region.cloudapp.azure.com
(ex:mychefhacluster.westus.cloudapp.azure.com
) - SSH Key Data: The contents of your SSH Public key for SSH authentication
Usage
Connect
Connect using ssh To reach a frontend use port 50000,50001,50002 (FE0,1,2):
ssh -p 50000 chefadmin@yourhost.youregion.cloudapp.azure.com
To reach a backend do something like
ssh -o ProxyCommand="ssh -W %h:%p -p 50000 -q chefadmin@yourhost.youregion.cloudapp.azure.com" chefadmin@be0
Management
See the chef documentation at Chef