How can I automate the build and deployment process from Windows server as a controlling machine to multiple Linux (Raspbian OS) as node machine. Is there any tool which takes care of cross platform deployment, if yes then suggest ?
Related
I have three small Springboot Microservices and a plan. I have to say that I develop in Eclipse under Windows10 Home.
My plan is to build a Docker container of each one and run it in a ubuntu VM on my Windows pc, so that I can use the containers in a real linux server in the future.
Does this work? What do I need? Is there a Docker for Windows that builds container for linux? How do I deploy the container to the vm? Do I have to push it to dockerhub first? Can I access the container from a Windows Browser by some kind of port forwarding?
Thank you for your help....every hint is welcome.
You can use Docker for Desktop Windows with WSL 2 running a Ubuntu distro. It's the best setup to develop Docker for Linux, because of the incredible interoperability:
Both OS run side by side, sharing the same Docker environment (images, containers, compose sets, etc). You can manage, configure using Docker tools on either OS, switching back and forth easily
Both OS share the same file system, so you can develop config files with your favorite Windows editor which are equally accessible from Linux
Both OS share the same network, so you can access services, API from one to another via port forwarding (using browser in Windows and Curl in Linux to access same resources)
The close interoperability means no need to deploy across systems, since you have only one shared environment.
Since you develop in one place locally, no need to distribute images to remote repositories
As a bonus, Docker for Desktop ships with a fully working single cluster version of Kubernetes providing the same shared environment
Go for it then, unless your machine has limitations against WSL.
I understand that Docker runs on Linux kernel
Lets say, I deploy an application (SORRY!! I can't disclose the application due to confidentiality reasons) on a CentOS Docker image. The application is known to be compatible with both Windows and Linux.
So now, if I want to run some some program/script on that deployed image but the client that I am using is Windows. Here are two questions that I have,
Is it even possible to use Windows machine to execute the programs/scripts in the remote Docker image?
If answer to question 1 is yes, then how are the system calls in Windows mapped to the equivalent system calls in the Linux environment of Docker.
Is it even possible to use Windows machine to execute the programs/scripts in the remote Docker image?
No: you would need to run the docker image in a Linux VM running on your Windows.
The system calls would be to the VM Linux kernel.
A docker image for Windows (server 2016) would be built specifically for Windows.
I have a web crawler which I want to execute every 5 min. As other members adviced here, I will need for that a VPS hosting and running cron jobs.
However, I am not too good with configuring things and not too friendly with Linux. Therefore, I have decided to go for a windows VPS. As I found on the net, windows has a "scheduler" , which is equivalent on cron jobs on Linux.
My Q is:
What kind of Windows should my VPS have so that the configuration will be easy and not require too much admin-skills?
Thanks
Task scheduler is a native part of Windows 2008 or Windows 2012 Operating system. When you navigate to Start Menu, Go to Administrative Tools and you will see Task Scheduler over there. So, you just need to buy a Windows VPS having Windows server 2008 or Windows Server 2012 Operating system. You just need basic VPS management skills to set task scheduler and other tasks. Here is a guide you can refer to schedule a task in Windows VPS:
https://manage.accuwebhosting.com/knowledgebase/2166/How-to-Schedule-a-Task-in-Windows-Server-2008-VPS.html
I want to be able to distribute a Linux running inside my application. The reason is that I need to add software functionality which is most easily added inside a Linux container and distributed with the application.
Is there any way to run a VM inside a C/C++ application on Windows, OSX, Linux?
VirtualBox has an API for creating/running VMs. The program Vagrant uses this to give developers a simple cross-platform way to develop. You can run vagrant up from Windows, Linux or Windows, and it does the same thing.
You can also script adding ports to your VM, so your C++ program could say "VirtualBox, boot me this image", then just connect to a TCP port to talk to the "Linux program". But debugging problems will be hard.
But if your goal is to sell a Linux program to non-Linux desktop people, it's probably best for you and your sanity to bite the bullet and port it to Windows/Mac. (Or go Cloud and sell it as a service.)
Two frameworks come to mind:
User mode Linux runs the Linux kernel as an application. This give you ultimate control over launching and managing the virtual machine from within a Linux application.
libvirt provides a toolkit for programmatically managing all manner of virtual machines.
These may both requires a Linux host. For other host operating systems, it may be necessary to manage the virtual machine manually -- or using ad hoc scripting.
QEMU can run a VM and it can be compiled on Windows and Linux and OSX. http://wiki.qemu.org/Main_Page
QEMU can be compiled as it is written in C++.
So in theory, QEMU could be embedded in a C++ program and used to run a Linux VM.
An example QEMU running Puppy Linux http://www.erikveen.dds.nl/qemupuppy/
I want to develop a web application which will be able to run the linux services at remote machine. So what technology i must use and what are the steps i need to perform.
don't develop one, use webmin instead