1+ #! /bin/bash
2+ export resourceGroup=myResourceGroup$RANDOM
3+ virtualMachine=myVM
4+ adminUser=azureuser
5+ pathToKubeConfig=~ /.kube/config
6+
7+ if [ -f $pathToKubeConfig ]
8+ then
9+
10+ # Create a resource group.
11+ az group create --name $resourceGroup --location westeurope
12+
13+ # Create a new virtual machine, this creates SSH keys if not present.
14+ az vm create --resource-group $resourceGroup --name $virtualMachine --admin-username $adminUser --image UbuntuLTS --generate-ssh-keys
15+
16+ # Open port 22 to allow web traffic to host.
17+ az vm open-port --port 80 --resource-group $resourceGroup --name $virtualMachine --priority 101
18+
19+ # Open port 80 to allow web traffic to host.
20+ az vm open-port --port 22 --resource-group $resourceGroup --name $virtualMachine --priority 102
21+
22+ # Open port 8080 to allow web traffic to host.
23+ az vm open-port --port 8080 --resource-group $resourceGroup --name $virtualMachine --priority 103
24+
25+ # Use CustomScript extension to install NGINX.
26+ az vm extension set --publisher Microsoft.Azure.Extensions --version 2.0 --name CustomScript --vm-name $virtualMachine --resource-group $resourceGroup --settings ' {"fileUris": ["https://raw.githubusercontent.com/neilpeterson/nepeters-azure-templates/master/azure-templates-jenkins/support-scripts/config-jenkins.sh"],"commandToExecute": "./config-jenkins.sh"}'
27+
28+ # Get public IP
29+ ip=$( az vm list-ip-addresses --resource-group $resourceGroup --name $virtualMachine --query [0].virtualMachine.network.publicIpAddresses[0].ipAddress -o tsv)
30+
31+ # Copy Kube config file to Jenkins
32+ ssh -o " StrictHostKeyChecking no" $adminUser @$ip sudo chmod 777 /var/lib/jenkins
33+ yes | scp $pathToKubeConfig $adminUser @$ip :/var/lib/jenkins/config
34+ ssh -o " StrictHostKeyChecking no" $adminUser @$ip sudo chmod 777 /var/lib/jenkins/config
35+
36+ # Get Jenkins Unlock Key
37+ url=" http://$ip :8080"
38+ echo " Open a browser to $url "
39+ echo " Enter the following to Unlock Jenkins:"
40+ ssh -o " StrictHostKeyChecking no" $adminUser @$ip sudo " cat /var/lib/jenkins/secrets/initialAdminPassword"
41+
42+ else
43+ echo " Kubernetes configuration / authentication file not found. Run az aks get-credentials to download this file."
44+ fi
0 commit comments