-
-
Save double-z/2318055 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cfengine | |
declarative | |
runs continuously | |
language is "baroque" | |
supports classes | |
large number of action sequences | |
----- | |
puppet | |
config mgmt tool | |
client/server | |
state description | |
tries to be os independent | |
resources | |
a (semi)generic piece to be configured | |
file | |
mount | |
cron | |
service | |
user | |
Package | |
tries to be as specific as possibe | |
describe the resource | |
supports dependencies | |
classes | |
a composition of resources and other classes | |
function | |
when you want a collection of resources defined based on parameters | |
templates | |
used when you need to have a file content be based on parameters | |
works well with functions | |
currently used erb (embedded ruby) | |
control structure | |
case | |
if | |
? | |
as a tool | |
takes the manifests and tries to apply them in an os dependent way | |
translation of resources and providers | |
client/server | |
puppetmasterd | |
puppetd | |
client is running constantly | |
every 30 minutes asks server for latest manifests | |
server builds manifests into catalog | |
server ships catalog to client | |
client runs catalog (and pulls only the resource it needs as it needs) | |
builtin CA for managing security | |
Server is typically CA | |
real world | |
not running every 30 minutes | |
not running in an update mode | |
run once a night as a reporting structure | |
exception (always applies sudo) | |
dev and production trees | |
held together with subversion | |
applying true config mgmt to system state | |
only apply changes when ready | |
"test driven system administration" | |
we can do updates by hand and habe puppet verify | |
similar to bcfg2 in that respect | |
---- | |
chef | |
"systems integration framework...manage your entire infrastructure...source code to describe how you want things...apply it to your servers" | |
why you need it | |
economics - do more with less | |
efficiency - the DRY idiom | |
scalability - accomodate infrastructure demands | |
how it works | |
write recipes to describe how you want things to be configured | |
recipes describe resources (packages, services, files, cron, etc) | |
recipes are easy to understand and written on top of ruby | |
chef solo | |
allows you run cookcooks in the absense of a chef server | |
grow to need a server | |
demo of cookbooks | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment