Setting up a Chef workstation with ChefDK

*This is assuming you are running on CentOS or some other RHEL platform

Download the Chef-DK package…
Go to:
Install the package…

sudo rpm -Uvh ChefDK.....rpm

Once its installed check it and make sure the install was successful…

sudo chef verify


Set System Ruby


which ruby

You might see something like this: ~/.rvm/rubies/ruby-2.1.1/bin/ruby
If you want to use the version of ruby that came with ChefDK do the following…assuming you are using BASH…

echo 'eval "$(chef shell-init bash)"' >> ~/.bash_profile


source ~/.bash_profile


which ruby

Install Git if you dont already have it…

sudo yum git install


Setting up the chef-repo

You can do this two ways….download the starter kit from your Chef server OR manually. In this case we will do this manually because I already happen to have a hosted Chef account and am also using my keys on other instances and dont want to have to set them all up again. So…go to your home directory and do:

git clone git://

Then go to ~/chef-repo/ and do:

mkdir .chef

Three files will need to be placed in this directory:
– knife.rb
– ORGANIZATION-validator.pem
– USER.pem

In order to not upload your .chef directory which will house your certs do this:

echo '.chef' >> ~/chef-repo/.gitignore

Now you need to get the 3 files that go into your .chef directory.
Log onto your Chef server. For me this is located at:

Once logged in click ADMINISTRATION at the top then the name of your organization.

Knife.rb – Click “Generate Knife Config” and download the file. Place it in your .chef directory
ORGANIZATION-validator.pem – can be downloaded by clicking “Reset Validation Key” in the Administration page.
USER.pem – can be downloaded by clicking Users on the left hand side and then choosing your username, and finally clicking “Reset Key


Add Ruby to your Path


echo 'export PATH="/opt/chefdk/embedded/bin:$PATH"' >> ~/.configuration_file && source ~/.configuration_file

Now lets verify that we are all set…

cd ~/chef-repo


knife client list

You should see a list of your clients which will only be the one you are on for right now.

That’s it. Let me know if you have questions or run into issues or see mistakes.

Allow myself to introduce…myself

Hey im Seth Floyd. Im starting this blog as both a place to store notes and to give an example and display of what im capable of in the world of system administration and DevOps.


A little background first…
I went to school to be a chef and restaurant manager. I never took a computer class my entire time there. One roommate I had was a Computer Science major and he had this computer in our apartment that he used for writing papers. he was older than me and I knew he would be leaving soon so I needed to get my own computer for writing my own papers so I didn’t have to live in the library. Once I talked my parents into getting me one I started playing around with it. The OS was Windows 3.1 and it was fully loaded with AOL and Word Perfect.
Step forward a few years and I had finished school and purchased my own computer. I played games and messed around with different graphics programs and figured out how to upgrade to Windows 95 and then to Windows 98 all on my own. From here I progressed when I got a copy of Windows NT and shortly after I took my first IT job. I worked for a company that handled the software for hotels and this included all of the accounting and reservations and other misc software needs like food and beverage. this was my first taste of UNIX….SCO Unix. This was 1999.

At this job I was clueless and my boss let me know that every day. he set my .profile to read, “When Seth gets a clue he will know how to change this to say something else.”. I saw that every single time I logged in and it finally started bugging me. he tried to give me an another guy a crash course in UNIX but we had no clue what he was talking about. I actually didn’t grasp the concept that there were other OS’s out there and UNIX was one of them. “Cat” blew my mind.

Flash forward another year and I was working at Mindspring as a dial-up tech and heard some guys talking about this thing called Redhat Linux. I figured it might be something I needed to know so I got a O’reilly book called “Redhat Linux Administration”. I clearly remember reading through one chapter and the light came on…”That’s what I was doing at that job before!”. Once I realized that then the pieces really started falling together.

I stayed there a few more years and didn’t really have any idea of what I wanted to do. About that time my department was laid off so I took a break from IT for a few years but still dabled at home with different linux distros. About 5 years and 2 kids later I again took an IT job with a consulting company who specialized in Apple computers. I got ramped up pretty quickly by reading a manual and pouring through some of the more popular Mac forums. I already was familiar with Free BSD from my days at Mindspring so it was interesting to me to have a OS that was easy to move around in and also be able to administer using linux commands and tools.

After a brief stint here I joined up with another company. I started out in tech support and worked my way up to a Sr tech support position and stayed there for 3 years. During that time I worked on all things database related. We are an Oracle shop and I was sure that was what I wanted to do. I even went as far as getting my certification in Oracle database as a OCA.

I eventually moved to the configuration management team. the intent by the director of that department was for me to learn the back-end environments and then transition over to the non-production dba team. That never happened. The director was let go, his role was eliminated and the non-prod dba team was rolled into the production team. Through a turn of events I was basically shut out of any chance of a dba role – junior or otherwise. We silently declared that we will only hire from outside the company for DBA roles and they will all be for Sr DBAs as well.

Dream. Crushed.

But at that same time there was a flicker of a flame of another fire starting to grow a little more and more. I was getting the hang of this CM gig. I was setting up jobs in Jenkins, writing little scripts to automate things here and there using Bash, feeling more comfortable with the linux OS – moving file around, installing and maintaining applications, and even administering some less important servers and systems. Some of my other duties were/are getting up at 4A.M. to make sure our nightly deployments to trunk have completed successfully, administering our Confluence instance, and writing a whole lot of documentation.

We eventually started using this thing called “Chef” in our deployments. I kept hearing about “databags” and “nodes” and “recipes” and of course got curious. I started reading up on this and trying to learn it using I had so much trouble getting everything installed correctly I kind of just put it to the side and decided I wasnt ready for that yet. In looking for more info on Chef I kept coming across this other thing called “Puppet”. Its a similar tool to Chef and can be used for the same thing. We dont use it here at the office but I wished we did. It turns out its a lot easier to learn and seems to make more sense to me. It also seems to have a bigger and more active community so its easier to find tutorials and help with things.

So this all brings me to the reason and purpose of this blog…

I want to “do” DevOps. I tend to lean more toward the Ops part of this world but thats mainly because I hate coding. My attention span is too short to just sit down and type out code for something. Part of my frustration with coding comes from the lack of properly learning the concepts of programming and stuff that I would have gotten from classes in college. I have started working on getting my RHCE and I think after that I will pursue a certification in Puppet. This blog will be a place to store my notes, ask for help, help others, and to demonstrate what I can do even though I might not have “professional working experience” in certain subjects.

Stay tuned…this might be interesting…or a train wreck.