Contents
4.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Knife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3 Bootstrap first node . . . . . . . . . . . . . . . . . . . . . . . . 36
Node in Vagrant . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Attribute Types . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Automatic (Ohai) . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Attribute Precedence . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.7 Knife ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Chef-client cookbook . . . . . . . . . . . . . . . . . . . . . . . . 47
4.8 Data bags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 Writing Cookbooks 51
5.1 Cookbook file organization . . . . . . . . . . . . . . . . . . . . . 51
5.2 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3 Resources and Providers . . . . . . . . . . . . . . . . . . . . . . 54
Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Cookbook_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Deploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Assign Dependencies . . . . . . . . . . . . . . . . . . . . . . . . 60
Create Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Include Recipes . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Reload Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Accessor Methods . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.6 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
File Specificity . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Partial Templates . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.7 LWRPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
DSL Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Using LWRP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2