Learning CHEF
(This is solely for my own understanding, so I hope any reader doesn't mind the lack of depth.)
Just getting started on CHEF (or any type of tech journey right now), I wanted to keep a journal of sorts. First, to maintain a record of where I stopped and what needs to be done next. Secondly, to have a digital notebook of sorts.
Architecture:
Chef Server – considered the center of all operations that manages and provides configuration data on all Chef components. (the intermediary, where the cookbooks come from the workstation, and the transfer of recipes and cross-check with the nodes happens)
Chef Work Station – these are PCs or virtual servers where the Chef configuration code is created, tested, and revised. (where our cookbooks are made, with recipes inside)
Chef Nodes – these are the servers to which Chef forwards its changes, basically a number of machines that need the advantages of automation. Nodes may be virtual servers, storage, containers, and network devices that Chef can manage. Every node that Chef manages is called a Chef client. (basically the place where we use the cookbooks' recipes)
Some integrated things:
Knife: It's the command line tool that moves the cookbooks and recipes from one architecture to another (workstation to server to nodes).
Ohai: Ohai is featured inside the Chef node, and Ohai checks the current state of the system. It communicates with the Chef-client and compares with the current system. If the current system is not up to date, it asks the client server to fetch the new cookbook.
Chef-Client: The intermediary between Knife and Ohai, between server and node.
Other terms:
Recipe: where the actual code for infrastructure is written.
Cookbook: where the recipes are stored.
Chef-Supermarket: where you get the custom code.
Idempotency: doesn't allow redundancy of data.
Bootstrap: the process of loading from the server to the nodes.
