Chef cookbooks can become hard to handle; let’s talk about Berkshelf management tool
Chef is a configuration management tool written in Ruby. With Chef, you can build servers quickly and reliably using cookbooks (which are basically recipes, that can perform tasks like installing webservers, updating SSL’s, or configuring HA proxy servers). Cookbooks themselves can be managed through a tool called Berkshelf. If you noticed our title on your way in, you’ll know that Berkshelf is going to be the subject of this post.
Until now, you might have been managing your servers with growing numbers of scripts, perhaps spread across multiple directories or even multiple machines. As the need to deliver products to market quickly and the sheer numbers of servers we’ll use to do that continue to grow, we need a consistent, reliable, and secure way to manage it all. More importantly: the solution we choose should be simple and intuitive.
More often than not, Chef will fit those needs. It is an infrastructure automation framework that simplifies server and application deployments to any physical, virtual, or cloud location, no matter the size of the infrastructure.
Since your infrastructure will be managed with code, it can be automated, tested, and reproduced with ease. Chef itself is built from many moving parts, including knife, Chef client, Chef server, cookbooks, and nodes. Here, we will talk about cookbooks and how they can be efficiently managed using Berkshelf.
Just what is Berkshelf?
You often won’t need to actually write your cookbooks from scratch, as the community has all kinds of them – often ready to use in your environment without modification – available from the Opscode supermarket. To use a cookbook, you’ll need to download it and save it on your Chef workstation. To download each external cookbook from inside Global cookbook, this is what you would have to run:
knife cookbook site download apache2
As terrific as Chef is, Berkshelf can really make a difference in the way you manage your Chef cookbooks and dependencies. Berkshelf lets you treat your cookbooks the way you treat gems in a Ruby project. When external cookbooks are used, Berkshelf doesn’t require “knife cookbook site” to install community cookbooks. All we have to do is mention the dependent cookbooks with its version number. When Chef client runs on nodes, berkshelf will automatically download and install all the dependent cookbooks from the Opscode cookbook community for us.
Berkshelf requires a bit of set up. The easy way to install Berkshelf is:
gem install berkshelf
But that’s it. Berkshelf is now included as part of the Chef Development Kit (ChefDK), which installs the best development tools built by the awesome Chef community into your workstation. The omnibus installer is used to set up the Chef development kit on a workstation. Here’s how:
- Visit http://downloads.chef.io/chef-dk and select the omnibus installer for the desired platform.
- The Chef development kit supports Mac OS X, Red Hat Enterprise Linux, Ubuntu, and Microsoft Windows.
- When the installation finishes, open a command line terminal and enter the following:
- Ensure that the Chef-DK is added to the front of your path.
- Initilize a Berksfile into your cookbook.
cd my-cookbook berks init .
- Specify your dependencies in a Berksfile in your cookbook’s root.
source "https://supermarket.chef.io" metadata cookbook "apache" cookbook "mysql", "~> 5.3"
- Once the dependencies are mentioned in a berksfile, you can install them.
Berkshelf stores every version of a cookbook that you have ever installed in ~/.berkshelf.
- Once your cookbook is ready, you can upload it with all the dependent cookbooks using the following command.
berks upload phpapp
Top 5 AWS Salary Report Findings
At the speed the cloud tech space is developing, it can be hard to keep track of everything that’s happening within the AWS ecosystem. Advances in technology prompt smarter functionality and innovative new products, which in turn give rise to new job roles that have a ripple effect on t...
New on Cloud Academy: Red Hat, Agile, OWASP Labs, Amazon SageMaker Lab, Linux Command Line Lab, SQL, Git Labs, Scrum Master, Azure Architects Lab, and Much More
Happy New Year! We hope you're ready to kick your training in overdrive in 2020 because we have a ton of new content for you. Not only do we have a bunch of new courses, hands-on labs, and lab challenges on AWS, Azure, and Google Cloud, but we also have three new courses on Red Hat, th...
Cloud Academy’s Blog Digest: Azure Best Practices, 6 Reasons You Should Get AWS Certified, Google Cloud Certification Prep, and more
Happy Holidays from Cloud Academy We hope you have a wonderful holiday season filled with family, friends, and plenty of food. Here at Cloud Academy, we are thankful for our amazing customer like you. Since this time of year can be stressful, we’re sharing a few of our latest article...
Google Cloud Platform Certification: Preparation and Prerequisites
Google Cloud Platform (GCP) has evolved from being a niche player to a serious competitor to Amazon Web Services and Microsoft Azure. In 2019, research firm Gartner placed Google in the Leaders quadrant in its Magic Quadrant for Cloud Infrastructure as a Service for the second consecuti...
New Lab Challenges: Push Your Skills to the Next Level
Build hands-on experience using real accounts on AWS, Azure, Google Cloud Platform, and more Meaningful cloud skills require more than book knowledge. Hands-on experience is required to translate knowledge into real-world results. We see this time and time again in studies about how pe...
New on Cloud Academy: AWS Solution Architect Lab Challenge, Azure Hands-on Labs, Foundation Certificate in Cyber Security, and Much More
Now that Thanksgiving is over and the craziness of Black Friday has died down, it's now time for the busiest season of the year. Whether you're a last-minute shopper or you already have your shopping done, the holidays bring so much more excitement than any other time of year. Since our...
Understanding Enterprise Cloud Migration
What is enterprise cloud migration? Cloud migration is about moving your data, applications, and even infrastructure from your on-premises computers or infrastructure to a virtual pool of on-demand, shared resources that offer compute, storage, and network services at scale. Why d...
6 Reasons Why You Should Get an AWS Certification This Year
In the past decade, the rise of cloud computing has been undeniable. Businesses of all sizes are moving their infrastructure and applications to the cloud. This is partly because the cloud allows businesses and their employees to access important information from just about anywhere. ...
AWS Regions and Availability Zones: The Simplest Explanation You Will Ever Find Around
The basics of AWS Regions and Availability Zones We’re going to treat this article as a sort of AWS 101 — it’ll be a quick primer on AWS Regions and Availability Zones that will be useful for understanding the basics of how AWS infrastructure is organized. We’ll define each section,...
Application Load Balancer vs. Classic Load Balancer
What is an Elastic Load Balancer? This post covers basics of what an Elastic Load Balancer is, and two of its examples: Application Load Balancers and Classic Load Balancers. For additional information — including a comparison that explains Network Load Balancers — check out our post o...
Advantages and Disadvantages of Microservices Architecture
What are microservices? Let's start our discussion by setting a foundation of what microservices are. Microservices are a way of breaking large software projects into loosely coupled modules, which communicate with each other through simple Application Programming Interfaces (APIs). ...
Kubernetes Services: AWS vs. Azure vs. Google Cloud
Kubernetes is a popular open-source container orchestration platform that allows us to deploy and manage multi-container applications at scale. Businesses are rapidly adopting this revolutionary technology to modernize their applications. Cloud service providers — such as Amazon Web Ser...