-
Notifications
You must be signed in to change notification settings - Fork 1
/
Day2.txt
202 lines (139 loc) · 4.24 KB
/
Day2.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
What is Chef?
Why CHef?
Other tools?
Role in Chef?
- programmer
- Admin
What is Chef recipe?
How to test and verify recipe?
Resources
-------------------------------
- Variables == Attributes
- Conditions
- Looping
- Template
- Files
-------------------------------
How to MANAGE a large recipe thorough smaller multiple recipe
How to submit Assignment?
-----------------------------------
www.Debug.School
====================================
https://www.devopsschool.com/blog/chef-lab-and-excercise-recipe-part-1/
- https://www.devopsschool.com/blog/top-10-chef-in-built-and-common-resource-types-with-example/
- https://docs.chef.io/resources/
==============================================
Chef Attributes
======================================
== Variable
Set as a
ARRAY
DICT
How to set Attributes in recipe?
How to use Attributes in recipe?
Recipe -- PART OF THIS DISCUSSION
Cookbook
Roles
Environment
Org
Node
==============================================
https://www.devopsschool.com/blog/chef-tutorials-working-with-chef-attributes/
node.default[webserver][port] = "80"
node.default[webserver][webdir] = "/opt/apache"
node.default['devopsschool']['message'] = 'Hello People'
node.default['devopsschool']['dev']['message'] = 'Hello People'
node.default['devopsschool']['qa']['message'] = 'Hello People'
node.default['devopsschool']['message3'] = 'Hello People'
log "Welcome to Chef, #{node['devopsschool']['message']} - #{node['devopsschool']['message1']} - #{node['devopsschool']['message2']}!" do
level :info
end
log "Welcome to Chef, #{node['devopsschool']['message']}'!" do
level :info
end
====================================================
ohai | facter
====================================================
CHEF | PUPPET | Ansible
ubuntu - apache2
centos - httpd
if os = ubuntu
package = apache2
if os = centos
package = httpd
log "The platform on which a node is running:- #{node['platform']}!" do
level :info
end
log "The platform family is a Chef Infra specific:- #{node['platform_family']}!" do
level :info
end
log "The version of the platform: #{node['platform_version']}!" do
level :info
end
log "The IP address for a node: #{node['ipaddress']}!" do
level :info
end
log "The MAC address for a node: #{node['macaddress']}!" do
level :info
end
log "fully qualified domain name: #{node['fqdn']}!" do
level :info
end
log "The host name for the node: #{node['hostname']}!" do
level :info
end
log "The domain for the node: #{node['domain']}!" do
level :info
end
log "A list of recipes associated with a node: #{node['recipes']}!" do
level :info
end
log "The time at which Ohai was last run: #{node['recipes']}!" do
level :info
end
https://www.devopsschool.com/blog/chef-tutorials-working-with-ohai/
=================================================================
template
==================================================================
php | python | ruby | java
===================================================================
blade | jinga2 | erb |
DISPLAY "HOST NAME" on index.html, n i have 100s of server.
Step 1 - Set node['hostname'] in index.html.erb
node['hostname'] === .rb ==== Would introp*
node['hostname'] === index.html using "file" "cookbook_file" ==== Would NOT introp*
Step 2 - USE template resources
template '/var/www/html/index.html' do
source 'index.html.erb'
end
DEV - call - dev-config
QA - call - qa-config
Prod - call - prod-config
template "/etc/myserver.conf" do
source "sample.erb"
owner "root"
group "root"
mode "644"
variables :hostname => node["fqdn"], :servers => ["alpha", "bravo", "charlie"]
end
<%= @hostname %>
node.default['devopsschool']['message'] = 'Hello People'
<h1> This is our chef ohai attributes <%=node['platform'] %></h1>
<h1> This is our Recipe attributes <%=node['devopsschool']['message'] %></h1>
<% node['devopsschool']['message'].each do |key, value| -%>
<% unless value.empty? -%>
<%= key %>=<%= value %>
<% end %>
<% end %>
node.default['devopsschool']['message'] = 'Hello People'
package 'httpd'
template "/var/www/html/index.html" do
source "index.html.erb"
owner 'root'
group 'root'
mode '0755'
end
ervice 'httpd' do
action :start
end
Chef Tutorials: template Resource with example