Configuration Management Tool

Repo: How to setup Chef Repository


As discussed in 
It is recommended to placed in Git of any of the VCS your cookbooks etc.

A Chef repository contains several directories. Each directory in the StarterKit contains a README file that describes the directory’s purpose, and how to use it for managing your systems with Chef. There are two ways to get cookbooks installed on your Chef server. Either by using the,
– knife commands, or
– Berkshelf commands. 

Create a directory on your local PC for storing cookbooks similar to the Chef-repo

  • Create a directory on yourlocal computer for storing cookbooks, such as chef-repo. After you addcookbooks, roles, and other files to this repository, we recommend that youupload or store it in a secure, versioned system, such as AWS CodeCommit, Git,or Amazon S3.
  • In the chef-repo directory, create the following three directories, as shown in the Starter Kit:
    1. cookbooks/ – Stores cookbooks that you download or create.
    2. roles/ – Stores rolesin .rb or .json formats.
    3. environments/ – Stores environments in .rb or .json formats

Use-Case 1
However, Use Berkshelf to get Cookbooks from the Chef Supermarket:

Berkshelf is a tool for managing cookbooks and their dependencies. It downloads a specified cookbook into your local storage, which is called the Berkshelf. Moreover, You can specify which cookbooks and versions to use with your Chef server and upload them.

First: Let’s try this very basic example.
Step 1: Navigate to Chef supermarket and search for Google Chrome and Firefox.

Furthermore, locate the Berksfile as shown below and add the Firefox and Google Chrome codebooks as shown below. This ensures the cookbooks are downloaded and stored locally.

Locate the path where you have the starter kit downloaded to, mine is 


Additionally, Let’s modify the Berksfile and add the cookbooks for Firefox and chrome gotten from the Chef Supermarket.


Step 2: Download and install the cookbooks on your local Computer
– Launch the Chef Dk Client (PowerShell)

Nevertheless, Navigate to the Chef local Repository from the Chef Dk terminal otherwise this will not work if you are in a different directory. Therefore, See the image below and run the command. See screenshoot below for the Repo content.

Step 3: Upload this cookbook to Chef Server

Consequently, This is different from how it works on Linux than on Windows.
See link:

Nonetheless, For Windows, Ensure the Execution Policy in PowerShell is set to RemoteSigned. Similarly, The execution policy ensures you can load configuration files and determine which script, if any, must be digitally signed. See the image below on how to set the execution policy to RemoteSigned.


This simply restricts us from running unsigned PowerShell scripts downloaded from the Internet.

Run berksinstall

Otherwise, you wouldn’t be able to upload your cookbooks. Moreover, Verify if this is installed by running the command below in the console.

berks –version

Next run the command below to add the SSL Cert file.


However, Then run berks upload to upload to the Chef Server

'berks upload'

Furthermore, remove the SSL Cert File

Remove-Item Env:SSL_CERT_FILE

To verify that this worked, simply run the command “knife cookbook list” as shown below

Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x