Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions attributes/default.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
default['jmxtrans']['install_prefix'] = '/opt'
default['jmxtrans']['java_home'] = '/usr/bin/java'
#
# Note that deb and rpm will install software as per standards
# and the install_prefix attribute is applicable only for installation
# using the tar.gz file provided by jmxtrans.
#
default['jmxtrans']['java_home'] = nil
default['jmxtrans']['home'] = "#{default['jmxtrans']['install_prefix']}/jmxtrans"
default['jmxtrans']['json_dir'] = "#{default['jmxtrans']['home']}/json"
#
# Note: for deb and rpm installation the json directory will be /var/lib/jmxtrans
# the json_dir attribute is applicable only for installation using tar.gz
#
default['jmxtrans']['log_dir'] = '/var/log/jmxtrans'
default['jmxtrans']['version'] = '250'
default['jmxtrans']['user'] = 'jmxtrans'
default['jmxtrans']['url'] = 'https://github.com/downloads/jmxtrans/jmxtrans/jmxtrans-20120525-210643-4e956b1144.zip'
default['jmxtrans']['url'] = "http://central.maven.org/maven2/org/jmxtrans/jmxtrans/#{default['jmxtrans']['version']}"
default['jmxtrans']['checksum'] = '0a5a2c361cc666f5a7174e2c77809e1a973c3af62868d407c68beb892f1b0217'
default['jmxtrans']['heap_size'] = '512'
default['jmxtrans']['jmxtrans_opts'] = nil
Expand Down
2 changes: 1 addition & 1 deletion metadata.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
license "Apache 2.0"
description "Installs/Configures jmxtrans"
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version "1.2.0"
version "2.0.0"

depends "ark"
84 changes: 84 additions & 0 deletions recipes/centos_install.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#
# Cookbook Name:: jmxtrans
# Recipe:: centos-install.rb
#
# Install jmxtrans on centos using rpm package
#
# Copyright 2015, Biju Nair & Contributors
#
# Apache 2.0 license
#

servers = node['jmxtrans']['servers'].dup
servers.each do |server|
if !server.key?('queries')
server['queries'] = []
end
server['queries'] << node['jmxtrans']['default_queries']['jvm']
server['queries'] << node['jmxtrans']['default_queries'][server['type']]
server['queries'].flatten!
end

remote_file "#{Chef::Config[:file_cache_path]}/jmxtrans-#{node['jmxtrans']['version']}.rpm" do
source "#{node['jmxtrans']['url']}/jmxtrans-#{node['jmxtrans']['version']}.rpm"
#checksum "http://central.maven.org/maven2/org/jmxtrans/jmxtrans/#{node['jmxtrans']['version']}/jmxtrans-#{node['jmxtrans']['version']}.deb.sha1"
action :create_if_missing
end

yum_package "jmxtrans-#{node['jmxtrans']['version']}" do
action :upgrade
source "#{Chef::Config[:file_cache_path]}/jmxtrans-#{node['jmxtrans']['version']}.rpm"
end

user node['jmxtrans']['user']

template "/etc/sysconfig/jmxtrans" do
source "jmxtrans_default.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[jmxtrans]", :delayed
end

directory node['jmxtrans']['log_dir'] do
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
end

node.override['jmxtrans']['json_dir'] = "/var/lib/jmxtrans"

directory node['jmxtrans']['json_dir'] do
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
end

template "#{node['jmxtrans']['json_dir']}/set1.json" do
source "set1.json.erb"
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
notifies :restart, "service[jmxtrans]", :delayed
variables(
:servers => servers,
:graphite_host => node['jmxtrans']['graphite']['host'],
:graphite_port => node['jmxtrans']['graphite']['port'],
:root_prefix => node['jmxtrans']['root_prefix']
)
end

package 'gzip'

cron "compress and remove logs rotated by log4j" do
minute "0"
hour "0"
command "find #{node['jmxtrans']['log_dir']}/ -name '*.gz' -mtime +30 -exec rm -f '{}' \\; ; \
find #{node['jmxtrans']['log_dir']} ! -name '*.gz' -mtime +2 -exec gzip '{}' \\;"
end

service "jmxtrans" do
supports :restart => true, :status => true, :reload => true
action [ :enable, :start]
end

19 changes: 15 additions & 4 deletions recipes/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
# Cookbook Name:: jmxtrans
# Recipe:: default
#
# Recipe to install jmxtrans using tar.gz
#
# Copyright 2015, Biju Nair & Contributors
#
# Apache 2.0 license
Expand Down Expand Up @@ -36,9 +38,9 @@
end

ark "jmxtrans" do
url node['jmxtrans']['url']
checksum node['jmxtrans']['checksum']
version "latest"
url "#{node['jmxtrans']['url']}/jmxtrans-#{node['jmxtrans']['version']}-dist.tar.gz"
#checksum node['jmxtrans']['checksum']
version node['jmxtrans']['version']
prefix_root '/opt'
prefix_home '/opt'
owner node['jmxtrans']['user']
Expand All @@ -48,10 +50,19 @@
# New resource to change the mode of jmxtrans.sh so that service can
# start successfully. Issue #17
#
file "#{node['jmxtrans']['home']}/jmxtrans.sh" do
file "#{node['jmxtrans']['home']}/bin/jmxtrans.sh" do
mode "0755"
action :touch
end
#
# Required for https://github.com/jmxtrans/jmxtrans/issues/283
#
remote_file "Copy jmxtrans-all.jar to bin" do
path "#{node['jmxtrans']['home']}/jmxtrans-all.jar"
source "file:///#{node['jmxtrans']['home']}/lib/jmxtrans-all.jar"
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
end

