Introduction to Configuration Management
Vložit
- čas přidán 29. 08. 2024
- -What is configuration management? (e.g. Puppet, Ansible, Saltstack, Chef)
-Why configuration management?
Example:
-configure a web server
-install packages
-edit config files
-restart services
-fiddle around + troubleshoot
-document 90%
-one server takes X time, two servers take 2X time -- linear
-configure a web server 2:
-keep track of shell history
-paste commands into a script
-do some basic conditional logic -- if this worked, then do this
-paste config files in
-configure a web server 3:
-make image of perfect web server
-clone + run scripts to configure stuff at deployment
-hope that things stay cool
-more scripts to manage stuff when it goes wrong
-when stuff changes, create a new base image, slowly push out to servers in batches
-pray, swear, troubleshoot, fix, repeat
-configure a web server 4:
-config management! Configure STATE, instead of PROCESS
-1 or 100 servers...all the same
-MANAGE STATE ONCE YOU HAVE DEPLOYED
-which servers are still running the old version of package xyz?
-on which servers has this config file been changed?
-did the hacker add evil stuff in the web server config? In the crontab?
-you are not flying blind after deployment anymore
1. Automation
-repeat tasks
2. Documentation
-forced to be fairly simple
-how does something work? Let's check!
-easy-to-explore abstraction of a process
3. Enforcement
-see what's changed, enforce compliance
-no more 'stragglers' -- huge problem in large deployments
What problems does this solve?
-system imaging is fine for a while, but then MANAGING those systems is tough
-automation
-variance in large deployments -- some old, some new, some vulnerable, some configured differently (auditing)
-no way to quickly see what state everyone is in
-idempotence -- most aim to be safer than scripts
-'infrastructure as code' -- makes versioning, testing, and deployment easier
For the 'small' Sysadmin?
-documentation shuffle, docs get stale
-you forget how you did stuff, since you're not deploying 10-15 servers/containers a day
-one abstraction level above shell scripts -- STATE, not PROCESS
-automate stuff (the 'large deployment' features are less important here)
-document stuff (no more awkward notes -- the Lisp ideal of "the code IS the documentation" is achieved)
Bless you Dave for this video! This is exactly what i was searching for months....
som
This was very helpful. I had trouble knowing where configuration management fits in the bigger picture.
thanks for this explanation, made me think again about difference between imperative vs declarative coding... and come to think of it those are really just different levels of "formal grammars" if that makes sense
These are such great videos. Please continue to make them!
Excellent! Thanks for the information. I look forward to playing with some of these tools.
I'm really curious about documentation and code being the same thing concept - do you think we could have it like that in some other areas other than infrastructure as well? Sounds like a great idea - LISP?
It's not easy to follow your video without presentation, it's a shame because what you say is very interesting.
sorry im new to configuration management. In what situation will companies need to deploy 1000's containers/images and is configuration management only limited to web development? thanks!
thank you for the great videos. You got me hooked on tmux. I wanted to ask what you recommended for the step before config management. What is a good software to install the OS? Thinking something like cobbler which I think is good for redhat based distros but not debian. Is there a solution that automates installing debian, fedora and dare I say it even winblows?
Do you manually install the OS and then the config management kicks in?
***** There are tools for this, but generally you'll install the OS (or OS container):1. From a base image, (if you're using some enterprisey hypervisor + management software),
2. With a base container config (if using LXC, BSD jails),
3. PXEboot (or some wrapper like cobbler),
4. Vagrant with some virtualization back-end
I haven't looked into cobbler in a while, but IIRC you can do non-RedHat distros as well now. I even see this:
www.letifer.org/2014/03/26/cobbler-and-windows/
Thanks good video. How technical does a config manager need to be?
I don't know if pure configuration management is its own job title -- from my experience this is just a skill set that's expected of modern sysadmins, devops engineers, SREs, etc. Infrastructure and configuration as code is a well-accepted standard these days, so being familiar with some config management tools is a huge plus when getting into this industry as a technical IC.
Thanks for your video, but you talk about a concept and you start by talking about ansible puppet ... pity
Hey, sorry to bother you. I sent a pm and would really appreciate the help..
Linux User Hey there, looks like this might have gotten filtered -- I'm not seeing a message from you. Can you try again?
tutoriaLinux could you email me at: onetwothreetoast@gmail.com and I will reply? Thanks bud