from-scratch 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Berksfile +2 -1
- data/Berksfile.lock +20 -1
- data/cookbooks/bluepill/CHANGELOG.md +93 -0
- data/cookbooks/bluepill/README.md +91 -0
- data/cookbooks/bluepill/attributes/default.rb +44 -0
- data/cookbooks/bluepill/metadata.json +1 -0
- data/cookbooks/bluepill/providers/service.rb +172 -0
- data/cookbooks/bluepill/recipes/default.rb +48 -0
- data/cookbooks/bluepill/recipes/rsyslog.rb +28 -0
- data/cookbooks/bluepill/resources/service.rb +27 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.fedora.erb +34 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.freebsd.erb +32 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.lsb.erb +37 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.rhel.erb +34 -0
- data/cookbooks/bluepill/templates/default/bluepill_rsyslog.conf.erb +1 -0
- data/cookbooks/nginx/CHANGELOG.md +435 -0
- data/cookbooks/nginx/README.md +521 -0
- data/cookbooks/nginx/attributes/auth_request.rb +23 -0
- data/cookbooks/nginx/attributes/default.rb +131 -0
- data/cookbooks/nginx/attributes/devel.rb +24 -0
- data/cookbooks/nginx/attributes/echo.rb +24 -0
- data/cookbooks/nginx/attributes/geoip.rb +31 -0
- data/cookbooks/nginx/attributes/headers_more.rb +24 -0
- data/cookbooks/nginx/attributes/lua.rb +28 -0
- data/cookbooks/nginx/attributes/naxsi.rb +24 -0
- data/cookbooks/nginx/attributes/openssl_source.rb +23 -0
- data/cookbooks/nginx/attributes/pagespeed.rb +9 -0
- data/cookbooks/nginx/attributes/passenger.rb +58 -0
- data/cookbooks/nginx/attributes/rate_limiting.rb +23 -0
- data/cookbooks/nginx/attributes/repo.rb +35 -0
- data/cookbooks/nginx/attributes/set_misc.rb +8 -0
- data/cookbooks/nginx/attributes/socketproxy.rb +13 -0
- data/cookbooks/nginx/attributes/source.rb +42 -0
- data/cookbooks/nginx/attributes/status.rb +22 -0
- data/cookbooks/nginx/attributes/syslog.rb +24 -0
- data/cookbooks/nginx/attributes/upload_progress.rb +26 -0
- data/cookbooks/nginx/definitions/nginx_site.rb +50 -0
- data/cookbooks/nginx/files/default/mime.types +78 -0
- data/cookbooks/nginx/files/default/naxsi_core.rules +82 -0
- data/cookbooks/nginx/libraries/matchers.rb +20 -0
- data/cookbooks/nginx/metadata.json +351 -0
- data/cookbooks/nginx/recipes/authorized_ips.rb +32 -0
- data/cookbooks/nginx/recipes/commons.rb +24 -0
- data/cookbooks/nginx/recipes/commons_conf.rb +42 -0
- data/cookbooks/nginx/recipes/commons_dir.rb +57 -0
- data/cookbooks/nginx/recipes/commons_script.rb +29 -0
- data/cookbooks/nginx/recipes/default.rb +31 -0
- data/cookbooks/nginx/recipes/headers_more_module.rb +50 -0
- data/cookbooks/nginx/recipes/http_auth_request_module.rb +52 -0
- data/cookbooks/nginx/recipes/http_echo_module.rb +46 -0
- data/cookbooks/nginx/recipes/http_geoip_module.rb +113 -0
- data/cookbooks/nginx/recipes/http_gzip_static_module.rb +30 -0
- data/cookbooks/nginx/recipes/http_mp4_module.rb +2 -0
- data/cookbooks/nginx/recipes/http_perl_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_realip_module.rb +38 -0
- data/cookbooks/nginx/recipes/http_spdy_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_ssl_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_stub_status_module.rb +36 -0
- data/cookbooks/nginx/recipes/ipv6.rb +23 -0
- data/cookbooks/nginx/recipes/lua.rb +47 -0
- data/cookbooks/nginx/recipes/naxsi_module.rb +52 -0
- data/cookbooks/nginx/recipes/ngx_devel_module.rb +44 -0
- data/cookbooks/nginx/recipes/ngx_lua_module.rb +47 -0
- data/cookbooks/nginx/recipes/ohai_plugin.rb +35 -0
- data/cookbooks/nginx/recipes/openssl_source.rb +45 -0
- data/cookbooks/nginx/recipes/package.rb +52 -0
- data/cookbooks/nginx/recipes/pagespeed_module.rb +62 -0
- data/cookbooks/nginx/recipes/passenger.rb +56 -0
- data/cookbooks/nginx/recipes/repo.rb +41 -0
- data/cookbooks/nginx/recipes/repo_passenger.rb +39 -0
- data/cookbooks/nginx/recipes/set_misc.rb +30 -0
- data/cookbooks/nginx/recipes/socketproxy.rb +26 -0
- data/cookbooks/nginx/recipes/source.rb +205 -0
- data/cookbooks/nginx/recipes/syslog_module.rb +69 -0
- data/cookbooks/nginx/recipes/upload_progress_module.rb +53 -0
- data/cookbooks/nginx/templates/debian/nginx.init.erb +97 -0
- data/cookbooks/nginx/templates/default/default-site.erb +11 -0
- data/cookbooks/nginx/templates/default/modules/authorized_ip.erb +6 -0
- data/cookbooks/nginx/templates/default/modules/http_geoip.conf.erb +4 -0
- data/cookbooks/nginx/templates/default/modules/http_gzip_static.conf.erb +1 -0
- data/cookbooks/nginx/templates/default/modules/http_realip.conf.erb +7 -0
- data/cookbooks/nginx/templates/default/modules/nginx_status.erb +14 -0
- data/cookbooks/nginx/templates/default/modules/passenger.conf.erb +13 -0
- data/cookbooks/nginx/templates/default/modules/socketproxy.conf.erb +89 -0
- data/cookbooks/nginx/templates/default/modules/upload_progress.erb +4 -0
- data/cookbooks/nginx/templates/default/nginx-upstart.conf.erb +39 -0
- data/cookbooks/nginx/templates/default/nginx.conf.erb +103 -0
- data/cookbooks/nginx/templates/default/nginx.init.erb +111 -0
- data/cookbooks/nginx/templates/default/nginx.pill.erb +15 -0
- data/cookbooks/nginx/templates/default/nginx.sysconfig.erb +1 -0
- data/cookbooks/nginx/templates/default/nxdissite.erb +29 -0
- data/cookbooks/nginx/templates/default/nxensite.erb +38 -0
- data/cookbooks/nginx/templates/default/plugins/nginx.rb.erb +66 -0
- data/cookbooks/nginx/templates/default/sv-nginx-log-run.erb +2 -0
- data/cookbooks/nginx/templates/default/sv-nginx-run.erb +4 -0
- data/cookbooks/nginx/templates/gentoo/nginx.init.erb +87 -0
- data/cookbooks/nginx/templates/suse/nginx.init.erb +115 -0
- data/cookbooks/nginx/templates/ubuntu/nginx.init.erb +97 -0
- data/cookbooks/ohai/CHANGELOG.md +69 -0
- data/cookbooks/ohai/README.md +89 -0
- data/cookbooks/ohai/attributes/default.rb +31 -0
- data/cookbooks/ohai/files/default/plugins/README +1 -0
- data/cookbooks/ohai/libraries/matchers.rb +14 -0
- data/cookbooks/ohai/metadata.json +1 -0
- data/cookbooks/ohai/providers/hint.rb +38 -0
- data/cookbooks/ohai/recipes/default.rb +52 -0
- data/cookbooks/ohai/resources/hint.rb +5 -0
- data/cookbooks/packagecloud/CHANGELOG.md +12 -0
- data/cookbooks/packagecloud/README.md +80 -0
- data/cookbooks/packagecloud/attributes/default.rb +8 -0
- data/cookbooks/packagecloud/libraries/helper.rb +43 -0
- data/cookbooks/packagecloud/libraries/matcher.rb +7 -0
- data/cookbooks/packagecloud/metadata.json +1 -0
- data/cookbooks/packagecloud/providers/repo.rb +212 -0
- data/cookbooks/packagecloud/resources/repo.rb +10 -0
- data/cookbooks/packagecloud/templates/.kitchen/logs/kitchen.log +29 -0
- data/cookbooks/packagecloud/templates/default/apt.erb +2 -0
- data/cookbooks/packagecloud/templates/default/yum.erb +15 -0
- data/cookbooks/rsyslog/CHANGELOG.md +193 -0
- data/cookbooks/rsyslog/README.md +276 -0
- data/cookbooks/rsyslog/attributes/default.rb +131 -0
- data/cookbooks/rsyslog/libraries/helpers.rb +25 -0
- data/cookbooks/rsyslog/metadata.json +1 -0
- data/cookbooks/rsyslog/providers/file_input.rb +44 -0
- data/cookbooks/rsyslog/recipes/client.rb +87 -0
- data/cookbooks/rsyslog/recipes/default.rb +89 -0
- data/cookbooks/rsyslog/recipes/server.rb +44 -0
- data/cookbooks/rsyslog/resources/file_input.rb +28 -0
- data/cookbooks/rsyslog/templates/default/35-server-per-host.conf.erb +62 -0
- data/cookbooks/rsyslog/templates/default/49-relp.conf.erb +10 -0
- data/cookbooks/rsyslog/templates/default/49-remote.conf.erb +30 -0
- data/cookbooks/rsyslog/templates/default/50-default.conf.erb +6 -0
- data/cookbooks/rsyslog/templates/default/file-input.conf.erb +15 -0
- data/cookbooks/rsyslog/templates/default/omnios-manifest.xml.erb +30 -0
- data/cookbooks/rsyslog/templates/default/rsyslog.conf.erb +117 -0
- data/cookbooks/rsyslog/templates/smartos/50-default.conf.erb +18 -0
- data/cookbooks/runit/.kitchen.cloud.yml +103 -0
- data/cookbooks/runit/.kitchen.yml +38 -0
- data/cookbooks/runit/.rspec +3 -0
- data/cookbooks/runit/.rubocop.yml +45 -0
- data/cookbooks/runit/Berksfile.disabled +11 -0
- data/cookbooks/runit/CHANGELOG.md +226 -0
- data/cookbooks/runit/CONTRIBUTING.md +266 -0
- data/cookbooks/runit/Cheffile +11 -0
- data/cookbooks/runit/Gemfile +17 -0
- data/cookbooks/runit/LICENSE +201 -0
- data/cookbooks/runit/README.md +435 -0
- data/cookbooks/runit/Rakefile +23 -0
- data/cookbooks/runit/TESTING.md +26 -0
- data/cookbooks/runit/attributes/default.rb +62 -0
- data/cookbooks/runit/files/default/runit.seed +1 -0
- data/cookbooks/runit/files/default/runsvdir +0 -0
- data/cookbooks/runit/files/ubuntu-6.10/runsvdir +6 -0
- data/cookbooks/runit/files/ubuntu-7.04/runsvdir +7 -0
- data/cookbooks/runit/files/ubuntu-7.10/runsvdir +7 -0
- data/cookbooks/runit/files/ubuntu-8.04/runsvdir +7 -0
- data/cookbooks/runit/libraries/default.rb +0 -0
- data/cookbooks/runit/libraries/helpers.rb +190 -0
- data/cookbooks/runit/libraries/matchers.rb +69 -0
- data/cookbooks/runit/libraries/provider_runit_service.rb +326 -0
- data/cookbooks/runit/libraries/resource_runit_service.rb +267 -0
- data/cookbooks/runit/metadata.json +50 -0
- data/cookbooks/runit/recipes/default.rb +91 -0
- data/cookbooks/runit/templates/debian/init.d.erb +66 -0
- data/cookbooks/runit/templates/default/log-config.erb +24 -0
- data/cookbooks/runit/templates/gentoo/runit-start.sh.erb +32 -0
- data/cookbooks/scratchify/Berksfile +2 -1
- data/cookbooks/scratchify/Berksfile.lock +20 -1
- data/cookbooks/scratchify/lib/from-scratch.rb +1 -4
- data/cookbooks/scratchify/lib/from-scratch/version.rb +1 -1
- data/cookbooks/scratchify/metadata.json +5 -2
- data/cookbooks/scratchify/recipes/default.rb +15 -1
- data/cookbooks/scratchify/recipes/nginx_site.rb +4 -0
- data/cookbooks/scratchify/recipes/pre_rvm.rb +5 -0
- data/cookbooks/scratchify/templates/nginx.erb +31 -0
- data/cookbooks/scratchify/templates/node.json.erb +21 -6
- data/cookbooks/yum-epel/CHANGELOG.md +84 -0
- data/cookbooks/yum-epel/README.md +172 -0
- data/cookbooks/yum-epel/attributes/default.rb +1 -0
- data/cookbooks/yum-epel/attributes/epel-debuginfo.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-source.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing-debuginfo.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing-source.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel.rb +28 -0
- data/cookbooks/yum-epel/metadata.json +1 -0
- data/cookbooks/yum-epel/recipes/default.rb +61 -0
- data/cookbooks/yum/CHANGELOG.md +294 -0
- data/cookbooks/yum/README.md +285 -0
- data/cookbooks/yum/attributes/main.rb +100 -0
- data/cookbooks/yum/libraries/matchers.rb +27 -0
- data/cookbooks/yum/metadata.json +1 -0
- data/cookbooks/yum/providers/globalconfig.rb +41 -0
- data/cookbooks/yum/providers/repository.rb +106 -0
- data/cookbooks/yum/recipes/default.rb +26 -0
- data/cookbooks/yum/resources/globalconfig.rb +109 -0
- data/cookbooks/yum/resources/repository.rb +69 -0
- data/cookbooks/yum/templates/default/main.erb +276 -0
- data/cookbooks/yum/templates/default/repo.erb +125 -0
- data/lib/from-scratch.rb +1 -0
- data/lib/from-scratch/version.rb +1 -1
- data/metadata.rb +5 -1
- data/recipes/default.rb +15 -1
- data/recipes/nginx_site.rb +4 -0
- data/recipes/pre_rvm.rb +5 -0
- data/templates/nginx.erb +31 -0
- data/templates/node.json.erb +21 -6
- metadata +194 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: rsyslog
|
|
3
|
+
# Recipe:: client
|
|
4
|
+
#
|
|
5
|
+
# Copyright 2009-2015, Chef Software, Inc.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
# Do not run this recipe if the server attribute is set
|
|
21
|
+
return if node['rsyslog']['server']
|
|
22
|
+
|
|
23
|
+
include_recipe 'rsyslog::default'
|
|
24
|
+
|
|
25
|
+
def chef_solo_search_installed?
|
|
26
|
+
klass = ::Search.const_get('Helper')
|
|
27
|
+
return klass.is_a?(Class)
|
|
28
|
+
rescue NameError
|
|
29
|
+
return false
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# On Chef Solo, we use the node['rsyslog']['server_ip'] attribute, and on
|
|
33
|
+
# normal Chef, we leverage the search query.
|
|
34
|
+
if Chef::Config[:solo] && !chef_solo_search_installed?
|
|
35
|
+
if node['rsyslog']['server_ip']
|
|
36
|
+
server_ips = Array(node['rsyslog']['server_ip'])
|
|
37
|
+
else
|
|
38
|
+
Chef::Application.fatal!("Chef Solo does not support search. You must set node['rsyslog']['server_ip'] or use the chef-solo-search cookbook!")
|
|
39
|
+
end
|
|
40
|
+
else
|
|
41
|
+
results = search(:node, node['rsyslog']['server_search']).map do |server|
|
|
42
|
+
ipaddress = server['ipaddress']
|
|
43
|
+
# If both server and client are on the same cloud and local network, they may be
|
|
44
|
+
# instructed to communicate via the internal interface by enabling `use_local_ipv4`
|
|
45
|
+
if node['rsyslog']['use_local_ipv4'] && server.attribute?('cloud') && server['cloud']['local_ipv4']
|
|
46
|
+
ipaddress = server['cloud']['local_ipv4']
|
|
47
|
+
end
|
|
48
|
+
ipaddress
|
|
49
|
+
end
|
|
50
|
+
server_ips = Array(node['rsyslog']['server_ip']) + Array(results)
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
rsyslog_servers = []
|
|
54
|
+
|
|
55
|
+
server_ips.each do |ip|
|
|
56
|
+
rsyslog_servers << { 'server' => ip, 'port' => node['rsyslog']['port'], 'logs' => node['rsyslog']['logs_to_forward'], 'protocol' => node['rsyslog']['protocol'], 'remote_template' => node['rsyslog']['default_remote_template'] }
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
unless node['rsyslog']['custom_remote'].first.empty?
|
|
60
|
+
node['rsyslog']['custom_remote'].each do |server|
|
|
61
|
+
if server['server'].nil?
|
|
62
|
+
Chef::Application.fatal!('Found a custom_remote server with no IP. Check your custom_remote attribute definition!')
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
rsyslog_servers += node['rsyslog']['custom_remote']
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
if rsyslog_servers.empty?
|
|
69
|
+
Chef::Application.fatal!('The rsyslog::client recipe was unable to determine the remote syslog server. Checked both the server_ip attribute and search!')
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
remote_type = node['rsyslog']['use_relp'] ? 'relp' : 'remote'
|
|
73
|
+
|
|
74
|
+
template "#{node['rsyslog']['config_prefix']}/rsyslog.d/49-remote.conf" do
|
|
75
|
+
source "49-#{remote_type}.conf.erb"
|
|
76
|
+
owner 'root'
|
|
77
|
+
group 'root'
|
|
78
|
+
mode '0644'
|
|
79
|
+
variables(servers: rsyslog_servers)
|
|
80
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
81
|
+
only_if { node['rsyslog']['remote_logs'] }
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
file "#{node['rsyslog']['config_prefix']}/rsyslog.d/server.conf" do
|
|
85
|
+
action :delete
|
|
86
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
87
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: rsyslog
|
|
3
|
+
# Recipe:: default
|
|
4
|
+
#
|
|
5
|
+
# Copyright 2009-2015, Chef Software, Inc.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
extend RsyslogCookbook::Helpers
|
|
21
|
+
|
|
22
|
+
package 'rsyslog'
|
|
23
|
+
package 'rsyslog-relp' if node['rsyslog']['use_relp']
|
|
24
|
+
|
|
25
|
+
if node['rsyslog']['enable_tls'] && node['rsyslog']['tls_ca_file']
|
|
26
|
+
Chef::Application.fatal!("Recipe rsyslog::default can not use 'enable_tls' with protocol '#{node['rsyslog']['protocol']}' (requires 'tcp')") unless node['rsyslog']['protocol'] == 'tcp'
|
|
27
|
+
package 'rsyslog-gnutls'
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
directory "#{node['rsyslog']['config_prefix']}/rsyslog.d" do
|
|
31
|
+
owner 'root'
|
|
32
|
+
group 'root'
|
|
33
|
+
mode '0755'
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
directory node['rsyslog']['working_dir'] do
|
|
37
|
+
owner node['rsyslog']['user']
|
|
38
|
+
group node['rsyslog']['group']
|
|
39
|
+
mode '0700'
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Our main stub which then does its own rsyslog-specific
|
|
43
|
+
# include of things in /etc/rsyslog.d/*
|
|
44
|
+
template "#{node['rsyslog']['config_prefix']}/rsyslog.conf" do
|
|
45
|
+
source 'rsyslog.conf.erb'
|
|
46
|
+
owner 'root'
|
|
47
|
+
group 'root'
|
|
48
|
+
mode '0644'
|
|
49
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
template "#{node['rsyslog']['config_prefix']}/rsyslog.d/50-default.conf" do
|
|
53
|
+
source '50-default.conf.erb'
|
|
54
|
+
owner 'root'
|
|
55
|
+
group 'root'
|
|
56
|
+
mode '0644'
|
|
57
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# syslog needs to be stopped before rsyslog can be started on RHEL versions before 6.0
|
|
61
|
+
if platform_family?('rhel') && node['platform_version'].to_i < 6
|
|
62
|
+
service 'syslog' do
|
|
63
|
+
action [:stop, :disable]
|
|
64
|
+
end
|
|
65
|
+
elsif platform_family?('smartos', 'omnios')
|
|
66
|
+
# syslog needs to be stopped before rsyslog can be started on SmartOS, OmniOS
|
|
67
|
+
service 'system-log' do
|
|
68
|
+
action :disable
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
if platform_family?('omnios')
|
|
73
|
+
# manage the SMF manifest on OmniOS
|
|
74
|
+
template '/var/svc/manifest/system/rsyslogd.xml' do
|
|
75
|
+
source 'omnios-manifest.xml.erb'
|
|
76
|
+
owner 'root'
|
|
77
|
+
group 'root'
|
|
78
|
+
mode '0644'
|
|
79
|
+
notifies :run, 'execute[import rsyslog manifest]', :immediately
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
execute 'import rsyslog manifest' do
|
|
83
|
+
action :nothing
|
|
84
|
+
command 'svccfg import /var/svc/manifest/system/rsyslogd.xml'
|
|
85
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
declare_rsyslog_service
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Cookbook Name:: rsyslog
|
|
3
|
+
# Recipe:: server
|
|
4
|
+
#
|
|
5
|
+
# Copyright 2009-2015, Chef Software, Inc.
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
#
|
|
19
|
+
|
|
20
|
+
# Manually set this attribute
|
|
21
|
+
node.set['rsyslog']['server'] = true
|
|
22
|
+
|
|
23
|
+
include_recipe 'rsyslog::default'
|
|
24
|
+
|
|
25
|
+
directory node['rsyslog']['log_dir'] do
|
|
26
|
+
owner node['rsyslog']['user']
|
|
27
|
+
group node['rsyslog']['group']
|
|
28
|
+
mode '0755'
|
|
29
|
+
recursive true
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
template "#{node['rsyslog']['config_prefix']}/rsyslog.d/35-server-per-host.conf" do
|
|
33
|
+
source '35-server-per-host.conf.erb'
|
|
34
|
+
owner 'root'
|
|
35
|
+
group 'root'
|
|
36
|
+
mode '0644'
|
|
37
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
file "#{node['rsyslog']['config_prefix']}/rsyslog.d/remote.conf" do
|
|
41
|
+
action :delete
|
|
42
|
+
notifies :restart, "service[#{node['rsyslog']['service_name']}]"
|
|
43
|
+
only_if { ::File.exist?("#{node['rsyslog']['config_prefix']}/rsyslog.d/remote.conf") }
|
|
44
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Cookbook Name:: rsyslog
|
|
2
|
+
# Resource:: file_input
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2012-2015, Joseph Holsten
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
# you may not use this file except in compliance with the License.
|
|
8
|
+
# You may obtain a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
# See the License for the specific language governing permissions and
|
|
16
|
+
# limitations under the License.
|
|
17
|
+
#
|
|
18
|
+
|
|
19
|
+
actions :create
|
|
20
|
+
default_action :create
|
|
21
|
+
|
|
22
|
+
attribute :name, kind_of: String, name_attribute: true, required: true
|
|
23
|
+
attribute :file, kind_of: String, required: true
|
|
24
|
+
attribute :priority, kind_of: Integer, default: 99
|
|
25
|
+
attribute :severity, kind_of: String
|
|
26
|
+
attribute :facility, kind_of: String
|
|
27
|
+
attribute :cookbook, kind_of: String, default: 'rsyslog'
|
|
28
|
+
attribute :source, kind_of: String, default: 'file-input.conf.erb'
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Generated by Chef
|
|
2
|
+
# Local modifications will be overwritten
|
|
3
|
+
|
|
4
|
+
<% if node['rsyslog']['use_relp'] -%>
|
|
5
|
+
$ModLoad imrelp
|
|
6
|
+
$InputRELPServerRun <%= node['rsyslog']['relp_port'] %>
|
|
7
|
+
<% end -%>
|
|
8
|
+
$DirGroup <%= node['rsyslog']['group'] %>
|
|
9
|
+
$DirCreateMode 0755
|
|
10
|
+
$FileGroup <%= node['rsyslog']['group'] %>
|
|
11
|
+
|
|
12
|
+
$template PerHostAuth,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/auth.log"
|
|
13
|
+
$template PerHostCron,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/cron.log"
|
|
14
|
+
$template PerHostSyslog,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/syslog"
|
|
15
|
+
$template PerHostDaemon,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/daemon.log"
|
|
16
|
+
$template PerHostKern,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/kern.log"
|
|
17
|
+
$template PerHostLpr,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/lpr.log"
|
|
18
|
+
$template PerHostUser,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/user.log"
|
|
19
|
+
$template PerHostMail,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/mail.log"
|
|
20
|
+
$template PerHostMailInfo,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/mail.info"
|
|
21
|
+
$template PerHostMailWarn,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/mail.warn"
|
|
22
|
+
$template PerHostMailErr,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/mail.err"
|
|
23
|
+
$template PerHostNewsCrit,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/news.crit"
|
|
24
|
+
$template PerHostNewsErr,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/news.err"
|
|
25
|
+
$template PerHostNewsNotice,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/news.notice"
|
|
26
|
+
$template PerHostDebug,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/debug"
|
|
27
|
+
$template PerHostMessages,"<%= node['rsyslog']['log_dir'] %>/<%= node['rsyslog']['per_host_dir'] %>/messages"
|
|
28
|
+
|
|
29
|
+
auth,authpriv.* ?PerHostAuth
|
|
30
|
+
*.*;auth,authpriv.none -?PerHostSyslog
|
|
31
|
+
cron.* ?PerHostCron
|
|
32
|
+
daemon.* -?PerHostDaemon
|
|
33
|
+
kern.* -?PerHostKern
|
|
34
|
+
lpr.* -?PerHostLpr
|
|
35
|
+
mail.* -?PerHostMail
|
|
36
|
+
user.* -?PerHostUser
|
|
37
|
+
|
|
38
|
+
mail.info -?PerHostMailInfo
|
|
39
|
+
mail.warn ?PerHostMailWarn
|
|
40
|
+
mail.err ?PerHostMailErr
|
|
41
|
+
|
|
42
|
+
news.crit ?PerHostNewsCrit
|
|
43
|
+
news.err ?PerHostNewsErr
|
|
44
|
+
news.notice -?PerHostNewsNotice
|
|
45
|
+
|
|
46
|
+
*.=debug;\
|
|
47
|
+
auth,authpriv.none;\
|
|
48
|
+
news.none;mail.none -?PerHostDebug
|
|
49
|
+
|
|
50
|
+
*.=info;*.=notice;*.=warn;\
|
|
51
|
+
auth,authpriv.none;\
|
|
52
|
+
cron,daemon.none;\
|
|
53
|
+
mail,news.none -?PerHostMessages
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<% unless node['rsyslog']['allow_non_local'] -%>
|
|
57
|
+
#
|
|
58
|
+
# Stop processing of all non-local messages. You can process remote messages
|
|
59
|
+
# on levels less than 35.
|
|
60
|
+
#
|
|
61
|
+
:fromhost-ip,!isequal,"127.0.0.1" ~
|
|
62
|
+
<% end -%>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Generated by Chef
|
|
2
|
+
$ModLoad omrelp
|
|
3
|
+
$ActionQueueType LinkedList # use asynchronous processing
|
|
4
|
+
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
|
|
5
|
+
$ActionResumeRetryCount -1 # infinite retries on insert failure
|
|
6
|
+
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
|
|
7
|
+
|
|
8
|
+
<% @servers.each do |server| -%>
|
|
9
|
+
<%= node['rsyslog']['logs_to_forward'] %> :omrelp:<%= "#{server}:#{node['rsyslog']['relp_port']}" %><%= node['rsyslog']['default_remote_template'] ? ';' + node['rsyslog']['default_remote_template'] : nil %>
|
|
10
|
+
<% end -%>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Generated by Chef
|
|
2
|
+
$ActionQueueType LinkedList # use asynchronous processing
|
|
3
|
+
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
|
|
4
|
+
$ActionResumeRetryCount -1 # infinite retries on insert failure
|
|
5
|
+
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
|
|
6
|
+
$ActionQueueMaxDiskSpace <%= node['rsyslog']['action_queue_max_disk_space'] %> # Don't use more than this much space for the queue
|
|
7
|
+
<% if node['rsyslog']['enable_tls'] && node['rsyslog']['tls_ca_file'] -%>
|
|
8
|
+
$DefaultNetstreamDriverCAFile <%= node['rsyslog']['tls_ca_file'] %>
|
|
9
|
+
<% if node['rsyslog']['tls_certificate_file'] -%>
|
|
10
|
+
$DefaultNetstreamDriverCertFile <%= node['rsyslog']['tls_certificate_file'] %>
|
|
11
|
+
<% end -%>
|
|
12
|
+
<% if node['rsyslog']['tls_key_file'] -%>
|
|
13
|
+
$DefaultNetstreamDriverKeyFile <%= node['rsyslog']['tls_key_file'] %>
|
|
14
|
+
<% end -%>
|
|
15
|
+
|
|
16
|
+
$DefaultNetstreamDriver gtls
|
|
17
|
+
$ActionSendStreamDriverMode 1
|
|
18
|
+
$ActionSendStreamDriverAuthMode <%= node['rsyslog']['tls_auth_mode'] %>
|
|
19
|
+
<% end -%>
|
|
20
|
+
|
|
21
|
+
<% @servers.each do |server| -%>
|
|
22
|
+
<% case server['protocol'] -%>
|
|
23
|
+
<% when "tcp" -%>
|
|
24
|
+
<%= server['logs'] ? server['logs'] : node['rsyslog']['logs_to_forward'] %> @@<%= server['server'] %>:<%= server['port'] ? server['port'] : node['rsyslog']['port'] %><%= server['remote_template'] ? ';' + server['remote_template'] : nil %>
|
|
25
|
+
<% when "udp" -%>
|
|
26
|
+
<%= server['logs'] ? server['logs'] : node['rsyslog']['logs_to_forward'] %> @<%= server['server'] %>:<%= server['port'] ? server['port'] : node['rsyslog']['port'] %><%= server['remote_template'] ? ';' + server['remote_template'] : nil %>
|
|
27
|
+
<% else -%>
|
|
28
|
+
<%= server['logs'] ? server['logs'] : node['rsyslog']['logs_to_forward'] %><%= node['rsyslog']['protocol'] == "tcp" ? " @@" : " @" %><%= server['server'] %>:<%= server['port'] ? server['port'] : node['rsyslog']['port'] %><%= server['remote_template'] ? ';' + server['remote_template'] : nil %>
|
|
29
|
+
<% end -%>
|
|
30
|
+
<% end -%>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# <%= @tag %>.conf - Syslog file inputs for <%= @tag %>
|
|
2
|
+
#
|
|
3
|
+
# Generated by Chef for <%= node['fqdn'] %>
|
|
4
|
+
# Local modifications will be overwritten.
|
|
5
|
+
$ModLoad imfile
|
|
6
|
+
$InputFileName <%= @file_name %>
|
|
7
|
+
$InputFileTag <%= @tag %>:
|
|
8
|
+
$InputFileStateFile <%= @state_file %>
|
|
9
|
+
<% if @severity %>
|
|
10
|
+
$InputFileSeverity <%= @severity %>
|
|
11
|
+
<% end %>
|
|
12
|
+
<% if @facility %>
|
|
13
|
+
$InputFileFacility <%= @facility %>
|
|
14
|
+
<% end %>
|
|
15
|
+
$InputRunFileMonitor
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?xml version='1.0'?>
|
|
2
|
+
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
|
|
3
|
+
<service_bundle type='manifest' name='export'>
|
|
4
|
+
<service name='<%= node['rsyslog']['service_name'] %>' type='service' version='0'>
|
|
5
|
+
<create_default_instance enabled='true'/>
|
|
6
|
+
<single_instance/>
|
|
7
|
+
<dependency name='network' grouping='require_all' restart_on='error' type='service'>
|
|
8
|
+
<service_fmri value='svc:/milestone/network:default'/>
|
|
9
|
+
</dependency>
|
|
10
|
+
<dependency name='filesystem' grouping='require_all' restart_on='error' type='service'>
|
|
11
|
+
<service_fmri value='svc:/system/filesystem/local'/>
|
|
12
|
+
</dependency>
|
|
13
|
+
<method_context/>
|
|
14
|
+
<exec_method name='start' type='method' exec='/opt/omni/sbin/rsyslogd -f %{config_file}' timeout_seconds='60'/>
|
|
15
|
+
<exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
|
|
16
|
+
<property_group name='startd' type='framework'>
|
|
17
|
+
<propval name='duration' type='astring' value='contract'/>
|
|
18
|
+
<propval name='ignore_error' type='astring' value='core,signal'/>
|
|
19
|
+
</property_group>
|
|
20
|
+
<property_group name='application' type='application'>
|
|
21
|
+
<propval name='config_file' type='astring' value='<%= node["rsyslog"]["config_prefix"] %>/rsyslog.conf'/>
|
|
22
|
+
</property_group>
|
|
23
|
+
<stability value='Evolving'/>
|
|
24
|
+
<template>
|
|
25
|
+
<common_name>
|
|
26
|
+
<loctext xml:lang='C'>rsyslog daemon</loctext>
|
|
27
|
+
</common_name>
|
|
28
|
+
</template>
|
|
29
|
+
</service>
|
|
30
|
+
</service_bundle>
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Config generated by Chef - manual edits will be overwritten
|
|
2
|
+
#
|
|
3
|
+
# /etc/rsyslog.conf Configuration file for rsyslog.
|
|
4
|
+
#
|
|
5
|
+
# For more information see
|
|
6
|
+
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
|
|
7
|
+
#
|
|
8
|
+
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf
|
|
9
|
+
#
|
|
10
|
+
# Set max message size
|
|
11
|
+
#
|
|
12
|
+
$MaxMessageSize <%= node['rsyslog']['max_message_size'] %>
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# Preserve FQDN
|
|
16
|
+
#
|
|
17
|
+
$PreserveFQDN <%= node['rsyslog']['preserve_fqdn'] %>
|
|
18
|
+
|
|
19
|
+
#################
|
|
20
|
+
#### MODULES ####
|
|
21
|
+
#################
|
|
22
|
+
|
|
23
|
+
<% if node['rsyslog']['modules'] && !node['rsyslog']['modules'].empty? %>
|
|
24
|
+
<% [*node['rsyslog']['modules']].each do |mod| %>
|
|
25
|
+
$ModLoad <%= mod %>
|
|
26
|
+
<% end %>
|
|
27
|
+
<% end %>
|
|
28
|
+
|
|
29
|
+
<% if node['rsyslog']['server'] -%>
|
|
30
|
+
<% if node['rsyslog']['enable_tls'] && node['rsyslog']['tls_ca_file'] &&
|
|
31
|
+
node['rsyslog']['tls_key_file'] && node['rsyslog']['tls_certificate_file'] -%>
|
|
32
|
+
$DefaultNetstreamDriver gtls
|
|
33
|
+
$DefaultNetstreamDriverCAFile <%= node['rsyslog']['tls_ca_file'] %>
|
|
34
|
+
$DefaultNetstreamDriverCertFile <%= node['rsyslog']['tls_certificate_file'] %>
|
|
35
|
+
$DefaultNetstreamDriverKeyFile <%= node['rsyslog']['tls_key_file'] %>
|
|
36
|
+
|
|
37
|
+
$ModLoad imtcp
|
|
38
|
+
|
|
39
|
+
$InputTCPServerStreamDriverMode 1 # run driver in TLS-only mode
|
|
40
|
+
$InputTCPServerStreamDriverAuthMode <%= node['rsyslog']['tls_auth_mode'] || 'anon' %>
|
|
41
|
+
$InputTCPServerRun <%= node['rsyslog']['port'] %>
|
|
42
|
+
# Provide <%= node['rsyslog']['protocol'].upcase %> log reception
|
|
43
|
+
<% else -%>
|
|
44
|
+
<% if node['rsyslog']['protocol'] =~ /tcp/ %>
|
|
45
|
+
$ModLoad imtcp
|
|
46
|
+
$InputTCPServerRun <%= node['rsyslog']['port'] %>
|
|
47
|
+
<% end -%>
|
|
48
|
+
<% if node['rsyslog']['protocol'] =~ /udp/ %>
|
|
49
|
+
$ModLoad imudp
|
|
50
|
+
$UDPServerAddress <%= node['rsyslog']['bind'] %>
|
|
51
|
+
$UDPServerRun <%= node['rsyslog']['port'] %>
|
|
52
|
+
<% end -%>
|
|
53
|
+
<% end -%>
|
|
54
|
+
<% end -%>
|
|
55
|
+
|
|
56
|
+
###########################
|
|
57
|
+
#### GLOBAL DIRECTIVES ####
|
|
58
|
+
###########################
|
|
59
|
+
|
|
60
|
+
<% if node["rsyslog"]["default_file_template"] -%>
|
|
61
|
+
#
|
|
62
|
+
# Default log format template
|
|
63
|
+
#
|
|
64
|
+
$ActionFileDefaultTemplate <%= node["rsyslog"]["default_file_template"] %>
|
|
65
|
+
<% elsif !node["rsyslog"]["high_precision_timestamps"] -%>
|
|
66
|
+
#
|
|
67
|
+
# Use traditional timestamp format.
|
|
68
|
+
# To enable high precision timestamps, comment out the following line.
|
|
69
|
+
#
|
|
70
|
+
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
|
|
71
|
+
<% end -%>
|
|
72
|
+
|
|
73
|
+
# Filter duplicated messages
|
|
74
|
+
$RepeatedMsgReduction <%= node['rsyslog']['repeated_msg_reduction'] %>
|
|
75
|
+
|
|
76
|
+
#
|
|
77
|
+
# Set temporary directory to buffer syslog queue
|
|
78
|
+
#
|
|
79
|
+
$WorkDirectory <%= node['rsyslog']['working_dir'] %>
|
|
80
|
+
|
|
81
|
+
#
|
|
82
|
+
# Set the default permissions for all log files.
|
|
83
|
+
#
|
|
84
|
+
$FileOwner <%= node['rsyslog']['user'] %>
|
|
85
|
+
$FileGroup <%= node['rsyslog']['group'] %>
|
|
86
|
+
$FileCreateMode 0640
|
|
87
|
+
$DirCreateMode 0755
|
|
88
|
+
$Umask 0022
|
|
89
|
+
<% if node['rsyslog']['priv_seperation'] %>
|
|
90
|
+
$PrivDropToUser <%= node['rsyslog']['priv_user'] || node['rsyslog']['user'] %>
|
|
91
|
+
$PrivDropToGroup <%= node['rsyslog']['priv_group'] || node['rsyslog']['group'] %>
|
|
92
|
+
<% end %>
|
|
93
|
+
<% unless node['rsyslog']['rate_limit_interval'].nil? %>
|
|
94
|
+
#
|
|
95
|
+
# Set the amount of time that is being measured for rate limiting
|
|
96
|
+
#
|
|
97
|
+
$SystemLogRateLimitInterval <%= node['rsyslog']['rate_limit_interval'] %>
|
|
98
|
+
<% end %>
|
|
99
|
+
<% unless node['rsyslog']['rate_limit_burst'].nil? %>
|
|
100
|
+
#
|
|
101
|
+
# Set the amount of messages, that have to occur in the time limit of
|
|
102
|
+
# SystemLogRateLimitInterval, to trigger rate limiting
|
|
103
|
+
#
|
|
104
|
+
$SystemLogRateLimitBurst <%= node['rsyslog']['rate_limit_burst'] %>
|
|
105
|
+
<% end %>
|
|
106
|
+
|
|
107
|
+
#
|
|
108
|
+
# Set other directives
|
|
109
|
+
#
|
|
110
|
+
<% node['rsyslog']['additional_directives'].each_pair do |k,v| %>
|
|
111
|
+
$<%= k %> <%= v %>
|
|
112
|
+
<% end %>
|
|
113
|
+
|
|
114
|
+
#
|
|
115
|
+
# Include all config files in <%= node['rsyslog']['config_prefix'] %>/rsyslog.d/
|
|
116
|
+
#
|
|
117
|
+
$IncludeConfig <%= node['rsyslog']['config_prefix'] %>/rsyslog.d/*.conf
|