Skip to content

Commit 00fcfc9

Browse files
committed
adding jenkins script
1 parent af2b21b commit 00fcfc9

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

jenkins-tutorial/config-jenkins.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
3+
# Jenkins
4+
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
5+
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
6+
sudo apt-get update
7+
sudo apt-get install jenkins -y
8+
9+
# Docker
10+
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common -y
11+
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
12+
sudo apt-key fingerprint 0EBFCD88
13+
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
14+
sudo apt-get update
15+
sudo apt-get install docker-ce -y
16+
17+
# Azure CLI
18+
echo "deb [arch=amd64] https://packages.microsoft.com/repos/azure-cli/ wheezy main" | sudo tee /etc/apt/sources.list.d/azure-cli.list
19+
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys 417A0893
20+
sudo apt-get install apt-transport-https
21+
sudo apt-get update && sudo apt-get install azure-cli
22+
23+
# Kubectl
24+
cd /tmp/
25+
sudo curl -kLO https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/linux/amd64/kubectl
26+
chmod +x ./kubectl
27+
sudo mv ./kubectl /usr/local/bin/kubectl
28+
29+
# Configure access
30+
usermod -aG docker jenkins
31+
usermod -aG docker azureuser
32+
sudo touch /var/lib/jenkins/jenkins.install.InstallUtil.lastExecVersion
33+
service jenkins restart
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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

Comments
 (0)