Hacker News new | past | comments | ask | show | jobs | submit login
Hands on way to learn to deploy applications on bare metal Virtual Machine?
4 points by shivajikobardan 6 months ago | hide | past | favorite | 7 comments
I don't want to use docker or kubernetes. I just want to deploy applications on VM using Linux OS.

What kind of applications can I deploy? And can I deploy stuffs without having a deployment guide about it?

My research has led me here:

- awesome selfhosted applications deploy

- deploy varieties of servers in Linux like email,dns,..... just for learning purpose.

- learn ansible




Hey, I had a post about this a while back: https://hiandrewquinn.github.io/til-site/posts/the-unreasona...

Basically - use Vagrant, to spin up clean, disposable VMs. Use those disposable VMs to try, try, try again at getting whatever you want to work. Finally, write up a tutorial that starts with the Vagrant spin-up and takes you through the steps, as accurately and quickly as possible.

I have a few tutorials where I use this technique for different little things. The most recent one is https://andrew-quinn.me/reposurgeon.


Bare metal virtual machines? Do you mean a virtual machine on bare metal? In which case, it's just a vm - all VMs on some level live on bare metal.

You're on the right track with Ansible - I'd suggest just buying a raspberry pi and deploying whatever you want to it via ansible over your home network. Once you're comfortable with all the basics, spin up a vm on the pi and then deploy to that. You could then even try deploying the whole VM itself as an image! Then try to deploy the same stack to a cloud hosted machine. Even If you don't want to run cloud systems, it'll allow you to deploy to a machine outside your network and you'll get exposure to how that works.

Just start small and build up.


Yeah I mean virtual machines. Thank you!


1. Learn about system administration (users, processes, permissions, networking, shell and os utilities)

2. Learn about services management (probably systemd, but there are others like openRC and Runit)

3. Follow the application instructions to install

Once you’ve done a few, you’d probably want to automate provisioning, discovery, resources, and logging, the whole infrastructure orchestration thing. That’s where kubernetes comes in, but the complexity threshold for it is high.


Most linux distributions include a package manager. The simplest way to install applications is to use the package manager.

For applications without a package manager, they usually have some way to install them. Traditionally that's untar; ./configure; make; make install

Do things by hand (write down your steps) and then decide if you need a tool for it.


You probably need to learn the configuration basics of some http server, because you will likely want to have a reverse proxy. I think nginx is a safe bet. I have heard positive opinions about Caddy from coworkers as well.


There's a book I read called Deployment From Scratch, it's pretty good.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: