- Mastering Chef
- Mayank Joshi
- 392字
- 2021-07-16 14:02:22
Different modes of running Chef
Chef can be executed under different modes. It's generally set up in a client-server fashion. However, if you were to just bootstrap your machine using Chef code, you don't need to worry about setting up a Chef server. Chef also provides a way of running as a standalone executable. If you are a developer writing a new piece of infrastructure code and want to test it, you can even run it in an IRB-like shell.
The most used mode of running Chef is the client-server model. In this model, we've a Chef server and an agent called chef-client that runs on machine(s) that need to be set up. The Chef client communicates with a chef-server and bootstraps the machine appropriately depending upon certain parameters, which we'll learn about shortly.
In a client-server architecture, the Chef ecosystem is comprised of a chef-server, which in turn is a name given to a set of services running on an instance (chef-server-web-ui, chef-solr, chef-expander, chef-core-api, and so on) and chef-client, which is an agent running on machines.
The chef-solo is the tool to be used if you just want to provision an instance using Chef. With chef-solo, we can do everything except for using the search functionality or accessing remote data bags that the chef-server provides. The chef-solo tool is expected to be deprecated in the near future and chef-zero is the expected way to run the code locally.
Shef is more like a debugging tool that allows you to set breakpoints within a recipe. It runs as an IRB session. It provides support for interactive debugging too.
By default, chef-shell loads in a standalone mode. However, it can also run as a chef-client and be used to verify the functionality of a Chef run. Set up chef-shell.rb
with the same settings as those in knife.rb
and run with the –z
option:
$ chef-shell –z
We'll cover more about using Shef for debugging purposes later in this book.
The Chef server can either be set up privately, or you can choose a managed hosting service provided by Opscode. Here again, you've a choice of using an open source Chef or Enterprise Chef.
Enterprise Chef adds the following additional features on top of an open source Chef:
- Enhanced management console
- Centralized monitoring and reporting
- Role-based access control
- Push client runs
- AngularJS Testing Cookbook
- Apache Spark 2.x Machine Learning Cookbook
- 無代碼編程:用云表搭建企業數字化管理平臺
- Magento 2 Theme Design(Second Edition)
- 名師講壇:Spring實戰開發(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- JavaScript 程序設計案例教程
- Swift細致入門與最佳實踐
- Learning Laravel's Eloquent
- C語言開發基礎教程(Dev-C++)(第2版)
- Learning AngularJS for .NET Developers
- 基于SpringBoot實現:Java分布式中間件開發入門與實戰
- C++ Fundamentals
- 大學計算機基礎實驗指導
- Python自然語言理解:自然語言理解系統開發與應用實戰
- Offer來了:Java面試核心知識點精講(框架篇)