diff --git a/sources/tech/20201109 Set up Minishift and run Jenkins on Linux.md b/sources/tech/20201109 Set up Minishift and run Jenkins on Linux.md new file mode 100644 index 0000000000..44d5f2ca9a --- /dev/null +++ b/sources/tech/20201109 Set up Minishift and run Jenkins on Linux.md @@ -0,0 +1,311 @@ +[#]: collector: (lujun9972) +[#]: translator: ( ) +[#]: reviewer: ( ) +[#]: publisher: ( ) +[#]: url: ( ) +[#]: subject: (Set up Minishift and run Jenkins on Linux) +[#]: via: (https://opensource.com/article/20/11/minishift-linux) +[#]: author: (Jessica Cherry https://opensource.com/users/cherrybomb) + +Set up Minishift and run Jenkins on Linux +====== +Install, configure, and use Minishift to create your first pipeline. +![cubes coming together to create a larger cube][1] + +[Minishift][2] is a tool that helps you run [OKD][3] (Red Hat's open source OpenShift container platform) locally by launching a single-node OKD cluster inside a virtual machine. It is powered by [Kubernetes][4], which is one of my favorite things to talk about. + +In this article, I will demonstrate how to get started with Minishift on Linux. This was written for Ubuntu 18.04, and you'll need [sudo access][5] on your Linux machine to run some commands. + +### Prerequisites + +Before starting the installation, your Linux machine must have either [KVM][6] for Linux or [VirtualBox][7], which runs on every platform. This demo uses KVM, which you can install along with all the required dependencies: + + +``` +$ sudo apt install qemu-kvm \ +libvirt-clients libvirt-daemon-system \ +bridge-utils virt-manager   +``` + +After installing KVM, you must make some modifications to allow your user to use it. Specifically, you must add your user name to the `libvirt` group: + + +``` +$ sudo usermod --append --groups libvirt $(whoami) +$ newgrp libvirt +``` + +Next, install the Docker KVM driver, which is needed to run containers on Minishift. I downloaded the Docker machine driver directly to `/usr/local/bin`. You don't have to save it to `/usr/local/bin`, but you must ensure that its location is in your [PATH][8]: + + +``` +$ curl -L \ +-o /usr/local/bin/docker-machine-driver-kvm + +$ sudo chmod +x /usr/local/bin/docker-machine-driver-kvm +``` + +### Install Minishift + +Now that the prerequisites are in place, visit the Minishift [releases page][9] and determine which version of Minishift you want to install. I used Minishift [v1.34.3][10]. + +[Download the Linux .tar file][11] to a directory you will be able to find easily. I used the `minishift` directory: + + +``` +$ ls +Minishift-1.34.3-linux-amd64.tgz +``` + +Next, untar your new file using [the `tar` command][12]: + + +``` +$ tar zxvf minishift-1.34.3-linux-amd64.tgz +minishift-1.34.3-linux-amd64/ +minishift-1.34.3-linux-amd64/LICENSE +minishift-1.34.3-linux-amd64/README.adoc +minishift-1.34.3-linux-amd64/minishift +``` + +By using the `v` (for _verbose_) option in your command, you can see all the files and their locations in your directory structure. + +Run the `ls` command to confirm that the new directory was created: + + +``` +$ ls +minishift-1.34.3-linux-amd64 +``` + +Next, change to the new directory and find the binary file you need; it is named `minishift`: + + +``` +$ cd minishift-1.34.3-linux-amd64 +$ ls +LICENSE  minishift  README.adoc +$ +``` + +Move the `minishift `binary file to your PATH, which you can find by running the following and looking at the output: + + +``` +$ echo $PATH +/home/jess/.local/bin:/usr/local/sbin:/usr/local/bin +``` + +I used `/usr/local/bin` as the `minishift` binary file's location: + + +``` +$ sudo mv minishift /usr/local/bin +[sudo] password for jess: +$ ls /usr/local/bin +minishift +``` + +Run the `minishift` command and look at the output: + + +``` +$ minishift +Minishift is a command-line tool that provisions and manages single-node OpenShift clusters optimized for development workflows. + +Usage: +  minishift [command] + +Available Commands: +  addons        Manages Minishift add-ons. +  completion  Outputs minishift shell completion for the given shell +  config        Modifies Minishift configuration properties. +  console       Opens or displays the OpenShift Web Console URL. +[...] + +Use "minishift [command] --help" for more information about a command. +``` + +### Log into Minishift's web console + +Now that Minishift is installed, you can walk through it and play with some cool new software. Begin with `minishift start`. This, as you might guess, starts Minishift—specifically, it starts a one-node cluster on your computer: + + +``` +$ minishift start +  Starting profile 'minishift' +  Check if deprecated options are used … OK +  Checking if is reachable … OK +[...] +  Minishift will be configured with… +  Memory: 4GB +  vCPUs : 2GB +  Disk size: 20 GB +Starting Minishift VM ……….OK +``` + +This process can take a long time, depending on your hardware, so be patient. When it ends, you'll get information about where to find your imaginary cluster on your virtualized network: + + +``` +Server Information ... +MiniShift server started. +The server is accessible via web console at: + +``` + +Now, MiniShift is running, complete with a web console. You can log into the OKD console using **developer** as the user name and any password you want. I chose **developer** / **developer**. + +![Minishift web console login][13] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +The web console is an easy control panel you can use to administer your humble cluster. It's a place for you to create and load container images, add and monitor pods, and ensure your instance is healthy. + +![Minishift web console][15] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +### Build a pipeline + +To start building your first pipeline, click **Pipeline Build Example** on the console. Click **Next** to show the parameters available to create the pipeline project. + +![Pipeline Build Example][16] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +A window appears with parameters to fill in if you want; you can use what's already there for this example. Walk through the rest of the screen choices to create a sample pipeline. + +![Pipeline options][17] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Click **Create**, and let Minishift create the project for you. It shows your success (or failure). + +![Successful pipeline build][18] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +You can also click **Show Parameters** and scroll through the list of parameters configured for this project. Click **Close** and look for a confirmation message on the left.  + +![Show Parameters Minishift][19] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +![List of projects][20] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +When you click on **My Project**, you can see the details and pods created for the project to run. + +![Project details][21] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Open the `jenkins-ephemeral` link that was generated. Log in again with the **developer** credentials and allow access to run a pipeline in Jenkins. + +![Authorize access interface][22] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Now you can look through the Jenkins interface to get a feel for what it has to offer. + +![Jenkins interface][23] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Find your project. + +![Jenkins projects][24] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +When you're ready, click **Build Now**. + +![Jenkins "build now"][25] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Then you can view the job's output in the console output. + +![Jenkins console output][26] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Once the job completes successfully, you will see a success message at the bottom of the console. + +What did this pipeline do? It updated the deployment manually. + +![Pipeline result][27] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +Congratulations, you successfully created an example automated deployment using Minishift! + +### Clean it up + +The last thing to do is to clean up everything by running two commands: + + +``` +$ minishift stop +$ minishift delete +``` + +Why `stop` and then `delete`? Well, I like to make sure nothing is running before I run a delete command of any kind. This results in a cleaner delete without the possibility of having any leftover or hung processes. Here are the commands' output. + +![minishift stop command][28] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +![minishift delete command][29] + +(Jess Cherry, [CC BY-SA 4.0][14]) + +### Final notes + +Minishift is a great tool with great built-in automation. The user interface is comfortable to work with and easy on the eyes. I found it a fun new tool to play with at home, and if you want to dive in deeper, just look over the great [documentation][30] and many [online tutorials][3]. I recommend exploring this application in depth. Have a happy time Minishifting! + +-------------------------------------------------------------------------------- + +via: https://opensource.com/article/20/11/minishift-linux + +作者:[Jessica Cherry][a] +选题:[lujun9972][b] +译者:[译者ID](https://github.com/译者ID) +校对:[校对者ID](https://github.com/校对者ID) + +本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 + +[a]: https://opensource.com/users/cherrybomb +[b]: https://github.com/lujun9972 +[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/cube_innovation_process_block_container.png?itok=vkPYmSRQ (cubes coming together to create a larger cube) +[2]: https://www.okd.io/minishift/ +[3]: https://www.redhat.com/sysadmin/learn-openshift-minishift +[4]: https://opensource.com/resources/what-is-kubernetes +[5]: https://en.wikipedia.org/wiki/Sudo +[6]: https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine +[7]: https://www.virtualbox.org/wiki/Downloads +[8]: https://opensource.com/article/17/6/set-path-linux +[9]: https://github.com/minishift/minishift/releases +[10]: https://github.com/minishift/minishift/releases/tag/v1.34.3 +[11]: https://github.com/minishift/minishift/releases/download/v1.34.3/minishift-1.34.3-linux-amd64.tgz +[12]: https://opensource.com/article/17/7/how-unzip-targz-file +[13]: https://opensource.com/sites/default/files/uploads/minishift_web-console-login.png (Minishift web console login) +[14]: https://creativecommons.org/licenses/by-sa/4.0/ +[15]: https://opensource.com/sites/default/files/uploads/minishift_web-console.png (Minishift web console) +[16]: https://opensource.com/sites/default/files/uploads/minishift_pipeline-build-example.png (Pipeline Build Example) +[17]: https://opensource.com/sites/default/files/uploads/minishift_pipeline-build-config.png (Pipeline options) +[18]: https://opensource.com/sites/default/files/uploads/minishift_pipeline-build-success.png (Successful pipeline build) +[19]: https://opensource.com/sites/default/files/pictures/params-minishift.jpg (Show Parameters Minishift) +[20]: https://opensource.com/sites/default/files/uploads/minishift_myprojects.png (List of projects) +[21]: https://opensource.com/sites/default/files/uploads/minishift_project-details.png (Project details) +[22]: https://opensource.com/sites/default/files/uploads/minishift_authorize-access.png (Authorize access interface) +[23]: https://opensource.com/sites/default/files/uploads/jenkins-interface.png (Jenkins interface) +[24]: https://opensource.com/sites/default/files/uploads/jenkins-project.png (Jenkins projects) +[25]: https://opensource.com/sites/default/files/uploads/jenkins_build-now.png (Jenkins "build now") +[26]: https://opensource.com/sites/default/files/uploads/jenkins_console-output.png (Jenkins console output) +[27]: https://opensource.com/sites/default/files/uploads/pipelineresult.png (Pipeline result) +[28]: https://opensource.com/sites/default/files/uploads/minishift-stop.png (minishift stop command) +[29]: https://opensource.com/sites/default/files/uploads/minishift-delete.png (minishift delete command) +[30]: https://docs.okd.io/3.11/minishift/using/index.html