# 🇬🇧 Install OpenShift with Vagrant
I'm a developer, and I'm often not comfortable with LAN, system administration ... stuff, but I am usually stubborn. I'm struggling for several days (weeks?) with a specific configuration to prepare a future demonstration. And finally, I succeeded. I'm not sure that I understood all that I did, but I can reproduce it, so I wrote all the steps.
But first, this is my configuration (or my requirements)
# Requirements
- I need an OpenShift server (a ssingle-node cluster), and I will install it on a NUC (OS: Linux) inside a Virtual Machine thanks to Vagrant.
- I need to connect to my OpenShift server from a Mac laptop.
- The NUC and the Mac computer are connected to the same local network (my home wifi box).
# Prerequisites on the NUC side
You need to install:
- VirtualBox
- Vagrant
My NUC is under Ubuntu
18.04
# OpenShift setup
This is my Vagrantfile
: so, create a directory on your Linux server (in my case, it's on my NUC)
OC_DOMAIN = "oc-chewie.test"
OC_IP = "172.16.245.100"
OC_PUB_IP = "192.168.1.100"
OC_NAME = "oc-chewie"
BOX_IMAGE = "bento/ubuntu-16.04"
VERSION = "1.0"
Vagrant.configure("2") do |config|
config.vm.box = BOX_IMAGE
ENV['LC_ALL']="en_US.UTF-8"
config.vm.define "#{OC_NAME}" do |node|
node.vm.hostname = "#{OC_NAME}"
# perhaps you will need to adapt the bridge, it's relate to your material
# usually on OSX, its `bridge: "en0: Wi-Fi (AirPort)"`
node.vm.network "public_network", ip:"#{OC_PUB_IP}", bridge: "wlp58s0"
node.vm.network "private_network", ip: "#{OC_IP}"
node.vm.network "forwarded_port", guest: 8443, host: 8443
node.vm.provider "virtualbox" do |vb|
vb.memory = 10240
vb.cpus = 4
vb.name = "#{OC_NAME}"
end
node.vm.provision :docker
node.vm.provision :shell, inline: <<-SHELL
apt-get update
apt-get install -y curl
# openshift cluster
cd /tmp/
curl -Lso oc-cli.tgz https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
tar -xvzf oc-cli.tgz
cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/kubectl /usr/local/bin/
chmod +x /usr/local/bin/oc
chmod +x /usr/local/bin/kubectl
# Optionally add what you want:
echo "" >> /etc/hosts
echo '#{OC_PUB_IP} #{OC_DOMAIN}' >> /etc/hosts
echo "" >> /etc/hosts
# Add unsecure registry (this is a prerequisite - see the official documentation)
echo "" >> /etc/docker/daemon.json
echo '{' >> /etc/docker/daemon.json
echo ' "insecure-registries" : ["172.30.0.0/16"]' >> /etc/docker/daemon.json
echo '}' >> /etc/docker/daemon.json
echo "" >> /etc/docker/daemon.json
service docker restart
SHELL
# start the cluster
node.vm.provision "start", type: "shell" , run: "always" , inline: <<-SHELL
oc cluster up --public-hostname=#{OC_PUB_IP}
SHELL
ends
end
And run this command vagrant up
, take a ☕️ and wait some minutes.
# First application deployment (on the linux side)
If all is ok, you should be able to connect to the OpenShift server with this url: https://192.168.1.100:8443
After some warnings (about the fact that the connection isn't safe) you should get this:
You can connect with this credentials:
- user:
system
- password:
admin
This is the "welcome" page:
Click on the nodejs
icon to create a new webapplication
Click on the Next >
button
- Then you can add your application to an existing project or create a new project
- Give a name to your application (in my case it's
hey
) - Choose a Git repository (use the Git project sample: click on
Try Sample Repository
) - And finally, click on the
Create
button
After the confirmation pop-up, click on the Close
button
At, the top right corner, you can see the node
project, so, select it:
You see that the hey
application has been deployed, and the proposed url is http://hey-node.192.168.1.100.nip.io/ (opens new window), and now, the most important thing of this document is that:
If your computer refuses to resolve the nip.io
domain:
- On OSX, go to the Network Settings
- Choose your network
- Click on the
Advanced...
button - Chose the DNS panel
- add this DNS:
8.8.8.8
and click onOk
, thenApply
- On Linux,
- Edit (as
root
) this file/etc/resolv.conf
- add this line
nameserver 8.8.8.8
- save it
- Edit (as
Now you can acces to your webapp on http://hey-node.192.168.1.100.nip.io/ (opens new window):
🎉 next step (tomorrow?) deploy your own project from a GitLab repository (and with a GitLab runner)
👋 Have a nice day
Last Articles
- 🇫🇷 Type Result en Kotlin | 2020-10-31 | Kotlin
- 🇫🇷 Type Result en Kotlin | 2020-10-31 | Kotlin
- 🇬🇧 Every GitLab Page deserves a real CI/CD | 2020-07-23 | GitLab CI
- 🇫🇷 Lit-Element, commencer doucement | 2020-07-20 | WebComponent
- 🇬🇧 Build quickly and host easily your Docker images with GitLab and GitLab CI | 2020-06-02 | GitLab CI
- 🇬🇧 Deploy quickly on Clever Cloud with GitLab CI | 2020-05-31 | GitLab CI
- 🇫🇷 Borg Collective, mes jouets pour apprendre Knative | 2020-05-30 | Knative
- 🇬🇧 Borg Collective, Toys to learn Knative | 2020-05-30 | Knative
- 🇫🇷 M5Stack, une petit device IOT bien sympathique, programmable en Python | 2020-05-09 | IOT
- 🇫🇷 Knative, l'outil qui rend Kubernetes sympathique | 2020-05-02 | kubernetes