News for hackers. Stuff that matters.
Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by elbear on Wednesday March 13, 2019 @06:00AM (#19377208)
You get portability by using any provisioning system: Ansible, Puppet, Chef.

Although, it's not exactly the same thing, because with Docker you have everything already installed in the image. I've only used Ansible and I was never happy with its dynamic nature.

Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by viraptor on Wednesday March 13, 2019 @07:16AM (#19377599)
You don't get portability from chef and others. You get a framework where you can implement your deployment with a case for each system you want to target. Past some toy examples, it's on you to make it "portable".
Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by larrywright on Wednesday March 13, 2019 @01:09PM (#19380881)
This is 100% correct. If you go look at the Chef cookbooks for any popular piece of software, say Apache or MySQL, the code is littered with conditional logic and attributes for different Linux distributions (not even considering entirely different operating systems). Every distro has different packages as dependencies, install locations, configuration file locations, service management, etc.

Docker (all container solutions really) aren't a panacea, but they solve a very real problem.

Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by elbear on Wednesday March 13, 2019 @12:43PM (#19380518)
By portability I was referring to being able to move your application to different servers by running your provisioning system.
Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by flossyspeaker on Wednesday March 13, 2019 @11:21AM (#19379544)
What do you mean by dynamic nature? Because how I've been using it it's very much static to what I have defined in my inventory.
Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by elbear on Wednesday March 13, 2019 @12:42PM (#19380493)
I was referring to the language you write playbooks in (YAML). There are no static checks, other than a dry-run that only tests for syntax errors. Frankly, I haven't heard of any provisioning system written in a compiled language. I wonder why.
Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by mdpye on Wednesday March 13, 2019 @02:49PM (#19382115)
NixOS kind of fits the bill (it can generate complete OS images from a recipe which is IIRC statically typed and "compiled")

If it looks waaaay different to puppet, ansible and chef, there's a reason for that :) Doing provisioning "properly" means managing every file on the drive...

Re:Rebuilding My Personal Infrastructure With Alpine Linux a... by elbear on Thursday March 14, 2019 @12:31PM (#19390815)
I know about nix, but I'm referring to the language you use to describe the final image. Actually, this part is not a problem. The problem comes in the deployment part.

For example, there's no concept of `Maybe this request failed, you should handle it`. So when you run the deployment script, the request fails and the rest of your deployment process.

Defining the possibility of failure with a type system would force you to handle it in your deployment code and provide a backup solution.