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
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...
AWS Internet of Things (IoT): The 3 Services You Need to Know
The Internet of Things (IoT) embeds technology into any physical thing to enable never-before-seen levels of connectivity. IoT is revolutionizing industries and creating many new market opportunities. Cloud services play an important role in enabling deployment of IoT solutions that min...
Which Certifications Should I Get?
As we mentioned in an earlier post, the old AWS slogan, “Cloud is the new normal” is indeed a reality today. Really, cloud has been the new normal for a while now and getting credentials has become an increasingly effective way to quickly showcase your abilities to recruiters and compan...
How to Go Serverless Like a Pro
So, no servers? Yeah, I checked and there are definitely no servers. Well...the cloud service providers do need servers to host and run the code, but we don’t have to worry about it. Which operating system to use, how and when to run the instances, the scalability, and all the arch...
AWS Security: Bastion Hosts, NAT instances and VPC Peering
Effective security requires close control over your data and resources. Bastion hosts, NAT instances, and VPC peering can help you secure your AWS infrastructure. Welcome to part four of my AWS Security overview. In part three, we looked at network security at the subnet level. This ti...
Top 13 Amazon Virtual Private Cloud (VPC) Best Practices
Amazon Virtual Private Cloud (VPC) brings a host of advantages to the table, including static private IP addresses, Elastic Network Interfaces, secure bastion host setup, DHCP options, Advanced Network Access Control, predictable internal IP ranges, VPN connectivity, movement of interna...
Big Changes to the AWS Certification Exams
With AWS re:Invent 2019 just around the corner, we can expect some early announcements to trickle through with upcoming features and services. However, AWS has just announced some big changes to their certification exams. So what’s changing and what’s new? There is a brand NEW ...
New on Cloud Academy: ITIL® 4, Microsoft 365 Tenant, Jenkins, TOGAF® 9.1, and more
At Cloud Academy, we're always striving to make improvements to our training platform. Based on your feedback, we released some new features to help make it easier for you to continue studying. These new features allow you to: Remove content from “Continue Studying” section Disc...
AWS Security Groups: Instance Level Security
Instance security requires that you fully understand AWS security groups, along with patching responsibility, key pairs, and various tenancy options. As a precursor to this post, you should have a thorough understanding of the AWS Shared Responsibility Model before moving onto discussi...
Cloud Migration Risks & Benefits
If you’re like most businesses, you already have at least one workload running in the cloud. However, that doesn’t mean that cloud migration is right for everyone. While cloud environments are generally scalable, reliable, and highly available, those won’t be the only considerations dri...