{"id":410,"date":"2014-10-03T11:02:00","date_gmt":"2014-10-03T11:02:00","guid":{"rendered":""},"modified":"2019-09-19T17:27:03","modified_gmt":"2019-09-19T11:57:03","slug":"chef-solo-an-introduction","status":"publish","type":"post","link":"https:\/\/opstree.com\/blog\/2014\/10\/03\/chef-solo-an-introduction\/","title":{"rendered":"Chef Solo an Introduction"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align:left;\"><a href=\"https:\/\/www.blogger.com\/null\" name=\"4117253436415503389\" target=\"_blank\" rel=\"noopener\"><\/a><\/p>\n<div class=\"post-header\"><\/div>\n<h3 style=\"text-align:left;\"><span style=\"font-weight:normal;\"><span id=\"docs-internal-guid-e1094546-d170-4aaa-ac30-244b9361d2bc\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:24px;font-style:normal;font-variant:normal;text-decoration:underline;vertical-align:baseline;\">Introduction<\/span><\/span><\/h3>\n<h2 style=\"line-height:1.15;margin-bottom:4pt;margin-top:18pt;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Chef Solo is simple way to begin working with Chef. It is an open source<\/span> <span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">version of the chef-client that allows using cookbooks with nodes without requiring access to a server. Chef Solo runs locally and requires that a cookbook (and any of its dependencies) be on the same physical disk as the node. It is a limited-functionality version of the chef-client and does not support the following:<\/span><\/h2>\n<ul style=\"text-align:left;\">\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Node data storage<\/span><\/li>\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> Search indexes<\/span><\/span><\/li>\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Centralized distribution of cookbooks<\/span><\/span><\/span><\/li>\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1cbe2c33-b118-4e79-7fc0-35708892bdff\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> A centralized API that interacts with and integrates infrastructure components<\/span><\/span><\/span><\/span><\/li>\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1cbe2c33-b118-4e79-7fc0-35708892bdff\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-621bc34e-b118-bccd-c7cf-35de197d1d81\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Authentication or authorization<\/span><\/span><\/span><\/span><\/span><\/li>\n<li><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1cbe2c33-b118-4e79-7fc0-35708892bdff\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-621bc34e-b118-bccd-c7cf-35de197d1d81\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1ea90c08-b118-f3bf-2020-868f729b439e\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Persistent attributes<\/span><\/span><\/span><\/span><\/span><\/span><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1cbe2c33-b118-4e79-7fc0-35708892bdff\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-621bc34e-b118-bccd-c7cf-35de197d1d81\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1ea90c08-b118-f3bf-2020-868f729b439e\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;<\/span><\/span><\/span><\/span><\/span><\/span><span id=\"docs-internal-guid-8e1b2a88-b117-a5dc-f06a-1c0f81e180b2\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1298a584-b117-e5e9-7412-bc926711df36\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-5dd4d2b5-b118-1598-0c65-e66f625a6a29\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1cbe2c33-b118-4e79-7fc0-35708892bdff\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-621bc34e-b118-bccd-c7cf-35de197d1d81\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-1ea90c08-b118-f3bf-2020-868f729b439e\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><\/span><\/span><\/span><\/span><\/span><\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;<\/span><\/li>\n<\/ul>\n<p><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><u><span id=\"docs-internal-guid-64107d34-b11c-de32-bbf3-099b01c4e3b5\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:17px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:none;vertical-align:baseline;\">Installing chef-client<\/span><\/u><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;<\/span> (Pre-requisite : curl )<\/span><br \/>\n<span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Login to your box and run the following command to install the chef. Make sure that curl program is available on your box. <\/span><\/span><\/p>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> curl -L https:\/\/www.opscode.com\/chef\/install.sh | bash  \n<\/code><\/pre>\n<div class=\"separator\" style=\"clear:both;text-align:center;\"><span id=\"docs-internal-guid-401f639d-d178-6976-ac0d-06e84c3aa19a\" style=\"background-color:transparent;clear:left;color:black;float:left;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;margin-bottom:1em;margin-right:1em;text-decoration:none;vertical-align:baseline;\"><img loading=\"lazy\" decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh3.googleusercontent.com\/BvcY8R_9r9zwR21dFLGrs5Wmkl0wMtoEpPwtCfJ9bsCuqTheUUQVVg7CN-23uu2_ouJj2CBg8rm88zJa7CcLK1szc1EkcXlLft0UyLbEnhIDzdoRL_IShpPS0zrA5ouEYA\" alt=\"cropinstall.jpg\" width=\"550\" height=\"89\"><br \/>\n<span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">To check if the installation was successful check the version of the installed chef-solo by:<\/span><\/span><\/div>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> chef-solo -v  \n<\/code><\/pre>\n<p><a name=\"more\"><\/a><\/p>\n<p><span id=\"docs-internal-guid-401f639d-d178-6976-ac0d-06e84c3aa19a\" style=\"background-color:transparent;clear:left;color:black;float:left;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;margin-bottom:1em;margin-right:1em;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-b143-1a09-2292-a19b5032e1d4\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-d183-1e90-691c-354c7133395d\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh3.googleusercontent.com\/Zn5wg4zLUzdcYF52Kf_z-M9piqH0294sORFbLgw9l2bnlDIsq7-H-2sOuUkwDBZH4ZbhqG9Cm9GntLcuFOCnhSXhS-UmscXpfg2Uz13PQvPvD3fMm9KrkXoOTgZIy-a7TQ\" alt=\"version.jpg\" width=\"135%;\" height=\"45\"><\/span>&nbsp;<\/span><\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; <\/span><\/p>\n<div class=\"separator\" style=\"clear:both;text-align:left;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><u><span id=\"docs-internal-guid-401f639d-b145-a32a-8abb-8714d9ffbf0f\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:none;vertical-align:baseline;\">Making Chef Repository<\/span><\/u><span id=\"docs-internal-guid-401f639d-b145-a32a-8abb-8714d9ffbf0f\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:none;vertical-align:baseline;\"> <\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Next step is to setup a file structure that will help organize various Chef <\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">files. Opscode, the makers of Chef provide one sample structure. They call it simply the Chef Repository.<\/span><\/p>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> wget http:\/\/github.com\/opscode\/chef-repo\/tarball\/master  \n<\/code><\/pre>\n<\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span id=\"docs-internal-guid-401f639d-d187-5a34-b0e8-224420a3c903\" style=\"background-color:transparent;clear:left;color:black;float:left;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;margin-bottom:1em;margin-right:1em;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh6.googleusercontent.com\/r61m2mFaTiydq9UXDzYNMOI1pg0SsdLv0yBvGvsRMvH1-AQDPf-yxFAPdzR85kS8z0fF6XYInJA6w02Ptw4gzW4OqLuZRgU2qNCZe2bWrF5qdeRMhR1OMRqPeJhQsjWvDQ\" alt=\"structure.jpg\" width=\"99%;\" height=\"87px;\"><\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;<\/span><\/div>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> tar zxf master&nbsp;<\/code><\/pre>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> mv opscode-chef-repo-**** chef-repo\/ <\/code><\/pre>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-d18b-d5a9-779a-8ac2de5af58d\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh4.googleusercontent.com\/nEMb1mIeIBdePnR-1GL6z3D90lS0PRwf8gcryjn9l0uV7lLWF_7DkcMPntnZehFtQY7op27OdabEnxl7DW6gYkPzOOY4Q8M3Dc-fAzSjWC7ZtS_LTHu5mIdw_hyg5cnAaw\" alt=\"structure1.jpg\" width=\"99%;\" height=\"127px;\"><\/span> <\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Assign cookbook&#8217;s path to the newly created cookbook directory inside the Chef Repository which will hold the cookbook<\/span><\/p>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\">  mkdir .chef  \n  echo \"cookbook_path ['\/root\/chef-repo\/cookbooks' ]\" &gt; .chef\/knife.rb   \n  knife cookbook site download apt  \n<\/code><\/pre>\n<\/div>\n<div class=\"separator\" style=\"clear:both;text-align:center;\"><a style=\"clear:left;float:left;margin-bottom:1em;margin-right:1em;\" href=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2014\/10\/15413-path.png\"><img decoding=\"async\" src=\"https:\/\/opstree.com\/blog\/\/wp-content\/uploads\/2014\/10\/15413-path.png\" width=\"99%\" height=\"134\" border=\"0\"><\/a><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-b1b2-34a1-a0d2-61ca0cceb167\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">.Chef folder<\/span><\/span><\/p>\n<div id=\"docs-internal-guid-401f639d-b1b2-a937-3d95-87047f061178\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;text-align:justify;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">For Chef Solo this directory generally contains only knife.rb file. A&nbsp;knife.rb file is used to specify the chef-repo-specific configuration details for Knife. This file is the default configuration file and is loaded every time this executable is run. The configuration file is located at: ~\/.chef\/knife.rb. If a<\/span><\/div>\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;text-align:justify;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">knife.rb file is present in the . chef\/knife.rb directory in the chef-repo, the settings contained within that file will override the default configuration settings. Sample content of knife.rb file can be:<\/span><\/div>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> cookbook_path [ '\/root\/chef-repo\/cookbooks' ]  \n role_path [ '\/root\/chef-repo\/roles' ]  \n environment_path [ ' \/root\/chef-repo\/environments ' ]  \n data_bag_path [ ' \/root\/chef-repo\/data_bags ' ]  \n<\/code><\/pre>\n<\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;text-align:left;\">\n<div class=\"separator\" style=\"clear:both;text-align:left;\"><span id=\"docs-internal-guid-401f639d-b1dd-b031-4d8b-73d4d2cf0b76\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">Getting Started with Chef Solo<\/span><\/div>\n<div class=\"separator\" style=\"clear:both;text-align:left;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b1de-0fc6-4249-373e75ef2740\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Before we&#8217;re able to run Chef Solo on our servers, we will need to add two files to our local Chef repository: solo.rb and node.json.<\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b1df-0607-fce4-bc06a055b6ba\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">The solo.rb file tells Chef Solo where to find the cookbooks, roles, and data bags.<\/span><\/div>\n<p><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">The node.json file sets the run list (and any other node-specific attributes if required).<\/span><\/p>\n<div style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><\/div>\n<ol id=\"docs-internal-guid-401f639d-b1eb-3fa1-8967-ad89294c3045\" style=\"margin-bottom:0;margin-top:0;\"><\/ol>\n<div style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;Create a solo.rb file inside our Chef repository with the following contents:<\/span><\/div>\n<ol id=\"docs-internal-guid-401f639d-b1eb-3fa1-8967-ad89294c3045\" style=\"margin-bottom:0;margin-top:0;\"><\/ol>\n<pre style=\"background:none repeat scroll 0 0 #f0f0f0;border:1px dashed #cccccc;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> current_dir = File.expand_path(File.dirname(__FILE__))  \n file_cache_path \"#{current_dir}\"  \n cookbook_path \"#{current_dir}\/cookbooks\"  \n role_path \"#{current_dir}\/roles\"  \n data_bag_path \"#{current_dir}\/data_bags\"  \n<\/code><\/pre>\n<div style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Create a file called node.json inside your Chef repository with the following contents:<\/span><\/div>\n<pre style=\"background:none repeat scroll 0 0 #f0f0f0;border:1px dashed #cccccc;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> {  \n      \"run_list\": [ \"recipe[]\" ]  \n }  \n<\/code><\/pre>\n<div style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<\/span><br \/>\n<span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><br \/>\n<\/span><\/div>\n<\/div>\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> <b>Example:-&nbsp;<\/b><\/span><br \/>\n<span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">In this example i am going to install apt cookbook and the recipe which i am going to use is apt and here is my solo.rb and node.json files looks like<\/span><\/div>\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-d194-f9ac-7430-32e7eebc7e78\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"-webkit-transform:rotate(0.00rad);border:none;transform:rotate(0.00rad);\" src=\"https:\/\/lh3.googleusercontent.com\/RZk1F_D098575tQSD_lRCe9vdNmytqHXViN8e4FC42RRdkyH0Wnx3jHRLy2r7HM3n9aoasOAIJUd7HAat9VF4wSndHCSpqwfKP4NIHryGGztGXdZ9cFht9UoxQv8_kTDXA\" alt=\"solo1.jpg\" width=\"99%;\" height=\"120px;\"><\/span> <\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-d195-c4f6-66b2-b4efd324b3ae\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">Our first Chef run<\/span><span id=\"docs-internal-guid-401f639d-d195-c4f6-66b2-b4efd324b3ae\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">&nbsp;<\/span><span id=\"docs-internal-guid-401f639d-d195-c4f6-66b2-b4efd324b3ae\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">&nbsp;<\/span><\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"><span id=\"docs-internal-guid-401f639d-d195-c4f6-66b2-b4efd324b3ae\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:xx-small;font-style:normal;font-variant:normal;vertical-align:baseline;\">Goto chef-repo folder and execute following command<\/span><\/span><\/p>\n<pre style=\"background-image:url('http:\/\/2.bp.blogspot.com\/_z5ltvMQPaa8\/SjJXr_U2YBI\/AAAAAAAAAAM\/46OqEP32CJ8\/s320\/codebg.gif');background:#f0f0f0;border:1px dashed #CCCCCC;color:black;font-family:arial;font-size:12px;height:auto;line-height:20px;overflow:auto;padding:0;text-align:left;width:99%;\"><code style=\"color:black;word-wrap:normal;\"> chef-solo -c solo.rb -j node.json  <\/code><\/pre>\n<\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span id=\"docs-internal-guid-401f639d-d196-072b-6078-f790dad223ec\" style=\"background-color:transparent;clear:left;color:black;float:left;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;margin-bottom:1em;margin-left:1em;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh3.googleusercontent.com\/7DnK_AbUINCiyyXi8RtcBAoHEuONTvrCe-wBNggD6VM1wNSwBtSrdsXugt-GGoWZD7lxJMTs-NQqNa6XE7cMI-4zc4b09ABoAvM5GB0EhFRS9gYxsHPuFKZcWXR3YivYug\" alt=\"run1.jpg\" width=\"99%;\" height=\"85px;\"><\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:.5;margin-bottom:0;margin-top:0;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:.5;margin-bottom:0;margin-top:0;\"><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:.5;margin-bottom:0;margin-top:0;\"><u><span id=\"docs-internal-guid-401f639d-d18c-6076-4114-4128830418cf\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:none;vertical-align:baseline;\">&nbsp;<\/span><\/u><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:.5;margin-bottom:0;margin-top:0;\"><span id=\"docs-internal-guid-401f639d-d197-bcef-07a1-3a1618c61ff3\" style=\"background-color:transparent;clear:left;color:black;float:left;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;margin-bottom:1em;margin-left:1em;text-decoration:none;vertical-align:baseline;\"><img decoding=\"async\" style=\"transform:rotate(0rad);\" src=\"https:\/\/lh3.googleusercontent.com\/8x2EJERcMpvuEo1kT09UTVBa7ghChqAL8eL1vNyZqwKzfFFzP7CpN14gRgJxMDE4e7yb8kSgICSFpS8lt9F5aIB5DUsDtdyaN7f5GgfMvWzxmVhVSMdC2maz7XZgHQGVUg\" alt=\"run_last1.jpg\" width=\"99%;\" height=\"247px;\"><\/span><\/div>\n<div id=\"docs-internal-guid-401f639d-b146-164c-9215-a033eea45edb\" dir=\"ltr\" style=\"line-height:.5;margin-bottom:0;margin-top:0;\"><\/div>\n<p><span id=\"docs-internal-guid-401f639d-d199-cfa3-ca0f-4ec9532e407f\" style=\"background-color:transparent;color:black;font-family:Arial;font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;text-decoration:underline;vertical-align:baseline;\">How it works:<\/span><\/p>\n<ol id=\"docs-internal-guid-401f639d-d19c-7b52-96a5-327782599b60\" style=\"margin-bottom:0;margin-top:0;\">\n<li style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;list-style-type:decimal;text-align:justify;text-decoration:none;vertical-align:baseline;\">\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> solo.rb configures Chef Solo to look for its cookbooks, roles, and data bags &nbsp;&nbsp;inside the current directory: the Chef repository.<\/span><\/div>\n<\/li>\n<\/ol>\n<div style=\"text-align:justify;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">&nbsp;&nbsp;&nbsp;&nbsp; 2. <\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Chef Solo takes its node configuration from a JSON file, in our example we simply <\/span><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;called it node.json. If we&#8217;re going to manage multiple servers, we&#8217;ll need a separate &nbsp;&nbsp;&nbsp;&amp;nbsp&nbsp;&amp;nbsp&nbsp;&amp;nbsp file. <\/span><\/div>\n<ol id=\"docs-internal-guid-401f639d-d19d-c0b9-d86c-735d142e9665\" style=\"margin-bottom:0;margin-top:0;text-align:justify;\" start=\"3\">\n<li style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;list-style-type:decimal;text-decoration:none;vertical-align:baseline;\">\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\">Then, Chef Solo just executes a Chef run based on the configuration data found in <\/span><\/div>\n<\/li>\n<\/ol>\n<div dir=\"ltr\" style=\"line-height:1.15;margin-bottom:0;margin-top:0;text-align:justify;\"><span style=\"background-color:transparent;color:black;font-family:Arial;font-size:15px;font-style:normal;font-variant:normal;font-weight:normal;text-decoration:none;vertical-align:baseline;\"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;solo.rb and node.json<\/span><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Chef Solo is simple way to begin working with Chef. It is an open source version of the chef-client that allows using cookbooks with nodes without requiring access to a server. Chef Solo runs locally and requires that a cookbook (and any of its dependencies) be on the same physical disk as the node. &hellip; <a href=\"https:\/\/opstree.com\/blog\/2014\/10\/03\/chef-solo-an-introduction\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Chef Solo an Introduction&#8221;<\/span><\/a><\/p>\n","protected":false},"author":72934568,"featured_media":29900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[225871,28070474],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/opstree.com\/blog\/wp-content\/uploads\/2025\/11\/DevSecOps-1.jpg","jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pfDBOm-6C","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/410"}],"collection":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/users\/72934568"}],"replies":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/comments?post=410"}],"version-history":[{"count":9,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/410\/revisions"}],"predecessor-version":[{"id":1109,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/posts\/410\/revisions\/1109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media\/29900"}],"wp:attachment":[{"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/media?parent=410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/categories?post=410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opstree.com\/blog\/wp-json\/wp\/v2\/tags?post=410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}