Skip to content

Instantly share code, notes, and snippets.

@sginkov
Last active September 27, 2018 20:18
Show Gist options
  • Save sginkov/ed3fe2cb78fab07dff71 to your computer and use it in GitHub Desktop.
Save sginkov/ed3fe2cb78fab07dff71 to your computer and use it in GitHub Desktop.
Chef solo usage example(Berkshelf, Vagrant)

Installation steps to use chef scripts

1. Install ruby

2. Added Gemfile with kinfe-solo

source "https://rubygems.org"
gem "knife-solo"
gem "berkshelf"

3. Install chef solo with dependencies

gem install bundler && bundle install

3. Create a new directory structure(i.e. “kitchen”) that fits with Chef's standard structure and can be used to build and store recipes

knife solo init .

3. Create Berkshelf config if it's not exist

berks init .

Script above creates file Berksfile which contains cookbook dependencies

4. Added cookbook dependencies to Berksfile

Example:

source "https://supermarket.chef.io"

metadata

cookbook "mysql"
cookbook "nginx", "~> 2.6"

5. Install cookbook dependencies

berks install

This command downloads required cookbooks and store it into cookbooks directory.

Deploy

All nodes are located into directory 'nodes'.

1. First of all you should install chef-client on taget server

knife solo prepare [user]@[node] --forward-agent

Example for staging.com:

knife solo prepare root@staging.com --forward-agent

2. You should execute the following command to run chef script for you node:

knife solo cook [user]@[node] --forward-agent

Example for staging.com:

knife solo cook root@staging.com --forward-agent

Testing chef scripts with vagrant

Vagrant helps to create virtual host on your local machine which used for emulating external virtual hosts.

Installation vagrant steps

1. Install virtualbox and vagrant

2. Install vagrant plugins

vagrant plugin install vagrant-hostsupdater
vagrant box add precise32 http://files.vagrantup.com/precise32.box
vagrant box add ubuntu-14.04 https://oss-binaries.phusionpassenger.com/vagrant/boxes/latest/ubuntu-14.04-amd64-vbox.box

4. Start vagrant

This command create local virtual hosts which described into Vagrantfile.

vagrant up
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment