From 20f7357f8dd187a37e5c4e0119ef6b447e6ea13d Mon Sep 17 00:00:00 2001 From: Matt McSpirit Date: Thu, 15 Jun 2017 11:38:38 -0700 Subject: [PATCH] Updated Azure Stack HOLs for TP3 Refresh (#123) Updated general Azure Stack guidance, along with specific HOLs for Jenkins and Puppet. --- ...enkins_1404.sh => install_jenkins_1604.sh} | 1 + .../puppet/install_puppet_1604.sh | 46 ++ .../azurestack/docs/add_marketplace_item.md | 30 +- deploy/azurestack/docs/adding_vm_images.md | 127 +++-- .../azurestack/docs/connect_to_azurestack.md | 34 +- deploy/azurestack/docs/jenkins_CD.md | 368 ++++++++++++++ deploy/azurestack/docs/jenkins_CI.md | 223 ++++++++ deploy/azurestack/docs/jenkins_setup.md | 242 ++++++++- .../azurestack/docs/media/AddPuppetNode.PNG | Bin 0 -> 15796 bytes deploy/azurestack/docs/media/JDKSettings.PNG | Bin 0 -> 12671 bytes .../docs/media/JenkinsCreateAdminUser.PNG | Bin 0 -> 13301 bytes .../azurestack/docs/media/JenkinsDeploy.PNG | Bin 0 -> 46035 bytes .../docs/media/JenkinsDeployment.PNG | Bin 0 -> 24381 bytes .../azurestack/docs/media/JenkinsGetMRPIP.PNG | Bin 0 -> 46683 bytes .../azurestack/docs/media/JenkinsGradle.PNG | Bin 0 -> 5828 bytes .../azurestack/docs/media/JenkinsLocation.PNG | Bin 0 -> 5898 bytes .../docs/media/JenkinsMRPDeployed.PNG | Bin 0 -> 22198 bytes .../docs/media/JenkinsMarketplace.PNG | Bin 0 -> 44901 bytes .../azurestack/docs/media/JenkinsPassword.PNG | Bin 0 -> 5341 bytes .../docs/media/MRPBaseMarketplace.PNG | Bin 0 -> 58844 bytes deploy/azurestack/docs/media/MRPDeploy.PNG | Bin 0 -> 45329 bytes .../docs/media/MRPwithSSHMarketplace.PNG | Bin 0 -> 50539 bytes .../azurestack/docs/media/MrpPuppetDeploy.png | Bin 0 -> 18287 bytes .../docs/media/PuppetAddNodeAccept.PNG | Bin 0 -> 7956 bytes .../docs/media/PuppetAddNodePutty.PNG | Bin 0 -> 44272 bytes deploy/azurestack/docs/media/PuppetDeploy.png | Bin 0 -> 20642 bytes deploy/azurestack/docs/media/PuppetIP.PNG | Bin 0 -> 8904 bytes .../docs/media/PuppetInstallModules.PNG | Bin 0 -> 135586 bytes deploy/azurestack/docs/media/PuppetLSLa.PNG | Bin 0 -> 80077 bytes .../azurestack/docs/media/PuppetLoggedIn.png | Bin 0 -> 39002 bytes deploy/azurestack/docs/media/PuppetLogin.png | Bin 0 -> 15211 bytes .../docs/media/PuppetMarketplace.png | Bin 0 -> 45881 bytes .../azurestack/docs/media/PuppetNodeAdded.PNG | Bin 0 -> 31612 bytes .../docs/media/PuppetNodeDeployed.PNG | Bin 0 -> 9002 bytes .../docs/media/PuppetPartsMRPRunning.PNG | Bin 0 -> 51781 bytes deploy/azurestack/docs/media/PuppetRules.PNG | Bin 0 -> 66222 bytes deploy/azurestack/docs/media/PuppetRules2.PNG | Bin 0 -> 47991 bytes deploy/azurestack/docs/media/PuppetTomcat.PNG | Bin 0 -> 101215 bytes .../docs/media/PuppetUnsignedCerts.png | Bin 0 -> 27907 bytes .../azurestack/docs/media/UbuntuCreated.PNG | Bin 21535 -> 0 bytes .../docs/media/UbuntuCreated1604.PNG | Bin 0 -> 41145 bytes deploy/azurestack/docs/media/VMImages.PNG | Bin 0 -> 7679 bytes .../docs/media/initial_jenkins_plugins.png | Bin 0 -> 67552 bytes .../docs/media/initial_jenkins_unlock.png | Bin 0 -> 46421 bytes deploy/azurestack/docs/puppet_CD.md | 476 ++++++++++++++++++ deploy/azurestack/docs/puppet_setup.md | 192 +++++++ deploy/azurestack/docs/readme.md | 48 +- ...rtsUnlimitedMRP.MRPwithJenkins.1.0.0.azpkg | Bin 124759 -> 149982 bytes .../strings/resources.resjson | 4 +- .../TheJenkinsProject.Jenkins.1.0.0.azpkg | Bin 0 -> 139445 bytes .../DeploymentTemplates/JenkinsDeploy.json | 270 ++++++++++ .../TheJenkinsProject.Jenkins/Icons/Hero.png} | Bin .../TheJenkinsProject.Jenkins/Icons/Large.png | Bin 0 -> 9784 bytes .../Icons/Medium.png | Bin 0 -> 6851 bytes .../TheJenkinsProject.Jenkins/Icons/Small.png | Bin 0 -> 2122 bytes .../TheJenkinsProject.Jenkins/Icons/Wide.png | Bin 0 -> 10154 bytes .../TheJenkinsProject.Jenkins/Manifest.json | 37 ++ .../UIDefinition.json} | 0 .../strings/resources.resjson | 9 + .../PartsUnlimited.MRPSSH.1.0.0.azpkg | Bin 0 -> 121459 bytes .../PartsUnlimitedSSHMRP.json | 275 ++++++++++ .../Icons/Hero.png} | Bin .../Icons/Large.png | Bin 0 -> 3396 bytes .../Icons/Medium.png | Bin 0 -> 2590 bytes .../Icons/Small.png | Bin 0 -> 997 bytes .../Icons/Wide.png | Bin 0 -> 3544 bytes .../Manifest.json | 37 ++ .../UIDefinition.json} | 0 .../strings/resources.resjson | 9 + .../readme.md | 0 .../PartsUnlimited.MRP.1.0.0.azpkg | Bin 0 -> 120982 bytes .../PartsUnlimitedMRP.json | 265 ++++++++++ .../PartsUnlimited.Ubuntu1604/Icons/Hero.png | Bin 0 -> 91863 bytes .../PartsUnlimited.Ubuntu1604/Icons/Large.png | Bin 0 -> 3396 bytes .../Icons/Medium.png | Bin 0 -> 2590 bytes .../PartsUnlimited.Ubuntu1604/Icons/Small.png | Bin 0 -> 997 bytes .../PartsUnlimited.Ubuntu1604/Icons/Wide.png | Bin 0 -> 3544 bytes .../PartsUnlimited.Ubuntu1604/Manifest.json | 37 ++ .../UIDefinition.json | 9 + .../strings/resources.resjson | 9 + ...04.sh => install_mrp_dependencies_1604.sh} | 4 + .../parts_unlimited_mrp_base/readme.md | 1 + .../instances/puppet_node/AddPuppetNode.json | 261 ++++++++++ .../instances/puppet_node/readme.md | 1 + .../Puppet.PuppetEnterprise.1.0.0.azpkg | Bin 0 -> 119384 bytes .../DeploymentTemplates/PuppetDeploy.json | 306 +++++++++++ .../Puppet.PuppetEnterprise/Icons/Hero.png | Bin 0 -> 91863 bytes .../Puppet.PuppetEnterprise/Icons/Large.png | Bin 0 -> 2102 bytes .../Puppet.PuppetEnterprise/Icons/Medium.png | Bin 0 -> 1966 bytes .../Puppet.PuppetEnterprise/Icons/Small.png | Bin 0 -> 958 bytes .../Puppet.PuppetEnterprise/Icons/Wide.png | Bin 0 -> 2410 bytes .../Puppet.PuppetEnterprise/Manifest.json | 37 ++ .../Puppet.PuppetEnterprise/UIDefinition.json | 9 + .../strings/resources.resjson | 9 + .../Canonical.UbuntuServer.1.0.0.azpkg | Bin 0 -> 125387 bytes .../DeploymentTemplates/UbuntuServer1604.json | 248 +++++++++ .../Icons/Hero.png | Bin 0 -> 91863 bytes .../Icons/Large.png | Bin 0 -> 5380 bytes .../Icons/Medium.png | Bin 0 -> 4401 bytes .../Icons/Small.png | Bin 0 -> 1606 bytes .../Icons/Wide.png | Bin 0 -> 4566 bytes .../Manifest.json | 36 ++ .../UIDefinition.json | 9 + .../strings/resources.resjson | 8 + .../ubuntu_server_1604_base/readme.md | 1 + deploy/azurestack/readme.md | 10 +- src/Clients/Web/index.html | 2 +- 107 files changed, 3539 insertions(+), 151 deletions(-) rename deploy/azurestack/customscripts/jenkins/{install_jenkins_1404.sh => install_jenkins_1604.sh} (93%) create mode 100644 deploy/azurestack/customscripts/puppet/install_puppet_1604.sh create mode 100644 deploy/azurestack/docs/jenkins_CD.md create mode 100644 deploy/azurestack/docs/jenkins_CI.md create mode 100644 deploy/azurestack/docs/media/AddPuppetNode.PNG create mode 100644 deploy/azurestack/docs/media/JDKSettings.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsCreateAdminUser.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsDeploy.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsDeployment.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsGetMRPIP.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsGradle.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsLocation.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsMRPDeployed.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsMarketplace.PNG create mode 100644 deploy/azurestack/docs/media/JenkinsPassword.PNG create mode 100644 deploy/azurestack/docs/media/MRPBaseMarketplace.PNG create mode 100644 deploy/azurestack/docs/media/MRPDeploy.PNG create mode 100644 deploy/azurestack/docs/media/MRPwithSSHMarketplace.PNG create mode 100644 deploy/azurestack/docs/media/MrpPuppetDeploy.png create mode 100644 deploy/azurestack/docs/media/PuppetAddNodeAccept.PNG create mode 100644 deploy/azurestack/docs/media/PuppetAddNodePutty.PNG create mode 100644 deploy/azurestack/docs/media/PuppetDeploy.png create mode 100644 deploy/azurestack/docs/media/PuppetIP.PNG create mode 100644 deploy/azurestack/docs/media/PuppetInstallModules.PNG create mode 100644 deploy/azurestack/docs/media/PuppetLSLa.PNG create mode 100644 deploy/azurestack/docs/media/PuppetLoggedIn.png create mode 100644 deploy/azurestack/docs/media/PuppetLogin.png create mode 100644 deploy/azurestack/docs/media/PuppetMarketplace.png create mode 100644 deploy/azurestack/docs/media/PuppetNodeAdded.PNG create mode 100644 deploy/azurestack/docs/media/PuppetNodeDeployed.PNG create mode 100644 deploy/azurestack/docs/media/PuppetPartsMRPRunning.PNG create mode 100644 deploy/azurestack/docs/media/PuppetRules.PNG create mode 100644 deploy/azurestack/docs/media/PuppetRules2.PNG create mode 100644 deploy/azurestack/docs/media/PuppetTomcat.PNG create mode 100644 deploy/azurestack/docs/media/PuppetUnsignedCerts.png delete mode 100644 deploy/azurestack/docs/media/UbuntuCreated.PNG create mode 100644 deploy/azurestack/docs/media/UbuntuCreated1604.PNG create mode 100644 deploy/azurestack/docs/media/VMImages.PNG create mode 100644 deploy/azurestack/docs/media/initial_jenkins_plugins.png create mode 100644 deploy/azurestack/docs/media/initial_jenkins_unlock.png create mode 100644 deploy/azurestack/docs/puppet_CD.md create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins.1.0.0.azpkg create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/DeploymentTemplates/JenkinsDeploy.json rename deploy/azurestack/instances/{ubuntu_server_1404_base/Canonical.Ubuntu1404/Icons/Hero.png~1dfa10603ffd4ccdc00834c74195be41f7f50f7c => jenkins_standalone/TheJenkinsProject.Jenkins/Icons/Hero.png} (100%) create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/Icons/Large.png create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/Icons/Medium.png create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/Icons/Small.png create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/Icons/Wide.png create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/Manifest.json rename deploy/azurestack/instances/{ubuntu_server_1404_base/Canonical.Ubuntu1404/UIDefinition.json~1dfa10603ffd4ccdc00834c74195be41f7f50f7c => jenkins_standalone/TheJenkinsProject.Jenkins/UIDefinition.json} (100%) create mode 100644 deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/strings/resources.resjson create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimited.MRPSSH.1.0.0.azpkg create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/DeploymentTemplates/PartsUnlimitedSSHMRP.json rename deploy/azurestack/instances/{ubuntu_server_1404_base/Canonical.Ubuntu1404/Icons/Hero.png~HEAD => parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Icons/Hero.png} (100%) create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Icons/Large.png create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Icons/Medium.png create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Icons/Small.png create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Icons/Wide.png create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/Manifest.json rename deploy/azurestack/instances/{ubuntu_server_1404_base/Canonical.Ubuntu1404/UIDefinition.json~HEAD => parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/UIDefinition.json} (100%) create mode 100644 deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/strings/resources.resjson rename deploy/azurestack/instances/{puppet_mrp => parts_unlimited_SSH_mrp_base}/readme.md (100%) create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.MRP.1.0.0.azpkg create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/DeploymentTemplates/PartsUnlimitedMRP.json create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Icons/Hero.png create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Icons/Large.png create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Icons/Medium.png create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Icons/Small.png create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Icons/Wide.png create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/Manifest.json create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/UIDefinition.json create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/PartsUnlimited.Ubuntu1604/strings/resources.resjson rename deploy/azurestack/instances/parts_unlimited_mrp_base/{install_mrp_dependencies_1404.sh => install_mrp_dependencies_1604.sh} (77%) create mode 100644 deploy/azurestack/instances/parts_unlimited_mrp_base/readme.md create mode 100644 deploy/azurestack/instances/puppet_node/AddPuppetNode.json create mode 100644 deploy/azurestack/instances/puppet_node/readme.md create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise.1.0.0.azpkg create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/DeploymentTemplates/PuppetDeploy.json create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Icons/Hero.png create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Icons/Large.png create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Icons/Medium.png create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Icons/Small.png create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Icons/Wide.png create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/Manifest.json create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/UIDefinition.json create mode 100644 deploy/azurestack/instances/puppet_standalone/Puppet.PuppetEnterprise/strings/resources.resjson create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0.azpkg create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/DeploymentTemplates/UbuntuServer1604.json create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Icons/Hero.png create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Icons/Large.png create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Icons/Medium.png create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Icons/Small.png create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Icons/Wide.png create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/Manifest.json create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/UIDefinition.json create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0/strings/resources.resjson create mode 100644 deploy/azurestack/instances/ubuntu_server_1604_base/readme.md diff --git a/deploy/azurestack/customscripts/jenkins/install_jenkins_1404.sh b/deploy/azurestack/customscripts/jenkins/install_jenkins_1604.sh similarity index 93% rename from deploy/azurestack/customscripts/jenkins/install_jenkins_1404.sh rename to deploy/azurestack/customscripts/jenkins/install_jenkins_1604.sh index 5671c92..56eb38a 100644 --- a/deploy/azurestack/customscripts/jenkins/install_jenkins_1404.sh +++ b/deploy/azurestack/customscripts/jenkins/install_jenkins_1604.sh @@ -1,6 +1,7 @@ #!/bin/bash # Install Jenkins Dependencies +add-apt-repository ppa:openjdk-r/ppa apt-get update apt-get upgrade -y apt-get install openjdk-7-jdk -y diff --git a/deploy/azurestack/customscripts/puppet/install_puppet_1604.sh b/deploy/azurestack/customscripts/puppet/install_puppet_1604.sh new file mode 100644 index 0000000..f357c25 --- /dev/null +++ b/deploy/azurestack/customscripts/puppet/install_puppet_1604.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# Update OS +apt-get update +# apt-get upgrade -y + +# Validate input parameters +if [[ !("$#" -eq 2) ]]; + then echo "Parameters missing for puppet enterprise configuration." >&2 + exit 1 +fi + +# Get parameters +pe_version=$1 +console_pw=$2 + +# Configure for Puppet Enterprise version +case $pe_version in + 2017.2.1) + pe_url=https://pm.puppetlabs.com/puppet-enterprise/2017.2.1/puppet-enterprise-2017.2.1-ubuntu-16.04-amd64.tar.gz + ;; + *) + pe_url=https://pm.puppetlabs.com/puppet-enterprise/2017.2.1/puppet-enterprise-2017.2.1-ubuntu-16.04-amd64.tar.gz + ;; +esac + +# Set up variables +pe_tar=${pe_url##*/} +pe_folder=${pe_tar%%.tar.gz} + +# Get installation package +cd /tmp; wget -q ${pe_url} + +# Unpack installation package +tar -xf ${pe_tar} +cd ${pe_folder} + +# Create configuration file +sed '/console_admin_password/c \ + "console_admin_password":"'$console_pw'"' conf.d/pe.conf > conf.d/azure-pe.conf + +# Start the installation +./puppet-enterprise-installer -c conf.d/azure-pe.conf +sudo ./puppet-enterprise-installer -c conf.d/azure-pe.conf + +exit 0 diff --git a/deploy/azurestack/docs/add_marketplace_item.md b/deploy/azurestack/docs/add_marketplace_item.md index 0f12fef..f67936d 100644 --- a/deploy/azurestack/docs/add_marketplace_item.md +++ b/deploy/azurestack/docs/add_marketplace_item.md @@ -15,9 +15,9 @@ As you can see, I've created entries for the Ubuntu base image, along with image Once you have those 3 items defined, you're at a point where you can used the [Azure Gallery Packager tool](http://www.aka.ms/azurestackmarketplaceitem) to package all of those respective files into a .azpkg file, that is then uploaded into your Azure Stack. ## Download an Example Package for the Base Ubuntu Image -As mentioned earlier, it's much easier if you start from an esiting set of resources, and customize from there, so to help you understand the relationship between the core package files discussed above, you can download a set of files I've provided, already packaged as a .azpkg file. **Download it onto your MAS-CON01 machine**. +As mentioned earlier, it's much easier if you start from an existing set of resources, and customize from there, so to help you understand the relationship between the core package files discussed above, you can download a set of files I've provided, already packaged as a .azpkg file. **Download it onto your MAS-CON01 machine**. -- [Download Base Image Package Files](/deploy/azurestack/instances/ubuntu_server_1404_base/Canonical.UbuntuServer.1.0.0.azpkg?raw=true) +- [Download Base Image Package Files](/deploy/azurestack/instances/ubuntu_server_1604_base/Canonical.UbuntuServer.1.0.0.azpkg?raw=true) 1. Once downloaded, navigate to the folder containing your newly downloaded image, and **create a copy of the file**. 2. Right click the new copy, and **rename to .zip** @@ -56,28 +56,33 @@ Normally, once you've finished creating your respective files within your packag To save you time however, we'll just use the package we orginally downloaded earlier. 1. Navigate to your **Canonical.UbuntuServer.1.0.0.azpkg** file, you downloaded earlier -2. Move it to a newly created folder **C:\MyMarketPlaceItems**. +2. Move it to a newly created folder **C:\MyMarketplaceItems**. It’s important to note that if you are going to use the package I have provided, you need to have used the following info when you uploaded your Ubuntu VHD image to the platform image repository earlier. Any differences, and the package I’m providing will not reference your uploaded image. If you used an exact copy of my PowerShell upload script, you're all set. - Publisher "Canonical" - Offer "UbuntuServer" - - SKU "1404-LTS" + - SKU "16.04.3-LTS" Now that we have the package ready to upload, we need *somewhere* in Azure Stack to upload it to. For that, we'll create a **storage account** that will be used to hold this package, and any others we upload in the future. 1. On MAS-CON01, connect to your Azure Stack via an **administrative PowerShell console**. If you're not still connected from the earlier steps, run the following: ``` powershell + cd\ cd C:\AzureStack-Tools-master\connect Import-Module .\AzureStack.Connect.psm1 - Add-AzureStackAzureRmEnvironment -AadTenant ".onmicrosoft.com" - Add-AzureRmAccount -EnvironmentName AzureStack + Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" + $TenantID = Get-DirectoryTenantID -AADTenantName ".onmicrosoft.com or customdomain.com" -EnvironmentName AzureStackAdmin + $UserName='' + $Password=''| ` + ConvertTo-SecureString -Force -AsPlainText + $Credential= New-Object PSCredential($UserName,$Password) + Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID -Credential $Credential ``` 2. Now, let's create the storage account to hold these packages. We'll call this **tenantartifacts** and store it in a dedicated **resource group** of the same name: ``` powershell - $subscriptionid = (Get-AzureRmSubscription -SubscriptionName 'Default Provider Subscription').SubscriptionId $RG = New-AzureRmResourceGroup -Name tenantartifacts -Location local $StorageAccount = $RG | New-AzureRmStorageAccount -Name tenantartifacts -Type Standard_LRS ``` @@ -85,8 +90,9 @@ Now that we have the package ready to upload, we need *somewhere* in Azure Stack ``` powershell $GalleryContainer = New-AzureStorageContainer -Name gallery -Permission Blob -Context $StorageAccount.Context - $MarketPlaceAzpkg = $GalleryContainer | Set-AzureStorageBlobContent -File C:\MyMarketPlaceItems\Canonical.UbuntuServer.1.0.0.azpkg - Add-AzureRMGalleryItem -SubscriptionId $subscriptionid -GalleryItemUri $MarketPlaceAzpkg.ICloudBlob.StorageUri.PrimaryUri.AbsoluteUri -Apiversion "2015-04-01" + $GalleryContainer | Set-AzureStorageBlobContent -File "C:\MyMarketplaceItems\Canonical.UbuntuServer.1.0.0.azpkg" + $GalleryItemURI = (Get-AzureStorageBlob -Context $StorageAccount.Context -Blob 'Canonical.UbuntuServer.1.0.0.azpkg' -Container 'gallery').ICloudBlob.uri.AbsoluteUri + Add-AzureRMGalleryItem -GalleryItemUri $GalleryItemURI -Verbose ``` When successful, you should see a **StatusCode** of **Created** @@ -95,12 +101,12 @@ When successful, you should see a **StatusCode** of **Created** Go back and refresh the portal, and under New -> Virtual Machines -> See All, you should see your newly added Ubuntu marketplace item - ![Ubuntu Marketplace Image](/deploy/azurestack/docs/media/UbuntuCreated.PNG) + ![Ubuntu Marketplace Image](/deploy/azurestack/docs/media/UbuntuCreated1604.PNG) ## Test Deployment of your Ubuntu Base Image You've successfully added a new marketplace item, but it's important to check that it works as expected. To do so, we'll walk through a UI deployment: -1. On MAS-CON01, from the Azure Stack Portal Dashboard, click on **New**, then **Virtual Machines**, then **Ubuntu Server 14.04-LTS** +1. On MAS-CON01, from the Azure Stack Admin Portal Dashboard, click on **New**, then **Virtual Machines**, then **Ubuntu Server 16.04-LTS** 2. Enter the basic details required - **username, password and a resource group name**. 3. Optionally, select **Pin to Dashboard**, then click Create. 4. The process should take around ~20 minutes, depending on your hardware. @@ -120,4 +126,4 @@ When Putty opens, you'll need the Public IP address of the Ubuntu VM you deploye # Next Step -Once successfully connected to your Ubuntu VM, you're now ready to move on to the [DevOps scenarios](/deploy/azurestack/docs/get_started_with_MRP). +Once successfully connected to your Ubuntu VM, you're now ready to move on to the [DevOps scenarios](/deploy/azurestack/docs/get_started_with_MRP.md). diff --git a/deploy/azurestack/docs/adding_vm_images.md b/deploy/azurestack/docs/adding_vm_images.md index 0e351ac..1582f2c 100644 --- a/deploy/azurestack/docs/adding_vm_images.md +++ b/deploy/azurestack/docs/adding_vm_images.md @@ -1,6 +1,6 @@ -# Adding VM Images to Azure Stack# +# Adding VM Images to Azure Stack -Azure Stack enables administrators to make VM images, such as their organization’s custom VHD, available to their tenants. Images can be referenced by Azure Resource Manager templates or added to the Azure Marketplace UI with the creation of a Marketplace item. As we saw previously, a Windows Server 2012 R2 image is included by default in the Azure Stack Technical Preview. +Azure Stack enables administrators to make VM images, such as their organization’s custom VHD, available to their tenants. Images can be referenced by Azure Resource Manager templates or added to the Azure Marketplace UI with the creation of a Marketplace item. No images are included by default in the Azure Stack Technical Preview 3 Refresh. An image can be added to your Azure Stack Platform Image Repository (PIR) in 2 ways - via the portal, or programmatically. We'll focus on the programmatical approach, specifically with PowerShell, as it's faster, and more repeatable. Plus, you can copy and paste my code ;-) @@ -16,11 +16,11 @@ For the purpose of our testing, we're going to focus on Linux images. Microsoft * [SuSE](https://download.suse.com/Download?buildid=VCFi7y7MsFQ~) * [Ubuntu 14.04 LTS](https://partner-images.canonical.com/azure/azure_stack/) / [Ubuntu 16.04 LTS](http://cloud-images.ubuntu.com/releases/xenial/release/ubuntu-16.04-server-cloudimg-amd64-disk1.vhd.zip) -We'll be focusing on **Ubuntu 14.04 LTS**, so that's the one you should be downloading too. When you click on the Ubuntu 14.04 LTS link above, you'll be taken to a page with a list of builds for that particular release. Choose the one at the bottom of the list, which typically corresponds to the newest of the builds. If you accept the default name, and save location, you'll end up with a 300+MB zip file, located in the downloads folder. +We'll be focusing on **Ubuntu 16.04 LTS**, so that's the one you should be downloading too. When you click on the Ubuntu 16.04 LTS link above, you'll automatically be downloading the latest build. If you accept the default name, and save location, you'll end up with a 490+MB zip file, located in the downloads folder. -Once downloaded, extract the zip file, to end up with a single 30GB VHD, with the name **trusty-server-cloudimg-amd64-disk1.vhd**. +Once downloaded, extract the zip file, to end up with a single 30GB VHD, with the name **xenial-server-cloudimg-amd64-disk1.vhd**. -1. Rename the VHD file to Ubuntu1404LTS.vhd +1. Rename the VHD file to Ubuntu1604LTS.vhd 2. Move the file to a new folder called C:\Images 3. Optional - to free up space, delete the original ZIP file you just downloaded. @@ -34,18 +34,37 @@ Before we can begin adding an image to the Azure Stack PIR, we'll need to be abl ``` PowerShell Get-PSRepository ``` -2. Run the following command to install the AzureRM module: +2. Before installing the required version, make sure that you uninstall any existing Azure PowerShell modules. To uninstall, close all the active PowerShell sessions and run the following command: + ``` PowerShell - Install-Module -Name AzureRM -RequiredVersion 1.2.6 -Scope CurrentUser -Force -AllowClobber - ``` -> *-Scope CurrentUser* is optional. If you want more than the current user to have access to the modules, use an elevated command prompt and leave off the *Scope* parameter. -Force and -AllowClobber will ensure that any existing AzureRM modules are replaced and updated. - -3. To confirm the installation of AzureRM modules, execute the following commands: - ``` PowerShell - Get-Command -Module AzureRM.AzureStackAdmin + Get-Module -ListAvailable | where-Object {$_.Name -like "Azure*"} | Uninstall-Module ``` -Once verified, we need to ensure we have the relevant tools in place to connect to Azure Stack via PowerShell. These could also be used for Azure, but may lack some of the latest Azure features. The tools are all [hosted on GitHub](https://github.com/Azure/AzureStack-Tools). To grab them, run the following in an elevated PowerShell console on MAS-CON01: +3. Azure Stack compatible AzureRM modules are installed through API version profiles. To learn about API version profiles and the cmdlets provided by them, refer to the manage API version profiles article. The AzureRM.Bootstrapper module provides PowerShell commands that are required to work with API version profiles. Use the following command to install the AzureRM.Bootstrapper module: + + ``` PowerShell + Install-Module -Name AzureRm.BootStrapper + ``` + +4. Run the following command to install the 2017-03-09-profile version of the AzureRM modules for Compute, Storage, Network, Key Vault etc: + + ``` PowerShell + Use-AzureRmProfile -Profile 2017-03-09-profile + ``` + +5. In addition to the AzureRM modules, you should also install the Azure Stack-specific PowerShell modules such as AzureStackAdmin, and AzureStackStorage by running the following command: + + ``` PowerShell + Install-Module -Name AzureStack -RequiredVersion 1.2.9 + ``` + +6. To confirm the installation, run the following command: + + ``` PowerShell + Get-Module -ListAvailable | where-Object {$_.Name -like "Azure*"} + ``` + +If the installation is successful, the AzureRM and AzureStack modules are displayed in the output. Once verified, we need to ensure we have the relevant tools in place to connect to Azure Stack via PowerShell. These could also be used for Azure, but may lack some of the latest Azure features. The tools are all [hosted on GitHub](https://github.com/Azure/AzureStack-Tools). To grab them, run the following in an elevated PowerShell console on MAS-CON01: ``` PowerShell cd\ @@ -53,20 +72,43 @@ Invoke-Webrequest https://github.com/Azure/AzureStack-Tools/archive/master.zip - Expand-Archive master.zip -DestinationPath . -Force cd AzureStack-Tools-master\connect Import-Module .\AzureStack.Connect.psm1 +Set-ExecutionPolicy Unrestricted ``` ### Connect to Azure Stack With the Azure Stack connection module now imported, you can use the following commands to connect to your Azure Stack. Note, AzureRM cmdlets can be targeted at multiple Azure clouds such as Azure China, Government, and Azure Stack. To target your Azure Stack instance, an AzureRM environment needs to be registered as follows. -```powershell -Add-AzureStackAzureRmEnvironment -AadTenant ".onmicrosoft.com" -``` -The AadTenant parameter above specifies the directory that was used when deploying Azure Stack. After registering, AzureRM environment cmdlets can be easily targeted at your Azure Stack instance. For example: +**Note** - The below instructions are based on the use of Azure Active Directory for login. If you chose to install with Active Directory Federation Services instead, please use the [documentation](https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-powershell-configure) to connect. -```powershell -Add-AzureRmAccount -EnvironmentName AzureStack +``` Powershell +Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" ``` -You will be prompted for the account login including two factor authentication if it is enabled in your organization. You can also log in with a service principal using appropriate parameters of the Add-AzureRmAccount cmdlet. Keep this PowerShell console window open, for use later. + +Get the GUID value of the Active Directory(AD) tenant that is used to deploy the Azure Stack. Note, you'll need to change the AADTenantName to reflect your AAD Tenant used for installation. + +``` Powershell +$TenantID = Get-DirectoryTenantID -AADTenantName ".onmicrosoft.com" -EnvironmentName AzureStackAdmin +``` + +After the AzureRM environment is registered to target the Azure Stack instance, you can use all the AzureRM commands in your Azure Stack environment. Use the following steps to sign in your Azure Stack environment: + +``` Powershell +$UserName='' +$Password=''| ` +ConvertTo-SecureString -Force -AsPlainText +$Credential= New-Object PSCredential($UserName,$Password) +``` + +The above will store the store the administrator or user account's credentials in a variable. We'll be using the administrator's account to keep things simple, so just replace those details in the PowerShell commands above. You'll then use the following commands to log into the environment: + +``` Powershell +Login-AzureRmAccount ` + -EnvironmentName "AzureStackAdmin" ` + -TenantId $TenantID ` + -Credential $Credential +``` + +Once you've run through all of these commands, you should be successfully connected. **Note, if you need info on connecting to your Azure Stack via VPN, see the [Azure Stack documentation](https://github.com/Azure/AzureStack-Tools/tree/master/Connect).** @@ -75,15 +117,25 @@ Once logged in, you're ready to start adding images to your Azure Stack. ## Add VM Image to Platform Image Repository with PowerShell The first thing we'll need to do to upload an image with PowerShell, is import the Compute module, from our tools folder. -```powerShell +``` PowerShell cd .. -cd ComputeAdmin +cd .\ComputeAdmin\ Import-Module .\AzureStack.ComputeAdmin.psm1 ``` We're then ready to push our Ubuntu image that we downloaded earlier, into our Azure Stack PIR. Now, the code below is accurate assuming you used the same naming conventions I did, earlier. If not, adjust as necessary. -```powerShell -Add-VMImage -publisher "Canonical" -offer "UbuntuServer" -sku "1404-LTS" -version "1.0.0" -osType Linux -osDiskLocalPath 'C:\Images\Ubuntu1404LTS.vhd' -tenantID .onmicrosoft.com -CreateGalleryItem $false +``` PowerShell +Add-VMImage ` + -publisher "Canonical" ` + -offer "UbuntuServer" ` + -sku "16.04.3-LTS" ` + -version "1.0.0" ` + -osType Linux ` + -osDiskLocalPath 'C:\Images\Ubuntu1604LTS.vhd' ` + -TenantId $TenantID ` + -EnvironmentName "AzureStackAdmin" ` + -azureStackCredentials $Credential ` + -CreateGalleryItem $false ``` The command above does the following: @@ -92,40 +144,25 @@ The command above does the following: * Adds the VM image to the VM image repository * Removes the temporary storage account -You'll notice at the end of the command, there was a parameter called **-CreateGalleryItem**, and the value for this, I declared as false. By default, when you run this command without using this parameter, a default marketplace item will be created for this particular image. If you recall, earlier when we deployed our Windows Server 2012 R2 VM, this was created from a marketplace image, which had an icon, desciption and more. For this Ubuntu image, we'll skip the marketplace creation for now, and will create a more professional, complete one later. Once you've executed the command, leave the PowerShell window open for later. +You'll notice at the end of the command, there was a parameter called **-CreateGalleryItem**, and the value for this, I declared as false. By default, when you run this command without using this parameter, a default marketplace item will be created for this particular image. A marketplace item would consist of a logo, description etc, and deployable graphically via the Portal. For this Ubuntu image, we'll skip the marketplace creation for now, and will create a more professional, complete one later. Once you've executed the command, leave the PowerShell window open for later. If you're interested in understanding a bit more about the other parameters used with the command above, [check out the docs](https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-add-vm-image). ## Explore the Platform Image Repository With the upload complete, it's important to confirm that the image now exist in the PIR. To do so, follow these steps: -1. Open the Azure Stack Portal and log in as the Service Administrator. +1. Open the Azure Stack Admin Portal and log in as the Service Administrator. 2. On the dashboard, click on the **Region Management** tile. 3. In the Region Management blade, click on **local** and then in the Resource Providers box, click on **Compute**. 4. In the Compute blade, under Content, click on **VM Images**. -5. In the VM Images blade, you should see 2 images listed. The original Windows Server image, and the newly added Ubuntu image. +5. In the VM Images blade, you should see your Ubuntu image listed. - ![Image Added](/deploy/azurestack/docs/media/VM%20Images%20Complete.PNG) + ![Image Added](/deploy/azurestack/docs/media/VMImages.PNG) 6. Close all open blades and return to the dashboard. -## *Important - Add Diagnostic Extension to enable Linux Monitoring -The extension required to monitor Linux VMs, didn't ship in the box with the Azure Stack Technical Preview 2, so we'll quickly add it to avoid any issues later. On the **Azure Stack POC Host machine**, execute the following steps, from an **administrative PowerShell console**. - -```powershell -New-Item C:\ClusterStorage\Volume1\Shares\SU1_Infrastructure_1\CRP\GuestArtifactRepository\IaaSDiagnosticsLinux -Type directory -Invoke-WebRequest https://raw.githubusercontent.com/bgelens/BlogItems/master/Microsoft.OSTCExtensions.LinuxDiagnostic_2.3.9009.zip -OutFile C:\ClusterStorage\Volume1\Shares\SU1_Infrastructure_1\CRP\GuestArtifactRepository\IaaSDiagnosticsLinux\Microsoft.OSTCExtensions.LinuxDiagnostic_2.3.9009.zip -Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/PartsUnlimitedMRP/deploy/azurestack/customscripts/linux_extension/manifest.json -OutFile C:\ClusterStorage\Volume1\Shares\SU1_Infrastructure_1\CRP\GuestArtifactRepository\IaaSDiagnosticsLinux\manifest.json -``` -With those commands executed, hop back over to the MAS-CON01 machine, and in your administrative PowerShell console, run the following: - -```powershell -Get-AzureRmVMExtensionImage -PublisherName Microsoft.OSTCExtensions -Location local -Type LinuxDiagnostic -``` -You should receive an output, and not an exception. If so, you're ready to move on. - # Next Step -You're now ready to start the deployment of the Parts Unlimited MRP environment, or explore any one of the DevOps scenarios provided within this documetation. These include CI/CD with Jenkins, Configuration Management with Chef, and Configuration Management with Puppet, with more to come in the future. Check out the [Getting Started with Parts Unlimited](/deploy/azurestack/docs/get_started_with_MRP) page to go forward. +You're now ready to start the deployment of the Parts Unlimited MRP environment, or explore any one of the DevOps scenarios provided within this documetation. These include CI/CD with Jenkins, Configuration Management with Chef, and Configuration Management with Puppet, with more to come in the future. Check out the [Getting Started with Parts Unlimited](/deploy/azurestack/docs/get_started_with_MRP.md) page to go forward. If you're interested in understanding how to create more professional marketplace items, so that your users can deploy the base Ubuntu image, along with any other future images, direct from the Azure Stack marketplace, then read on... diff --git a/deploy/azurestack/docs/connect_to_azurestack.md b/deploy/azurestack/docs/connect_to_azurestack.md index 461570a..7d17202 100644 --- a/deploy/azurestack/docs/connect_to_azurestack.md +++ b/deploy/azurestack/docs/connect_to_azurestack.md @@ -1,14 +1,14 @@ -# Connecting to Azure Stack# +# Connecting to Azure Stack With your Azure Stack deployed, you should be logged in to the Azure Stack POC host, ready to use the environment. Now, in order to use the environment correctly, you will need to log into the MAS-CON01 virtual machine. This machine is your primary machine for administering, deploying and managing the Azure Stack. ## Connect with Remote Desktop -With a Remote Desktop connection, a single concurrent user can work with the portal to manage resources. You can also use tools on the MAS-CON01 virtual machine. +With a Remote Desktop connection, up to two concurrent (different) users can work with the portal to manage resources. You can also use tools on the MAS-CON01 virtual machine. 1. Log in to the Azure Stack POC physical machine. 2. Open a Remote Desktop Connection and connect to MAS-CON01. Enter **AzureStack\AzureStackAdmin** as the username, and the administrative password you provided during Azure Stack setup. 3. On the MAS-CON01 desktop, open Server Manager, click **Local Server**, turn off Internet Explorer Enhanced Security, and then close Server Manager. -4. Double-click **Microsoft Azure Stack Portal** icon (https://portal.azurestack.local/) to open the portal +4. Double-click **Microsoft Azure Stack Admin Portal** icon (https://adminportal.local.azurestack.external/) to open the portal 5. Log in using the Azure Active Directory credentials specified during installation. Once you've successfully connected, you're free to explore the Azure Stack environment. @@ -25,34 +25,6 @@ It's easier if you do this now, rather than later. It'll make things easier when 3. In the Internet Explorer Enhanced Security Configuration window, for Administrators, select **Off** and click **OK**. 4. Close Server Manager. -## Deploy a Virtual Machine - -In order to test the Azure Stack functionality, a simple test would be to deploy a virtual machine. - -1. From inside the portal, click **New**, and then **Virtual Machines**. -2. In the Virtual Machines blade, click **See all**. -3. In the new Virtual Machines blade, you'll be presented with all of the choices you can make, for deployment within your Azure Stack. As it stands, by default, there is only a standalone Windows Server 2012 R2 virtual machine, or an Availability Set. Select **WindowsServer-2012-R2-Datacenter** then click **Create**. -4. In the Create Virtual Machine blade, provide the basic information and click **OK**. - - ![Enter Basic Info](/deploy/azurestack/docs/media/CreateVMBasic.PNG) -5. Choose a virtual machine size for your deployment. It's recommended just to go with the default **A2 standard**, then click **Select**. -6. Configure any optional features you wish to change. For the purposes of this test, simply accept the defaults and click **OK**. -7. Review the final summary, wait for validation, and then click **OK** to start the deployment. - -This deployment may take a few minutes, and will depend on your hardware. Once complete, you should see a new tile on your dashboard. - - ![VM Deployed](/deploy/azurestack/docs/media/VMdeployed.PNG) - -Whilst it's great to have a Windows Server to deploy onto Azure Stack, the real power is when you start to provide your own, customized images that can be deployed within the environment. These could be standard base Linux distro images, or something more customized, to include apps and other features that are enabled during the deployment. - # Next Step In the next step, we'll [add a new VM image](/deploy/azurestack/docs/adding_vm_images.md), that we'll use for our ongoing tasks to evaluate key DevOps tooling on Azure Stack. - -## Optional - Clean Up VM Deployment - -If you're not going to use the previously deployed Windows Server VM, follow these steps to remove it from your Azure Stack environment: - -1. In the Azure Stack Portal, click **Resource Groups** -2. In the list of Resource Groups, find your entry that you created during the Windows Server VM deployment, and on the far-right of the list, click the 3 dots **...** then choose **Delete**. -3. In the new blade, enter the name of the Resource Group, and click **Delete**. This will clean up all of the artifacts from your deployment. It will take a few minutes, and you will receive a notification when complete. diff --git a/deploy/azurestack/docs/jenkins_CD.md b/deploy/azurestack/docs/jenkins_CD.md new file mode 100644 index 0000000..d98b586 --- /dev/null +++ b/deploy/azurestack/docs/jenkins_CD.md @@ -0,0 +1,368 @@ +# Continuous Deployment with Jenkins + +In this lab, you will learn how to deploy the Parts Unlimited MRP App in an automated fashion onto a Linux VM with no agent. +After this lab, you will have a working pipeline in Jenkins that will build, test, and deploy the Parts Unlimited MRP app to a Virtual Machine in Azure Stack. + +## Pre-Requisites: + +- Completion of the lab [Set up Parts Unlimited MRP with Jenkins](/deploy/azurestack/docs/jenkins_setup.md) +- Completion of the [Continuous Integration with Jenkins lab](/deploy/azurestack/docs/jenkins_CI.md) + +## Overview: +During this lab, we will implement the continuous delivery of the artifacts that we have built in the previous lab. + +## Install the SSH Agent plugin +In this task, we are going to install the ssh-agent plugin on Jenkins. This plugin will allow Jenkins to connect via ssh to the target machine during the deployment or the artifacts. + +**1.** Switch to the SSH session to your Jenkins server (or open a new one if you have closed the one from the previous lab) and type the following command +``` +sudo java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://Jenkins:Passw0rd@127.0.0.1:8080/ install-plugin ssh-agent +``` +The result should be +``` +Installing ssh-agent from update center +``` + +**2.** Restart the Jenkins server so that the newly installed plugin becomes active. + +From the Jenkins Master, type the following command: +``` +sudo java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://Jenkins:Passw0rd@localhost:8080/ safe-restart +``` + +Keep your ssh session open. + +## Create a pair of SSH keys +In this taks, we will create a pair of ssh keys to be able to automatically connect to the deployment server. + +**1.** Type the following command: +``` +ssh-keygen +``` + +**2.** Press **Enter** to leave the default values for the filename and the passphrase. + +![Creating a new ssh-rsa keypair](<../../../docs/assets/jenkins/ssh_key.png>) + +**3.** Copy the private key file to /var/lib/jenkins/.ssh by typing the following commands: + +``` +sudo mkdir /var/lib/jenkins/.ssh/ +sudo chown jenkins:jenkins /var/lib/jenkins/.ssh +sudo cp .ssh/id_rsa /var/lib/jenkins/.ssh/id_rsa +sudo chown jenkins:jenkins /var/lib/jenkins/.ssh/id_rsa +``` + +**4.** Create a Jenkins credentials + +Navigate to +``` +http://ip_address_of_your_jenkinsmaster:8080/credentials/store/system/domain/_/newCredentials +``` + +Because of the restart, you will have to authenticate again with the following credentials: +* Username = Jenkins +* Password = Passw0rd + + +**5.** Enter the values for the credentials as follows + +* Select **SSH Username with private key** for the Kind +* Leave the scope as "Global" +* Type **mrpadmin** for the Username +* Select **From the Jenkins master ~/.ssh** +* Leave the Passphrase empty +* Type **mrpadmin** for the ID + +Click **OK** + +![Adding SSH key to Jenkins](<../../../docs/assets/jenkins/jenkins_addsshkey.png>) + +## Create the VM to run the Parts Unlimited MRP application + +Now, you have 2 options for deployment. + +1. **ARM Template & Custom Deployment** -> for this option, you will perform a new custom template deployment from Azure Stack, using a JSON file that will be provided for you. You will enter a number of key values for the parameters, and then deploy. **This is the quicker option**. +2. **Create a Custom Marketplace Item for Deployment** -> for this option, in the same way you (optionally) added an Ubuntu 16.04.3-LTS item to the Azure Stack Marketplace, you will add a new .azpkg to your Azure Stack, and configure the deployment from this, providing the same parameters as per option 1. + +**The end result of both of these options is the same, however if you'd like to populate your gallery with more items, use option 2.** + +### *Option 1 - ARM Template & Custom Deployment +If you're not interested in creating a Marketplace item for 'Parts Unlimited MRP with SSH', then this quick and easy approach should make things, well, quick and easy for you! + +Firstly, we need the SSH key to use with this new virtual machine. To obtain this, go back to your SSH session, and run: + +``` +cat ./.ssh/id_rsa.pub +``` + +Select the returned text, and copy it. We will use it later. + +![Copy SSH public key](<../../../docs/assets/jenkins/copy_sshpublickey.png>) + +Then, from your MAS-CON01 machine, you need to click on the button below to deploy the MRP virtual machine, and fill in the parameter fields. The link should open the Azure Stack portal, and if you're not already logged in, it'll prompt you for your Azure Stack credentials, then take you immediately to the custom template blade. + + + + + +You'll need to enter information for the following fields: +- **ADMINPUBLICKEY** - Paste the string that you have copied earlier. +- **MRPDNSNAMEFORPUBLICIP** - for testing purposes, use **mrp-deploy**. +- **Resource Group** - for testing purposes, use **mrp-deploy**. +- **Location** - seeing as this is Azure Stack, you'll just be able to choose local in the current technical preview. + +![Jenkins Deployment](/deploy/azurestack/docs/media/MRPDeploy.PNG) + +If you're interested in taking a deeper look at the ARM template that is used for deployment, you could either **click Edit Template** within the custom template deployment blade, and that will present the template that will be used for the deployment, or alternatively, you could **[grab the ARM template from here](/deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimitedSSH.Ubuntu1604/DeploymentTemplates/PartsUnlimitedSSHMRP.json)** + +Depending on your hardware, the deployment of the key artifacts, the virtual machine, and its respective automated configuration, may take a while. Expect around 20-30 mins for the deployment, unless you have new hardware, and a bank of SSDs for storage! + +Once the deployment has completed, you're ready to proceed with the lab. + +### *Option 2 - Create a Custom Marketplace Item for Deployment +If you are interested in adding a custom marketplace item to your Azure Stack marketplace, then these steps will help. I've already made the package for you, so you should just be able to follow these steps, and import it right into your Azure Stack. + +As we saw earlier, when we [added our Ubuntu base image to the Azure Stack marketplace](/deploy/azurestack/docs/add_marketplace_item.md), things are much easier when something is packaged for you, so to start things off, pull down the .azpkg file for our Parts Unlimited MRP with SSH machine, that I've stored on GitHub. From yor **MAS-CON01** machine, do the following: + +- [Download Parts Unlimited MRP with SSH Package](https://github.com/Microsoft/PartsUnlimitedMRP/raw/master/deploy/azurestack/instances/parts_unlimited_SSH_mrp_base/PartsUnlimited.MRPSSH.1.0.0.azpkg) + +1. Navigate to your **PartsUnlimited.MRPSSH.1.0.0.azpkg** file, you downloaded earlier +2. Move it to a newly created folder **C:\MyMarketPlaceItems**. + + It’s important to note that if you are going to use the package I have provided, you need to have used the following info when you uploaded your Ubuntu base VHD image to the platform image repository [earlier](/deploy/azurestack/docs/adding_vm_images.md). Any differences, and the package I’m providing will not reference your uploaded image. If you used an exact copy of my PowerShell upload script, you're all set. + + - Publisher "Canonical" + - Offer "UbuntuServer" + - SKU "16.04.3-LTS" + +Now that we have the package ready to upload, we need *somewhere* in Azure Stack to upload it to. Fortunately, we [created a storage account for this very purpose earlier](/deploy/azurestack/docs/add_marketplace_item.md#uploading-a-package-to-azure-stack), so we'll use the same storage account for this package. + +1. Connect to your Azure Stack via an **administrative PowerShell console**. If you're not still connected from the earlier steps, run the following: + + ``` powershell + cd\ + cd C:\AzureStack-Tools-master\connect + Import-Module .\AzureStack.Connect.psm1 + Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" + $TenantID = Get-DirectoryTenantID -AADTenantName ".onmicrosoft.com or customdomain.com" -EnvironmentName AzureStackAdmin + $UserName='' + $Password=''| ` + ConvertTo-SecureString -Force -AsPlainText + $Credential= New-Object PSCredential($UserName,$Password) + Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID -Credential $Credential + ``` + +2. Now, let's access the storage account to hold this package. If you recall, we named the storage account **tenantartifacts** and this is located in a dedicated **resource group** of the same name: + + ``` powershell + $StorageAccount = Get-AzureRmStorageAccount -ResourceGroupName tenantartifacts -Name tenantartifacts + $GalleryContainer = Get-AzureStorageContainer -Name gallery -Context $StorageAccount.Context + ``` +3. With the resource group, storage account and gallery container now accessible, we can push our new Jenkins marketplace package into Azure Stack. + + ``` powershell + $GalleryContainer | Set-AzureStorageBlobContent -File "C:\MyMarketPlaceItems\PartsUnlimited.MRPSSH.1.0.0.azpkg" + $GalleryItemURI = (Get-AzureStorageBlob -Context $StorageAccount.Context -Blob 'PartsUnlimited.MRPSSH.1.0.0.azpkg' -Container 'gallery').ICloudBlob.uri.AbsoluteUri + Add-AzureRMGalleryItem -GalleryItemUri $GalleryItemURI -Verbose + ``` + +When successful, you should see a **StatusCode** of **Created** + + ![Successful Upload](/deploy/azurestack/docs/media/PSCreated.PNG) + +Go back and refresh the portal, and under **New -> Virtual Machines -> See All**, you should see your newly added Parts Unlimited MRP with SSH marketplace item + + ![MRP VM added to Marketplace](/deploy/azurestack/docs/media/MRPwithSSHMarketplace.PNG) + +With your newly created marketplace item created and pushed to the Azure Stack Marketplace, we're ready to deploy an instance of the environment. + +1. On the **MAS-CON01** machine, in your Azure Stack portal, click on **New**, then **Virtual Machines**, then **See all**. +2. Select the **Parts Unlimited MRP with SSH** item in the marketplace, and click **Create**. +3. You'll need to enter information for the following fields: + - **ADMINPUBLICKEY** - Paste the string that you have copied earlier. + - **MRPDNSNAMEFORPUBLICIP** - for testing purposes, use **mrp-deploy**. + - **Resource Group** - for testing purposes, use **mrp-deploy**. + - **Location** - seeing as this is Azure Stack, you'll just be able to choose local in the current technical preview. + + Once you've filled in the fields, it should look like this: + + ![Jenkins Deployment](/deploy/azurestack/docs/media/MRPDeploy.PNG) + +4. Click **OK** to confirm the parameters, and then **Create** to start the deployment. + +Depending on your hardware, the deployment of the key artifacts, the virtual machine, and its respective automated configuration, may take a while. Expect around 20-30 mins for the deployment, unless you have new hardware, and a bank of SSDs for storage! + +Once the deployment has completed, you're ready to proceed with the lab. + +## Update the Jenkins pipeline + +In this task we will update the Jenkins pipeline to automatically deploy the artifacts after they have been built. + +Navigate to the configuration of your pipeline: +``` +http://ip_address_of_your_jenkinsmaster:8080/job/PartsUnlimitedMRP/configure +``` + +In the pipeline, go to the end of the script (line 31) and **before the last line** (the trailing "}" you need to paste in the following code. + +``` Groovy + + stage ('Save MongoRecords.js') { + dir('deploy') { + archiveArtifacts artifacts: 'MongoRecords.js', excludes: '**/docker' + } + } + + def mrpipaddress + + stage ('Get MRP IP Address') { + mrpipaddress = input( + id: 'mrpipaddress', message: 'Please enter the MRP VM IP Address', parameters: [ + [$class: 'TextParameterDefinition', defaultValue: '192.168.102.1', description: 'This is the IP Address by which the VM can be remotely accessed', name: 'mrpipaddress'] + ]) + echo ("MRP IP Address: ${mrpipaddress}") + } + + stage ("ssh") { + sshagent(['mrpadmin']) { + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/mrp.war'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/integration-service-0.1.0.jar'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/ordering-service-0.1.0.jar'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/MongoRecords.js'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -sL https://raw.githubusercontent.com/Microsoft/PartsUnlimitedMRP/master/docs/assets/jenkins/env/deploy_mrp_app.sh | sudo bash -'" + } + sh "curl -sL -w \"%{http_code}\\n\" http://${mrpipaddress}:9080/mrp/ -o /dev/null" + } + +``` + +Click **Save** + +**NOTE:** In the Azure Stack environment, because we have chosen not to automate the new build process on the changing of code in GitHub, you will still need to manually press **Build Now** in the Jenkins UI **After** we make a change to the code in GitHub. + +The pipeline shall now be the following - **Make sure you change the git url on line 4, to your GitHub repository**. + +``` Groovy + +node{ + + stage ("Checkout") { + git url: 'https://github.com/Microsoft/PartsUnlimitedMRP' + } + + env.JAVA_HOME = "${tool 'JDK 8'}" + env.PATH = "${env.JAVA_HOME}/bin:${env.PATH}" + sh 'java -version' + + stage ('Build IntegrationService') { + dir('src/Backend/IntegrationService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/integration-service*.jar', excludes: null + } + } + + stage ('Build OrderService') { + dir('src/Backend/OrderService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/ordering-service*.jar', excludes: null + junit '**/TEST-*.xml' + } + } + + stage ('Build Client') { + dir('src/Clients') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/mrp.war', excludes: null + } + } + + stage ('Save MongoRecords.js') { + dir('deploy') { + archiveArtifacts artifacts: 'MongoRecords.js', excludes: '**/docker' + } + } + + def mrpipaddress + + stage ('Get MRP IP Address') { + mrpipaddress = input( + id: 'mrpipaddress', message: 'Please enter the MRP VM IP Address', parameters: [ + [$class: 'TextParameterDefinition', defaultValue: '192.168.102.1', description: 'This is the IP Address by which the VM can be remotely accessed', name: 'mrpipaddress'] + ]) + echo ("MRP IP Address: ${mrpipaddress}") + } + + stage ("ssh") { + sshagent(['mrpadmin']) { + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/mrp.war'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/integration-service-0.1.0.jar'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/build/libs/ordering-service-0.1.0.jar'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -O ${env.JENKINS_URL}/job/PartsUnlimitedMRP/lastSuccessfulBuild/artifact/MongoRecords.js'" + sh "ssh -o StrictHostKeyChecking=no -l mrpadmin ${mrpipaddress} 'curl -sL https://raw.githubusercontent.com/Microsoft/PartsUnlimitedMRP/master/docs/assets/jenkins/env/deploy_mrp_app.sh | sudo bash -'" + } + sh "curl -sL -w \"%{http_code}\\n\" http://${mrpipaddress}:9080/mrp/ -o /dev/null" + } + +} + +``` + +## Connecting the dots + +**1.** Go to the source code on your GitHub repository + +**2.** Edit the file **src/Clients/Web/index.html** + +You can change the title of the page for example. + +![Editing PartsUnlimitedMRP title](<../../../docs/assets/jenkins/edit_index.png>) + +**3.** Click **Commit changes** + +**4.** Navigate to your Jenkins master, and click **Build Now** +``` +http://ip_address_of_your_jenkinsmaster:8080/job/PartsUnlimitedMRP/ +``` + +**5.** The build will begin, and the pipeline will stop at the stage **Get MRP IP Address** + +Click on the step that is paused and enter the IP address of the MRP machine, this is the Parts Unlimited MRP with SSH VM you deployed earlier + +Click **Proceed** + +![Enter the IP Address of the deployment machine](/deploy/azurestack/docs/media/JenkinsGetMRPIP.PNG) + +**6.** Wait until the completion of the pipeline + +**7.** Navigate to the following address: + +``` +http://ip_address_of_the_mrp_deployment_machine:9080/mrp +``` +The IP address of the MRP deployment machine is the IP address of the Parts Unlimited MRP with SSH VM you deployed earlier + +Verify that the Title in the browser is the same than the one you have modified in the code. + +![Parts Unlimited Application](<../../../docs/assets/jenkins/pumrp_app.png>) + +# Next steps + +In this lab, you learned how to implement Continuous Deployment for the Parts Unlimited MRP Application. +This allows you to reduce the time to go in production and get feedback if your changes are okay. Implemented with Continuous Integration, the changes performed by the developers are pushed, in a continuous manner into production without removing the ability to have human control. + +If you're interested in learning more about DevOps tooling on Azure Stack, check out these Hands-On-Labs: + +- [Continuous Deployment with Puppet](/deploy/azurestack/docs/puppet_setup.md) +- [Continuous Deployment with Chef](/deploy/azurestack/docs/chef_setup.md) + +# Continuous Feedback + +#### Issues / Questions about this Hands-On-Lab ?? + +[If you are encountering issues or have questions during this Hands on Labs, please open an issue by clicking here](https://github.com/Microsoft/PartsUnlimitedMRP/issues) + +Thanks diff --git a/deploy/azurestack/docs/jenkins_CI.md b/deploy/azurestack/docs/jenkins_CI.md new file mode 100644 index 0000000..b7837a8 --- /dev/null +++ b/deploy/azurestack/docs/jenkins_CI.md @@ -0,0 +1,223 @@ +# Continuous Integration for Parts Unlimited MRP with Jenkins +In this lab, we have an application called Parts Unlimited MRP. We want to set up Jenkins to be able continuously integrate code into the master branch of code. This means that whenever code is committed and pushed to the master branch, we want to ensure that it integrates into our code correctly to get fast feedback. To do so, we are going to be creating a pipeline that will allow us to compile and run unit tests on our code when it is pushed to GitHub. + +## *Important Consideration for Azure Stack +Combining Jenkins and GitHub allows for the automated building of an application as soon as developers check in code to their GitHub repository, through a capability known as webhooks. For instance, you can configure Jenkins and GitHub in such a way that when GitHub detects new code from your developers, it automatically sends information to Jenkins, which triggers the build process to start, using the freshly checked-in code. This is more efficient than having Jenkins poll GitHub on an interval for instance, or via manual triggering. + +Due to the way that Azure Stack is configured from a networking perspective, utilizing webhooks from GitHub (resides on the public internet) and your Jenkins VM (inside an Azure Stack virtual network, which itself is likely inside your corporate network) is difficult. If you recall earlier, your IP address for your Jenkins Master VM is likely 192.168.102.X i.e. a private IP. This will not resolve on the public internet, and thus, GitHub would not be able to reach this address directly. + +Workarounds include the use of a GitHub proxy, that has communication between the Jenkins VM and the public internet, or alternatively, configuring multiple NAT rules, using public IPs etc. to allow GitHub to reach the Jenkins Master VM. A more realistic alternative would be the deployment of GitHub Enterprise on-premises, which would provide GitHub functionlity, but within your corporate environment. + +These workarounds are currently out of scope, but may be addressed in the future. For this lab, you will trigger builds manually in Jenkins. + +## Pre-Requisites: ## + +- Completion of the lab [Set up Parts Unlimited MRP with Jenkins](/deploy/azurestack/docs/jenkins_setup.md) +- Have a GitHub account [https://github.com](https://github.com). + +## Tasks Overview: +During the following tasks you will fork the Parts Unlimited MRP github repository and create a Jenkins pipeline for the Continuous Integration of the Parts Unlimited MRP application. You will learn how to configure Jenkins so that whenever a change is checked in on the code repository, a build will be triggered and several tests will be performed. + +### Configure your GitHub repository + +**1.** Nagivate to [https://github.com/Microsoft/PartsUnlimitedMRP/](https://github.com/Microsoft/PartsUnlimitedMRP/) + +**2.** Sign in with your github account + +**3.** Click on Fork. + +**NOTE**: if you have multiple accounts, select the account you want to fork to. + +![Github fork](<../../../docs/assets/jenkins/github_fork.png>) + +### Create a new pipeline +In this task, we will create a new pipeline that will build the artifacts of the application. Before we do this however, there are a couple of settings to tweak on the Jenkins master, to ensure smooth operation of the lab. + +**1.** Firstly navigate to: + +``` +http://ip_address_of_your_jenkinsmaster:8080/configureSecurity/ +``` + +**2.** Check the box "Allow anonymous read access" + +**3.** Untick the box "Prevent Cross Site Request Forgery exploits" and click **Save** + +![CSRF_disabled](<../../../docs/assets/jenkins/csrf_disabled.png>) + +This will Disable the CSRF protection on the Jenkins master but is an easy way to enable CI with Github. + +Click **Save** + +**4.** Create an empty pipeline: from your Jenkins master, click on **New Item**. + +**NOTE:** You can also go directly to: http://IP_address_of_your_jenkinsmaster/view/All/newJob + +![New Jenkins item](<../../../docs/assets/jenkins/jenkins_newitem.png>) + +* Type the following name for the pipeline: **PartsUnlimitedMRP** +* Select **Pipeline** +* Click **OK** + +![New Jenkins Pipeline](<../../../docs/assets/jenkins/jenkins_newpipeline.png>) + +The pipeline type in Jenkins will allow us to describe all the build steps with Groovy code. This code can be easily ported on any Jenkins system and could also be embedded in a Jenkinsfile in the source code. + +**5.** Create the Pipeline + +Click on the tab name **Pipeline** and ensure that the definition is **Pipeline script** + +The following code will clone the source code from PartsUnlimited, define the environment variables for the JDK and print the version of Java that we are using. Copy the script below in the **Script** box. + +``` Groovy + + node{ + stage ("Checkout") { + git 'https://github.com/Microsoft/PartsUnlimitedMRP.git' + } + + env.JAVA_HOME = "${tool 'JDK 8'}" + env.PATH = "${env.JAVA_HOME}/bin:${env.PATH}" + sh 'java -version' + } + +``` + +Replace the git url with the url of your own github repository. + +![Pipeline script](<../../../docs/assets/jenkins/pipeline_script1.png>) + +The **stage** syntax in the code above defines a boundary of code that will be executed together. In a pipeline you can have as many stages as you want, they can run sequentially or in parallel, depending on the constraints that you have to build the application. + +Click **Save** and then **Build Now** + +![Pipeline script](<../../../docs/assets/jenkins/pipeline_build1.png>) + +After few seconds you should have a successful build with following result: + +![Build results](<../../../docs/assets/jenkins/build_result1.png>) + +**6.** Building PartsUnlimitedMRP + +Now that we have a basic pipeline, let's add the code that will define the build of the Parts Unlimited MRP application. +The application is composed of three components: +- The _Order Service_ +- The _Integration Service_ +- The _Client_ application + +We will create a stage for each of those components. + +Click on **Configure** on the left section. + +Copy the following code in the pipeline script: + +``` Groovy + + node{ + stage ("Checkout") { + git 'https://github.com/Microsoft/PartsUnlimitedMRP.git' + } + + env.JAVA_HOME = "${tool 'JDK 8'}" + env.PATH = "${env.JAVA_HOME}/bin:${env.PATH}" + sh 'java -version' + + stage ("Integration Service") { + dir('src/Backend/IntegrationService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/integration-service*.jar', excludes: null + } + } + stage ("Order Service") { + dir('src/Backend/OrderService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/ordering-service*.jar', excludes: null + } + } + stage ("Clients") { + dir('src/Clients') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/mrp.war', excludes: null + } + } + } + +``` + +Replace the git url with the url of your own github repository. + +Click **Save** and then **Build Now** + +**NOTE:** You may have to refresh the page once the build has completed to see the artifacts that have been produced. + +![Build Pipeline for PartsUnlimitedMRP](<../../../docs/assets/jenkins/build_pipeline2.png>) + + +### Adding test coverage +The Parts Unlimited MRP Application performs tests for the OrderService component. In this task, we will add some information about the results of those tests and display the trend of the results of those tests. + +**1.** Cick on **Configure** to edit your pipeline script. + +**2.** After line 21, insert the following code + ``` + junit '**/TEST-*.xml' + ``` + +The new pipeline code is: + +``` Groovy + + node{ + stage ("Checkout") { + git 'https://github.com/Microsoft/PartsUnlimitedMRP.git' + } + env.JAVA_HOME = "${tool 'JDK 8'}" + env.PATH = "${env.JAVA_HOME}/bin:${env.PATH}" + sh 'java -version' + stage ("Integration Service") { + dir('src/Backend/IntegrationService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/integration-service*.jar', excludes: null + } + } + stage ("Order Service") { + dir('src/Backend/OrderService') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/ordering-service*.jar', excludes: null + junit '**/TEST-*.xml' + } + } + stage ("Clients") { + dir('src/Clients') { + sh 'chmod +x gradlew' + sh './gradlew build' + archiveArtifacts artifacts: '**/mrp.war', excludes: null + } + } + } + +``` + +**3.** Click on **Save** then **Build Now**, and once complete, click **Build Now** again. + +The test results as displayed below will be displayed AFTER running two builds and refreshing the page. + +![Pipeline with test results](<../../../docs/assets/jenkins/pipeline_withtest.png>) + + +# Next steps + +In this lab, you learned how to create a Continuous Integration build that runs when new commits are pushed to the master branch. This allows you to get feedback as to whether your changes made breaking syntax changes, or if they broke one or more automated tests, or if your changes are OK. Try this lab out for next steps: + +- [Parts Unlimited MRP Continous Deployment with Jenkins](/deploy/azurestack/docs/jenkins_CD.md) + +## Continuous Feedback + +#### Issues / Questions about this Hands-On-Lab? + +[If you are encountering issues or have questions during this Hands-on-Lab, please open an issue by clicking here](https://github.com/Microsoft/PartsUnlimitedMRP/issues) diff --git a/deploy/azurestack/docs/jenkins_setup.md b/deploy/azurestack/docs/jenkins_setup.md index e5e91df..1340471 100644 --- a/deploy/azurestack/docs/jenkins_setup.md +++ b/deploy/azurestack/docs/jenkins_setup.md @@ -2,35 +2,255 @@ In this multi-part lab, we will set up the Jenkins Master in Azure Stack, that will be used for the Parts Unlimited MRP project. We'll then step through using that environment to showcase CI/CD capabilities. [Jenkins](https://jenkins.io/) is an open source automation server that provides capabilities for building, deploying and automating any project. ## Prerequisites -There are a couple of key things you'll need to have in place before setting up this lab environment, which, if you've been following the steps so far, you should already have them :-) +There are a couple of key things you'll need to have in place before setting up this lab environment, which, if you've been following the steps so far, you should already have most of them :-) - A configured Azure Stack, logged into MAS-CON01 - - The Azure Stack Tools downloaded to MAS-CON01 ([Details here](deploy/azurestack/docs/adding_vm_images.md)) - - An Ubuntu base image in the Platform Image Repository ([Details here](deploy/azurestack/docs/adding_vm_images.md)) + - The Azure Stack Tools downloaded to MAS-CON01 ([Details here](/deploy/azurestack/docs/adding_vm_images.md#connecting-to-azure-stack-via-powershell)) + - An Ubuntu base image in the Platform Image Repository ([Details here](/deploy/azurestack/docs/adding_vm_images.md#add-vm-image-to-platform-image-repository-with-powershell)) - Putty installed on MAS-CON01 (use the script below, from an administrative PowerShell console to download) + - An Oracle Account, in order to source the latest JDK (Test creds at http://www.oracle.com then click Sign-in at the top) ```powershell Invoke-Webrequest https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe -OutFile C:\putty.exe ``` -Once you've got all those sorted, you're ready to deploy the environment. The environment will consist of a single **resource group** containing 2 virtual machines, connected on a single virtual network. One of the virtual machines will be the **Jenkins Master**, while the other will be a standard Ubuntu Linux VM, that will be configured using Jenkins, later in the lab series. +Once you've got all those sorted, you're ready to deploy the environment. The environment will consist of a single **resource group** containing the Jenkins Master VM, connected to a single virtual network. Later in the lab, you'll deploy another standard Ubuntu Linux VM, that will be configured using Jenkins. ## Deployment Options Now, you have 2 options for deployment. 1. **ARM Template & Custom Deployment** -> for this option, you will perform a new custom template deployment from Azure Stack, using a JSON file that will be provided for you. You will enter a number of key values for the parameters, and then deploy. **This is the quicker option**. -2. **Create a Custom Marketplace Item for Deployment** -> for this option, in the same way you added an Ubuntu 14.04-LTS item to the Azure Stack Marketplace, you will add a new .azpkg to your Azure Stack, and configure the deployment from this, providing the same parameters as per option 1. +2. **Create a Custom Marketplace Item for Deployment** -> for this option, in the same way you (optionally) added an Ubuntu 16.04-LTS item to the Azure Stack Marketplace, you will add a new .azpkg to your Azure Stack, and configure the deployment from this, providing the same parameters as per option 1. -**The end result of both of these options is the same, however if you'd like to populate your gallery with more items, use option 2. +**The end result of both of these options is the same, however if you'd like to populate your gallery with more items, use option 2.** ### *Option 1 - ARM Template & Custom Deployment -<<<<<<< HEAD If you're not interested in creating a Marketplace item for 'Parts Unlimited MRP with Jenkins', then this quick and easy approach should make things, well, quick and easy for you! -Firstly, you need to click on the button below, and then enter some information: +Firstly, from your MAS-CON01 machine, you need to click on the button below, and fill in the parameter fields. The link should open the Azure Stack portal, and if you're not already logged in, it'll prompt you for your Azure Stack credentials, then take you immediately to the custom template blade. - + -======= ->>>>>>> 1dfa10603ffd4ccdc00834c74195be41f7f50f7c + +You'll need to enter information for the following fields: +- **JENKINSADMINPASSWORD** - choose a password of your choice. +- **JENKINSDNSNAMEFORPUBLICIP** - for testing purposes, use **pumrp-jenkins**. +- **Resource Group** - for testing purposes, use **pumrp-jenkins**. +- **Location** - seeing as this is Azure Stack, you'll just be able to choose local in the current technical preview. + +![Jenkins Deployment](/deploy/azurestack/docs/media/JenkinsDeploy.PNG) + +If you're interested in taking a deeper look at the ARM template that is used for deployment, you could either **click Edit Template** within the custom template deployment blade, and that will present the template that will be used for the deployment, or alternatively, you could **[grab the ARM template from here](/deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins/DeploymentTemplates/JenkinsDeploy.json)** + +Depending on your hardware, the deployment of the key artifacts, the virtual machine, and its respective automated configuration, may take a while. Expect around 20-30 mins for the deployment, unless you have new hardware, and a bank of SSDs for storage! + +Once the deployment has completed, you're ready to proceed with configuring Jenkins. + +### *Option 2 - Create a Custom Marketplace Item for Deployment +If you are interested in adding a custom marketplace item to your Azure Stack Marketplace, then these steps will help. I've already made the package for you, so you should just be able to follow these steps, and import it right into your Azure Stack. + +As we saw earlier, when we [added our Ubuntu base image to the Azure Stack marketplace](/deploy/azurestack/docs/add_marketplace_item.md), things are much easier when something is packaged for you, so to start things off, pull down the .azpkg file for our Jenkins environment, that I've stored on GitHub. From yor **MAS-CON01** machine, do the following: + +- [Download Jenkins Package](/deploy/azurestack/instances/jenkins_standalone/TheJenkinsProject.Jenkins.1.0.0.azpkg) + +1. Navigate to your **TheJenkinsProject.Jenkins.1.0.0.azpkg** file, you downloaded earlier +2. Move it to a newly created folder **C:\MyMarketPlaceItems**. + + It’s important to note that if you are going to use the package I have provided, you need to have used the following info when you uploaded your Ubuntu base VHD image to the platform image repository [earlier](/deploy/azurestack/docs/adding_vm_images.md). Any differences, and the package I’m providing will not reference your uploaded image. If you used an exact copy of my PowerShell upload script, you're all set. + + - Publisher "Canonical" + - Offer "UbuntuServer" + - SKU "16.04.3-LTS" + +Now that we have the package ready to upload, we need *somewhere* in Azure Stack to upload it to. Fortunately, we [created a storage account for this very purpose earlier](/deploy/azurestack/docs/add_marketplace_item.md#uploading-a-package-to-azure-stack), so we'll use the same storage account for this package. + +1. Connect to your Azure Stack via an **administrative PowerShell console**. If you're not still connected from the earlier steps, run the following: + + ``` powershell + cd\ + cd C:\AzureStack-Tools-master\connect + Import-Module .\AzureStack.Connect.psm1 + Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" + $TenantID = Get-DirectoryTenantID -AADTenantName ".onmicrosoft.com or customdomain.com" -EnvironmentName AzureStackAdmin + $UserName='' + $Password=''| ` + ConvertTo-SecureString -Force -AsPlainText + $Credential= New-Object PSCredential($UserName,$Password) + Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $TenantID -Credential $Credential + ``` + +2. Now, let's access the storage account to hold this package. If you recall, we named the storage account **tenantartifacts** and this is located in a dedicated **resource group** of the same name: + + ``` powershell + $StorageAccount = Get-AzureRmStorageAccount -ResourceGroupName tenantartifacts -Name tenantartifacts + $GalleryContainer = Get-AzureStorageContainer -Name gallery -Context $StorageAccount.Context + ``` +3. With the resource group, storage account and gallery container now accessible, we can push our new Jenkins marketplace package into Azure Stack. + + ``` powershell + $GalleryContainer | Set-AzureStorageBlobContent -File "C:\MyMarketPlaceItems\TheJenkinsProject.Jenkins.1.0.0.azpkg" + $GalleryItemURI = (Get-AzureStorageBlob -Context $StorageAccount.Context -Blob 'TheJenkinsProject.Jenkins.1.0.0.azpkg' -Container 'gallery').ICloudBlob.uri.AbsoluteUri + Add-AzureRMGalleryItem -GalleryItemUri $GalleryItemURI -Verbose + ``` + +When successful, you should see a **StatusCode** of **Created** + + ![Successful Upload](/deploy/azurestack/docs/media/PSCreated.PNG) + +Go back and refresh the portal, and under **New -> Virtual Machines -> See All**, you should see your newly added Jenkins marketplace item + + ![Jenkins added to Marketplace](/deploy/azurestack/docs/media/JenkinsMarketplace.PNG) + +With your newly created marketplace item created and pushed to the Azure Stack Marketplace, we're ready to deploy an instance of the environment. + +1. On the **MAS-CON01** machine, in your Azure Stack portal, click on **New**, then **Virtual Machines**, then **See all**. +2. Select the **Jenkins** item in the marketplace, and click **Create**. +3. Provide the information for the following fields: + - **JENKINSADMINPASSWORD** - choose a password of your choice. + - **JENKINSDNSNAMEFORPUBLICIP** - for testing purposes, use **pumrp-jenkins**. + - **Resource Group** - for testing purposes, use **pumrp-jenkins**. + - **Location** - seeing as this is Azure Stack, you'll just be able to choose local in the current technical preview. + + Once you've filled in the fields, it should look like this: + + ![Deploying Jenkins](/deploy/azurestack/docs/media/JenkinsDeploy.PNG) + +4. Click **OK** to confirm the parameters, and then **Create** to start the deployment. + +Depending on your hardware, the deployment of the key artifacts, the virtual machine, and its respective automated configuration, may take a while. Expect around 20-30 mins for the deployment, unless you have new hardware, and a bank of SSDs for storage! +Once the deployment has completed, you're ready to proceed with configuring Jenkins. + +## Jenkins Setup +Regardless of using Option 1, or Option 2, your environment should now be deployed. You can now continue with the configuration of the Jenkins environment specifically. + +1. Firstly, we need to **obtain the public IP of the Jenkins Master VM**. In the Azure Stack portal, click on **Resource Groups** and look for the Resource Group that you have just created. Click on the virtual machine in the resource group (_pumrp-jenkins_ in this example) and look for the "Public IP address/DNS name label". + + ![Obtain the public IP of the Jenkins Master](/deploy/azurestack/docs/media/JenkinsMRPDeployed.PNG) + +2. We can now **SSH to the Jenkins Master VM**. To do this, we'll use PuTTY, (or any other ssh tool that you like) to connect to the IP address of the VM, and once connected type the following information to login to the VM: + + - login as: jenkinsadmin + - password: your password chosen for **JENKINSADMINPASSWORD** at template deployment time + +To make this lab easier, the user has been pre-configured to be **jenkinsadmin** through the automated deployment. + +### Configure your Jenkins Master +In this task, we will perform the basic configuration of the Jenkins master server and install the necessary plugins that will be used for Continuous Integration. + +**1.** Obtain the initial admin password + +From the SSH session that you have opened at the end of Task 1, type the following command to obtain the initial admin password. + +``` bash +sudo cat /var/lib/jenkins/secrets/initialAdminPassword +``` + +Copy the value returned by the command. Keep the SSH session open, we will return at the end of this task. + +![Initial jenkins admin password](/deploy/azurestack/docs/media/JenkinsPassword.PNG) + +**2.** Unlock the jenkins master + +SOn MAS-CON01, with your browser, navigate to the default page of the Jenkins master. + +``` +http://ip_address_of_your_jenkinsmaster:8080 +``` + +Paste the initial admin password obtained earlier to unlock your instance of Jenkins and click **Continue**. + +![Initial jenkins admin password](/deploy/azurestack/docs/media/initial_jenkins_unlock.png) + +Click **Install suggested plugins** + +![Initial jenkins plugins](/deploy/azurestack/docs/media/initial_jenkins_plugins.png) + +**3.** Create the first user + +Create a user from the "Create First Admin User": +* Username = Jenkins +* Password = Passw0rd +* Full name = Jenkins Admin +* E-mail address = jenkins@microsoft.com +* Click **Save and Finish**. + +![Initial jenkins plugins](/deploy/azurestack/docs/media/JenkinsCreateAdminUser.PNG) + +**4.** Start Using Jenkins + +Click the **Start Using Jenkins** button to get started! You now have a virtual machine in Azure Stack running Jenkins as a Master. You should automatically be logged in as the user you have just created, but if not, logon to the Jenkins Master with the credentials that you have just created in step 4. + +* Username = Jenkins +* Password = Passw0rd + +**5.** Navigate to the "Configure System" page: + +From the left-hand navigation, click on **Manage Jenkins**, then **Configure System** + +Under **Jenkins Location** look for the Jenkins URL field and type the URL of your Jenkins master: http://ip_address_of_your_jenkinsmaster:8080/ + +**NOTE:** the URL may already be here but type it again and save to ensure the proper completion of the rest of the lab. + +![Jenkins URL](/deploy/azurestack/docs/media/JenkinsLocation.PNG) + +Click **Save** + +**6.** Install git + +Switch to the SSH session that was opened during step 1. + +Type the following command: +``` +sudo apt-get install git -y +``` + +### Configure Jenkins +The three tools that we will need to create our pipeline on Jenkins needs to be configured on our instance of Jenkins. + +Connect to the Jenkins master that you have configured in the previous task using port 8080: + +``` +http://ip_address_of_your_jenkinsmaster:8080/manage +``` + +**1.** Configure the JDK + +From the Jenkins portal, on the left-hand navigation, click on **Manage Jenkins**, then **Global Tool Configuration**. In order to build the Parts Unlimited application we need to have the JDK installed. + +Click on **Add JDK** + +* Type the friendly name for the JDK: JDK 8 +* Ensure the box "Install automatically" is checked +* In the drop-down list, select the latest version ("Java SE Development Kit 8u131" at the time of writing) +* Check the box "I agree to the Java SE Development Kit License Agreement" +* Click on the link to enter the username and password of your Oracle account (Test credentials here: https://www.oracle.com and click on Sign In at the top) then click **OK** then **Close** +* Click **Save** + +![JDK Installation](/deploy/azurestack/docs/media/JDKSettings.PNG) + +**2.** Configure Gradle + +Once you've been returned to the Manage Jenkins page, go to the **Global Tool Configuration** again. + +Gradle will be used to build the Parts Unlimited MRP application. If needed, you could use Maven or Ant as well, the configuration would be very similar. Click on **Add Gradle** + +* Type the friendly name for this installation of Gradle: "Gradle" +* Verify that the "Install automatically" box is checked +* Select the latest version of Gradle in the drop-down list. +* Click **Save** + +![Gradle Installation](/deploy/azurestack/docs/media/JenkinsGradle.PNG) + +# Next steps + +In this lab, you learned how to setup a Jenkins Master on Azure Stack, try these labs for the next steps: + +- [Parts Unlimited MRP Continous Integration with Jenkins](/deploy/azurestack/docs/jenkins_CI.md) +- [Parts Unlimited MRP Continous Deployment with Jenkins](/deploy/azurestack/docs/jenkins_CD.md) + +## Continuous Feedback + +#### Issues / Questions about this Hands-On-Lab? + +[If you are encountering issues or have questions during this Hands on Labs, please open an issue by clicking here](https://github.com/Microsoft/PartsUnlimitedMRP/issues) diff --git a/deploy/azurestack/docs/media/AddPuppetNode.PNG b/deploy/azurestack/docs/media/AddPuppetNode.PNG new file mode 100644 index 0000000000000000000000000000000000000000..4300129a29b89212b210cf0ca083a17402966ecd GIT binary patch literal 15796 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 THQ=N*=-8oC2djPxz4ku<^sM8p literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JDKSettings.PNG b/deploy/azurestack/docs/media/JDKSettings.PNG new file mode 100644 index 0000000000000000000000000000000000000000..9c2dae7cb7c5b8ef94ff7d4b122485496c59a8de GIT binary patch literal 12671 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 literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsCreateAdminUser.PNG b/deploy/azurestack/docs/media/JenkinsCreateAdminUser.PNG new file mode 100644 index 0000000000000000000000000000000000000000..7386fa0b245eff38224e6835933e4241d51cb301 GIT binary patch literal 13301 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 literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsDeploy.PNG b/deploy/azurestack/docs/media/JenkinsDeploy.PNG new file mode 100644 index 0000000000000000000000000000000000000000..a56d08607d61f5be90192301090cd82a28d745e2 GIT binary patch literal 46035 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 a*P#0S@-#s))EyMyOF>purbNm-;6DJZZe!*E literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsDeployment.PNG b/deploy/azurestack/docs/media/JenkinsDeployment.PNG new file mode 100644 index 0000000000000000000000000000000000000000..c1f59685cace990c77d7efc2c3d5ba70368344fa GIT binary patch literal 24381 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

gfFrsy@BjcF3%tmpZrhiSLcGrohcLy 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 U^!`1d<^8II2af(ibnvLFfa2W{h!GjJ2_u$Up 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%0DQZv#CPwdSZh_DLMpNcjKf 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 b{1-Nn@!K2&j+P+|^rIxFF54h&8UFtOex6*R literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsGradle.PNG b/deploy/azurestack/docs/media/JenkinsGradle.PNG new file mode 100644 index 0000000000000000000000000000000000000000..68757fad1fc33f7fe31cea63e3e27505c2772776 GIT binary patch literal 5828 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 U^seu~<5s}&?8P&r(}B1C2jcv(lmGw# literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsLocation.PNG b/deploy/azurestack/docs/media/JenkinsLocation.PNG new file mode 100644 index 0000000000000000000000000000000000000000..6f9a1ca495d6fcb8d0e23bbf4d1bddb955b27e79 GIT binary patch literal 5898 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 N_n$m}B)NuN{|~H|b(R1C literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsMRPDeployed.PNG b/deploy/azurestack/docs/media/JenkinsMRPDeployed.PNG new file mode 100644 index 0000000000000000000000000000000000000000..a1fc4d25c63c9617be474f61667b4cb07d1199da GIT binary patch literal 22198 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 T?#7%kd&Jbx>RPqFXTpB~+UXh6 literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsMarketplace.PNG b/deploy/azurestack/docs/media/JenkinsMarketplace.PNG new file mode 100644 index 0000000000000000000000000000000000000000..61b875b13c7fad1f74ac41458074cc61e418092d GIT binary patch literal 44901 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 literal 0 HcmV?d00001 diff --git a/deploy/azurestack/docs/media/JenkinsPassword.PNG b/deploy/azurestack/docs/media/JenkinsPassword.PNG new file mode 100644 index 0000000000000000000000000000000000000000..f5ac0f5125d73b0ba53ee7442fe3a0b2876d5f5b GIT binary patch literal 5341 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

*1@7}nC;eN9w>kSCP6oU# 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