Tuesday, November 8, 2016

Deploy a Jenkins Docker VM in Azure

    Azure provides a lot of VM templates which enables you to quickly create and configure a machine matching with your needs.

    In this tuto, you are going to setup a VM with a Jenkins services hosted in a Docker container.

    Time : 20 minutes

    Prerequisites :

    • Putty
    • Azure subscription

1. Connect to Azure management Portal (https://portal.azure.com)

    clip_image001

2. Select Jenkins docker template and click on "Create" button

    clip_image002

    clip_image003

3. Fill in the configuration form. You can generate a SSH key with PuttyGen or any other tool or you can just type a password.

    clip_image004

4. Select the machine type

    clip_image005

5. You can configure advanced features if required, else, click OK

    clip_image006

6. You're almost done, click ok. It will take a few minutes to Azure to provision the VM

    clip_image007

7. Once the VM is created, you can retrieve its public IP. By default, a Jenkins server is configured to be accessed through ports 8080 and 22

    Copy the public IP

    clip_image008

8. Open a web browser and type the Jenkins url like http://12.123.12.123:8080

9. You should get this page

    clip_image009

10. Now we should get the Administrator password. It is not the one you entered when creating the VM. It is another hosted in the VM file system.

11. Open Putty and initiate a connection to this machine

    clip_image010

12. You will be prompted for your credentials. Enter the credentials configured when creating the machine.

13. You are now connected !

    clip_image011

14. Let's find the admin password now ! Since you are on a Docker VM, you need to get root access to find the file.

15. Run this command and set a root password

    sudo passwd root

16. Connect as root

    su -

17. Now your prompt should look like that :

clip_image012

18. find / -name 'initialAdminPassword'

19. You should get the path of the initial admin password file

20. Open it with nano

    clip_image013

21. You're done ! Go back to the Jenkins page on your Web browser and enter this code.

    clip_image014

22. At this step, you should feel like a hacker! Install the suggested plugins

    clip_image015

23. At the end of Jenkins config, create the admin user

    clip_image016

24. Well done! Your Jenkins is ready!

    clip_image017

How to add a Jenkins Build in VSTS?

    Visual Studio Team Services now provides a large set of features and third party tools integration that allows developers to "come as they are" and leverage the tools they master.
    Some teams already invest in DevOps and release management with third party tools like Jenkins or Maven and want to manage their work items in TFS. It is now possible by configuring an endpoint connection in VSTS.
    Prerequisites:
    • Jenkins server available and configured
    1. Create VSTS with Git Source control
    clip_image001


clip_image002
2. The project is created! Then, go to build and create a new build definition
    clip_image003
3. Select the Jenkins Build Template
    clip_image004
4. Here you can select from which source control this build definition will be connected. Select the Git Source control from your VSTS team project. Select the master branch
    clip_image005
5. Now, we've got 2 main steps in the build. The first queue the build on your Jenkins server. The second download the results and save them to the VSTS staging directory
    clip_image006
6. Now we need to connect to a Jenkins Endpoint. If no endpoints has been registered yet, click on "Manage"
    clip_image007
7. A new tab is going to be opened. In the "New Service Endpoint" Drop down list, select Jenkins
    clip_image008
8.Enter the following parameters:
    Connection Name: The name of this Endpoint (up to you)
    Server URL: Url of your Jenkins Server (For instance http://52.169.74.152:8080/)
    Accept untrusted SSL certificates (if Jenkins server connection is encrypted)
    Username
    Password
    Click on Verify Connection and OK
    clip_image009





9.Go back to the build setup and refresh the service Enpoint drop down
    clip_image010
10. It should now display the newly created Jenkins Endpoint
    clip_image011
11. Then, enter a job name. This job will be the one queued in Jenjins by the build definition
    clip_image012
12. Optional : You can send parameters to the Jenkins Job is needed
13. Configure the Download artifacts step with the Same Endpoint and Job name.
    clip_image013
14. Save everyhing and your build definition is ready !
    clip_image014
15. Once your build definition has been saved, you can queue a New Build
    clip_image015
clip_image016
    Remarks:
    • If no code has been uploaded to the source control, the build may fail
    Next steps:
    Once you configured this build, you can go further by adding SonarQube build steps to your build definition