Blog

Getting started with Mender 2.1 beta on Windows

I have a Lenovo ThinkPad X1 with Windows 10 installed on it. I wanted to get started and evaluate Mender with the latest Mender 2.1 beta release, using my Raspberry Pi 3 board. The main goal with this new onboarding process (as opposed to 2.0 version) is that it will take you through installing Mender and deploying a demo application update on your existing physical device and OS in as little as 10 minutes. Mine went over by 10-15 minutes mainly because I was trying to get accustomed to running Linux on Windows for when using Mender demo on-prem version.

In order to achieve this new onboarding process, 2.1 beta utilizes the Update Module capability to do a partial update as opposed to the rootfs system update approach where you need the Mender client to be integrated as part of the disk image. This eliminates steps in flashing your memory with the pre-built disk image that contains all the partitions of the storage device and manually downloading then uploading the rootfs Mender Artifacts to the web UI. If you run Hosted Mender, you can get to deploy your first update even faster since you eliminate installing the Mender demo server.

Mender 2.1 onboarding enables you to deploy your own changes to a simple web application running on your device and make it ready to easily receive any type of update going forward! New users will get a tutorial in the Mender web GUI and one mender-demo artifact containing a mini web app when they sign up for the first time. Existing users do not get the new demo artifact as they will have to upload it manually here:

wget https://dgsbl4vditpls.cloudfront.net/mender-demo-artifact.mender

Deploy with Hosted Mender

As mentioned, Hosted Mender is the fastest way to get to your first application-based deployment. This becomes more clear later in this post when compared to the on-prem version. To get started, I downloaded Raspbian Buster for my Raspberry Pi 3 from here and then you can use any of the menthods suggested to install the OS image to your device.

Once I flashed my SD card I plugged it to the board and through the Windows Command Prompt I used SSH to access the device:

C:\Users>ssh pi@1x2.x6x.1.xx

You can check the release of Raspbian, simply reading the content of the os-release file:

pi@raspberrypi:~ $ cat /etc/os-release

One trick is Rapsbian does not have SSH enabled by default so you would have to do that manually. In my case, I created an SSH text file in the SD card in order to be able to use SSH.

Now the next step is to install the Mender client on your device so that it can talk to the Mender server (Hosted version) but the beauty of this is since we are doing an application based updates (using Mender Update Modules), we no longer require Mender client to be integrated as part of the disk image!

Login to your Hosted Mender account and follow the easy-to-follow tutorial in the Mender web GUI to install the Mender client on your device as shown below.

After this you will be guided through deploying your simple web server and web page.

Deploy with Mender On-Premise Server using Windows 10

First you need to get the Linux environment setup on Windows 10 by downloading and installing VirtualBox 6.0 and then creating a virtual machine and installing the Linux Ubuntu 18.04 LTS. These steps take about 10-15 minutes to get your Ubuntu running virtually on your laptop, essentially creating a computer within a computer and the Ubuntu OS machine acting as your on-prem server when you later install the Mender demo server on it.

Next as part the Mender demo server requirement, you will need to install Docker Engine and Docker Compose using the command lines in the Ubuntu terminal prompt.

Next, download the Mender integration environment in the working directory:

git clone -b 2.1.0b1 https://github.com/mendersoftware/integration.git integration

cd integration

And finally fire up the demo server environment with:

./demo up

Note that the demo up script starts the Mender services, adds a demo user with the username mender-demo@example.com, and assigns a random password in which you can change after you log in to the Mender web UI. The Mender UI can be found on localhost.

After you log into the UI on the ‘localhost’ you will be guided through creating your own update and deploying to your device, very similar to how it was shown above with Hosted Mender. Remember, you need to connect to your device by using SSH in your Ubuntu terminal.

Do you see how deploying with Update Modules and Hosted Mender make life easier? 1) You don’t need the Mender client to integrate as part of the disk image, 2) You don’t need the pre-built disk image that contains all the partitions of the storage device and 3) You don’t need to run your own server. With Hosted Mender, it is simply a plug-your-board-and-play approach.

It is worth mentioning that you could simplify this process by creating a Vagrant machine, a wrapper around VirtualBox to eliminate the above process. It provides a config file for Vagrant to automatically create the VM with docker, the integration environment, and everything else needed using only 1 or 2 commands entered in a command prompt window. This way you never have to look at the Ubuntu GUI and it just feels like you are working directly in your Windows environment (even though under the hood it is still using a VM)!

-ft