template "/etc/init.d/jmxtrans" do
source init_script_file
Expand Down
40 changes: 40 additions & 0 deletions recipes/remove_ver1.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#
# Cookbook Name:: jmxtrans
# Recipe:: remove_ver1
#
# If version 1 of the cookbook was used to install with the default
# attributes, this recipe can be used to remove before installing
# using the latest version of the cookbook
#
# Copyright 2015, Biju Nair & Contributors
#
# Apache 2.0 license
#

service "jmxtrans" do
supports :restart => true, :status => true, :reload => true
action [ :stop]
end

directory node['jmxtrans']['json_dir'] do
action :delete
recursive true
end

directory node['jmxtrans']['log_dir'] do
action :delete
recursive true
end

directory node['jmxtrans']['home'] do
action :delete
recursive true
end

file '/etc/init.d/jmxtrans' do
action :delete
end

file '/etc/default/jmxtrans' do
action :delete
end
84 changes: 84 additions & 0 deletions recipes/ubuntu_install.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#
# Cookbook Name:: jmxtrans
# Recipe:: ubuntu-install.rb
#
# Install jmxtrans on Ubuntu using deb package
#
# Copyright 2015, Biju Nair & Contributors
#
# Apache 2.0 license
#

servers = node['jmxtrans']['servers'].dup
servers.each do |server|
if !server.key?('queries')
server['queries'] = []
end
server['queries'] << node['jmxtrans']['default_queries']['jvm']
server['queries'] << node['jmxtrans']['default_queries'][server['type']]
server['queries'].flatten!
end

remote_file "#{Chef::Config[:file_cache_path]}/jmxtrans-#{node['jmxtrans']['version']}.deb" do
source "#{node['jmxtrans']['url']}/jmxtrans-#{node['jmxtrans']['version']}.deb"
#checksum "http://central.maven.org/maven2/org/jmxtrans/jmxtrans/#{node['jmxtrans']['version']}/jmxtrans-#{node['jmxtrans']['version']}.deb.sha1"
action :create_if_missing
end

dpkg_package "jmxtrans-#{node['jmxtrans']['version']}" do
action :upgrade
source "#{Chef::Config[:file_cache_path]}/jmxtrans-#{node['jmxtrans']['version']}.deb"
end

user node['jmxtrans']['user']

template "/etc/default/jmxtrans" do
source "jmxtrans_default.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, "service[jmxtrans]", :delayed
end

directory node['jmxtrans']['log_dir'] do
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
end

node.override['jmxtrans']['json_dir'] = "/var/lib/jmxtrans"

directory node['jmxtrans']['json_dir'] do
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
end

template "#{node['jmxtrans']['json_dir']}/set1.json" do
source "set1.json.erb"
owner node['jmxtrans']['user']
group node['jmxtrans']['user']
mode "0755"
notifies :restart, "service[jmxtrans]", :delayed
variables(
:servers => servers,
:graphite_host => node['jmxtrans']['graphite']['host'],
:graphite_port => node['jmxtrans']['graphite']['port'],
:root_prefix => node['jmxtrans']['root_prefix']
)
end

package 'gzip'

cron "compress and remove logs rotated by log4j" do
minute "0"
hour "0"
command "find #{node['jmxtrans']['log_dir']}/ -name '*.gz' -mtime +30 -exec rm -f '{}' \\; ; \
find #{node['jmxtrans']['log_dir']} ! -name '*.gz' -mtime +2 -exec gzip '{}' \\;"
end

service "jmxtrans" do
supports :restart => true, :status => true, :reload => true
action [ :enable, :start]
end

2 changes: 1 addition & 1 deletion templates/default/jmxtrans.init.deb.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ PIDFILE="/var/run/<%= @name %>.pid"

RUNCMD="if [ -f /etc/default/<%= @name %> ]; then source /etc/default/<%= @name %> ; fi ; \
cd <%= node['jmxtrans']['home'] %> ; \
./jmxtrans.sh"
./bin/jmxtrans.sh"


do_start() {
Expand Down
2 changes: 1 addition & 1 deletion templates/default/jmxtrans.init.el.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ fi
RETVAL=0
prog=$NAME
user=$NAME
exec='<%="#{node['jmxtrans']['home']}/jmxtrans.sh" %>'
exec='<%="#{node['jmxtrans']['home']}/bin/jmxtrans.sh" %>'
lockfile=/var/lock/subsys/<%= @name %>
config=/etc/default/<%= @name %>

Expand Down
2 changes: 1 addition & 1 deletion templates/default/jmxtrans_default.erb
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<% if node['jmxtrans']['java_home'] %>
<% if !node['jmxtrans']['java_home'].nil? %>
export JAVA_HOME=<%= node['jmxtrans']['java_home'] %>
<% end %>
export JAR_FILE='<%= "#{node['jmxtrans']['home']}/jmxtrans-all.jar" %>'
Expand Down