4 ms·
I don't understand the correlation you're trying to make. Linux is very sophisticated but it doesn't provision itself.
by rubiquity 11y ago
I don't understand the correlation you're trying to make. Linux is very sophisticated but it doesn't provision itself.
- lisivka 11y agoLinux distro is much more complex than application, but it installation is simple, because distro is split into lot of independent packages, which are wired using package manager. Lot of naїve developers are trying to solve same problem using imperative tools or develop their own package manager instead of learning of existing, well proven solution.
- rubiquity 11y agoOh you mean running your own apt/yum mirror? I've done that in the past. There's still configuration involved. You have to configure the packages that your machines then pull. You also have to configure the mirror itself.
- lisivka 11y agoFor dependencies, use metapackages. For repository configuration, use "release" package with description of repository. Release package can be installed directly from http. In my cases, I define few variables, then I will install repository definition and main package: export NODE=2 dnf install -y http://..../staging-release.noarch.rpm dnf install -y node-backend (and few other steps in some cases, e.g. putting of host names into /etc/hosts, or formatting and partioning of hard-drives). It works fine on bare metal, vagrant, docker, aws, etc.
- aeorgnoieang 11y agoI'm pretty sure lots of developers are also using package managers, and sometimes private servers for those same package managers, but configuration management is still a separate thing that needs to be done and using tools to do it is very much a good idea.
- lisivka 11y agoI use same tools (package manager, services, scripts) for about decade. Tried to use Puppet and Ansible, but result is much more complex and it feels like I reinventing the wheel, because I need to implement things which I already have implemented in package manager, like validation, upgrade management, etc. Difference between Ansible and package manager feels like difference between procedural programming and OOP. Difference between Puppet and package manager feels like fight between two competing object oriented models.
- aeorgnoieang 11y agoFar be it from me to tell you where or how something should be implemented. If you're happy using packages then that's great! But the other two tools you mentioned using – "services, scripts" – are exactly what a lot of people find to be harder to manage than a configuration management tool. Maybe your "services" and "scripts" are really sophisticated. If true, then perhaps you've implemented your own configuration management tool. If so, maybe you could share it and other people would find it useful too.
- lisivka 11y agoYou are asking wrong questions. The reason, why I don't use configuration tools is because I do no configuration in production. One of main rules for me is to perform all installation and configuration steps in controlled development environment, then test them in staging and only then deploy verified result to production. Imagine that you are fully installed and configured everything at your new production host but in your development environment, then it powered off, deployed to production environment and powered on again and it works. It is result I want to achieve: deploy only ready to use software to production, in sealed form, so no installation, no tweaking, no anything. Like smartphone on contract. It can be achieved with docker, but docker is relatively new invention and my solution plays well with docker too. So, no, my scripts and services are not a configuration management tool.
- sergiosgc 11y agoI think you are mixing the concerns of configuration managers and package managers. They are at different abstraction points. Step one: install software and its dependencies (package manager). Step two: Have all the software services in your cluster talk to each other (configuration manager). Step three is profit.
- lisivka 11y agoNo, I am not mixing them. I just skipping step two, because it can be done automagically after step one.
- sergiosgc 11y agoIt can. Is it efficient? No. This is so obvious that I'll have to attribute your opinion to lack of experience. Try deploying a stack with a dozen different services, designed with fault tolerance and horizontal scalability in mind, where each service is clustered, without a configuration manager. Then, review your opinion.
- lisivka 11y agoI have 25 years of experience. 19 years with Linux alone. Yes, I deployed stacks with dozen of different services. Typical distro has hundreds of services.