mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-29 21:41:00 +08:00
13ef67944a
sources/tech/20201109 Set up Minishift and run Jenkins on Linux.md
312 lines
11 KiB
Markdown
312 lines
11 KiB
Markdown
[#]: 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 <https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.10.0/docker-machine-driver-kvm-ubuntu16.04> \
|
||
-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 <https://github.com> 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:
|
||
<https://192.168.42.66:8443/console>
|
||
```
|
||
|
||
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
|