Created
November 22, 2022 10:41
-
-
Save devops-school/56f994e6e6f989bda42fc403edb7472f to your computer and use it in GitHub Desktop.
Chef Tutorials: template Resource with example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Example | |
# Content of index.html.erb | |
# index.html.erb must be located at cookbook/templates/index.html.erb | |
<h1> This is our chef ohai attributes <%=node['platform'] %></h1> | |
<h1> This is our Recipe attributes <%=node['devopsschool']['message'] %></h1> | |
<% node['learn_chef_httpd']['default'].each do |key, value| -%> | |
<% unless value.empty? -%> | |
<%= key %>=<%= value %> | |
<% end %> | |
<% end %> | |
<%- 4.times do %> | |
<%= @hi %>, <%= @world %> from <%= @from %>! | |
<%- end %> | |
# Content of attributes/default.rb | |
default['elasticsearch']['default']['ES_USER'] = '' | |
default['elasticsearch']['default']['ES_GROUP'] = '' | |
default['elasticsearch']['default']['ES_HEAP_SIZE'] = '' | |
default['elasticsearch']['default']['MAX_OPEN_FILES'] = '' | |
default['elasticsearch']['default']['MAX_LOCKED_MEMORY'] = 'unlimited' | |
default['elasticsearch']['default']['MAX_MAP_COUNT'] = '' | |
default['elasticsearch']['default']['LOG_DIR'] = '/var/log/elasticsearch' | |
default['elasticsearch']['default']['DATA_DIR'] = '/var/lib/elasticsearch' | |
default['elasticsearch']['default']['WORK_DIR'] = '/tmp/elasticsearch' | |
default['elasticsearch']['default']['CONF_DIR'] = '/etc/elasticsearch' | |
default['elasticsearch']['default']['CONF_FILE'] = '/etc/elasticsearch/elasticsearch.yml' | |
default['elasticsearch']['default']['RESTART_ON_UPGRADE'] = '' | |
# Content of default.rb | |
template "/var/www/html/index.html" do | |
source "index.html.erb" | |
owner 'root' | |
group 'root' | |
mode '0755' | |
variables( | |
hi: 'Tesing', | |
world: 'Welt', | |
from: node['fqdn'] | |
) | |
end | |
template '/etc/sudoers' do | |
source 'sudoers.erb' | |
mode '0440' | |
owner 'root' | |
group 'root' | |
variables(sudoers_groups: node['authorization']['sudo']['groups'], | |
sudoers_users: node['authorization']['sudo']['users']) | |
end | |
Content of templates/default/sudoers.erb | |
------------------------------------------ | |
# | |
# /etc/sudoers | |
# | |
# Generated by Chef for <%= node['fqdn'] %> | |
# | |
Defaults !lecture,tty_tickets,!fqdn | |
# User privilege specification | |
root ALL=(ALL) ALL | |
<% @sudoers_users.each do |user| -%> | |
<%= user %> ALL=(ALL) <%= "NOPASSWD:" if @passwordless %>ALL | |
<% end -%> | |
# Members of the sysadmin group may gain root privileges | |
%sysadmin ALL=(ALL) <%= "NOPASSWD:" if @passwordless %>ALL | |
<% @sudoers_groups.each do |group| -%> | |
# Members of the group '<%= group %>' may gain root privileges | |
<%= group %> ALL=(ALL) <%= "NOPASSWD:" if @passwordless %>ALL | |
<% end -%> | |
Content of attributes/default.rb | |
# -------------------------------------- | |
default['authorization']['sudo']['groups'] = %w(sysadmin wheel admin) | |
default['authorization']['sudo']['users'] = %w(jerry greg) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment