Welcome to the Linux Foundation Forum!

Vagrant-free option for setting up the Lab

Options

Hi,

The Jenkins Essentials lab expects Vagrant to be installed and setup, which means that the students need to be on an AMD64 platform. This is kind of limiting for people with the new Apple M1/M2 architectures.

Do we have an alternative to Vagrant for carrying out the Lab Exercises? Thank you.

Comments

  • Shivinder
    Options

    @luisviveropena - Need your opinion here - I have been going through the Lab Guide for this one. I see that the Jenkins and Gitea installation spun up by the Vagrant are just the standard installations. There isnt any kind of integration done between them as such.
    With your prior experience with this course, do you suggest that if I spin Jenkins and Gitea on my own, I should be able to complete the course labs? Thanks.

  • luisviveropena
    luisviveropena Posts: 1,173
    edited February 2023
    Options

    Hi @Shivinder,

    With your prior experience with this course, do you suggest that if I spin Jenkins and Gitea on my own, I should be able to complete the course labs? Thanks.

    Yes, I think you should be able to get it working out of Vagrant.

    It's problematic that virtualization software isn't working for M1/M2 hardware. I found a couple of URLs that I want to share with you. However it's not a perfect solution, but it's seem to be a way to workaround it.

    https://gist.github.com/fatso83/49980bbf065022d36c3a42369479a8df

    https://developer.hashicorp.com/vagrant/docs/providers/vmware

    I'll see with the course authors if we can offer alternatives or provide more suggestions.

    Many regards,
    Luis.

  • Shivinder
    Options

    Hello @luisviveropena ,

    Thank you for the posts above, but they do not have a proper solution, just like you mentioned. I’ve actually been working to setup the lab environment myself.

    It was pretty simple than I thought. I spun up a Ubuntu VM and then I installed the Docker CE on it. Pulled the jenkins/jenkins:lts and the bitnami/gitea images on the VM. I am running the Jenkins container on my VM with the following command:

    docker run -itd —rm -v vol_jenkins:/var/jenkins_home —name jenkins-lts -p 8080:8080 jenkins/jenkins:lts

    If you could tell me how to configure the Docker Host URI part in the Docker Cloud Configuration, then I think I would be done with it.

    It is on Page 20 of the Lab Guide. I am attaching a screenshot of the page as well.

  • zacts
    zacts Posts: 14
    Options

    @Sivinder I'll try to set up a full solution on my machine today, and I'll let you know if I can get this working. I'm working thru the labs too at the moment.

  • Shivinder
    Options

    @zacts Thank you

  • Shivinder
    Options

    Hello again @zacts and @luisviveropena,

    I wanted to give an update on this post. I have been able to get the Docker Host running on my VM by modifying the docker.service file. I am posting the steps here for posterity.

    Step 1: Open the file sudo vim /lib/systemd/system/docker.service
    Step 2: Find the line with the option ExecStart in it
    Step 3: Supply the argument -H tcp://0.0.0.0:2376 to the dockerd command in the line. It should look like this ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2376 --containerd=/run/containerd/containerd.sock
    Step 4: Save this file and reload the systemd by running the command sudo systemctl daemon-reload
    Step 5: Finally reload the docker by running the sudo systemctl restart docker.service

    The next steps are to be done in the Manage Nodes and Clouds option in Manage Jenkins:
    Step 1: Docker Host URI is tcp://0.0.0.0:2376
    Input the rest of the settings from the Lab Guide.

    Now, when I goto the Java Free-style Project configuration and I type in the docker agent label, I get the “Label docker-agent matches no node and 1 cloud”.

    This lets me proceed with the rest of the lab guide.

  • Shivinder
    Options

    I am now stuck on the part where we need to configure the SCM settings which come from Gitea. Since the Lab is a kind of a black-box environment, I could not find the reference to get the maven-examples.git from the Lab guide.

    @luisviveropena Would you be able to help me here by pointing me to the GitHub repo where the authors might have posted this maven-examples repo please? I can get it on my Gitea, and probably proceed.

    It is on the Page 29 of the Lab Guide. Posting the screenshot for reference.

  • Shivinder
    Options

    A little edit:

    The next steps are to be done in the Manage Nodes and Clouds option in Manage Jenkins:
    Step 1: Docker Host URI is tcp://0.0.0.0:2376
    Input the rest of the settings from the Lab Guide.

    The Docker Host URI is tcp://<server-ip-address>:2376

  • zacts
    zacts Posts: 14
    Options

    @Shivinder I just found this link but it might be possible to run vagrant on-top of docker instead of a vm like virtualbox. so, it should speed things up if this is the case. https://developer.hashicorp.com/vagrant/docs/provisioning/docker. I'm going to try it out in just a bit. But, if it works you should be able to run the official LFS267 vagrant image but it would run much faster on slower hardware. I'll let you know if it works for me.

  • zacts
    zacts Posts: 14
    Options

    Oh I see the issue, it seems that there isn't even a vagrant binary available for MacOS other than AMD64.

  • zacts
    zacts Posts: 14
    Options

    @Shivinder Check out this link and let me know if it's useful for you: https://developer.hashicorp.com/vagrant/docs/installation/source. You should be able to build the vagrant binary from Ruby source on your platform. If you can get that working then I'm guessing the vagrant on-top of docker option might work and would be fast to use.

  • Shivinder
    Options

    Thank you for all the effort @zacts
    In reality, there isnt any option to compile Vagrant on Apple’s M1/M2 chips. I’ve found a Windows computer with a Intel i7 processor in it. I think it can do the job, havent tried it yet.

    But I am still interested in knowing why the Docker Host I configured wasn’t able to spin up the Docker containers.

    I guess, I will spin up the Vagrant box image on Windows machine, and see the configurations over there and compare them to mine. I must have missed something. This way I will pull out the repositories from Gitea as well.

  • luisviveropena
    Options

    Hi @Shivinder, it's being very interesting to see the process of finding a solution for this. We are working on the matter, because we can expect more students with similar hardware.

    I’ve found a Windows computer with a Intel i7 processor in it. I think it can do the job, havent tried it yet.

    If you are free to install a Linux distro on the computer, that should facilitate going through the labs.

    Please keep us informed.

    Regards,
    Luis.

  • Shivinder
    Options

    @luisviveropena If I install a Linux VM inside the Windows 11, would it be able to run the Lab Exercises? Running VM inside a VM, I think it shouldn’t work. Just asking for your suggestion.

  • luisviveropena
    luisviveropena Posts: 1,173
    Options

    Hi @Shivinder,

    If I install a Linux VM inside the Windows 11, would it be able to run the Lab Exercises?

    Yep, I think it should work for most of the labs. You just need to have enough memory for the VMs.

    Running VM inside a VM, I think it shouldn’t work. Just asking for your suggestion.

    Yeah, that may not be the best idea in the world.

    Many regards,
    Luis.

Categories

Upcoming Training