File: //var/lib/puppet/lib/facter/mysql.rb
Facter.add("mysql") do
setcode do
result = "false"
if FileTest.exists?("/usr/bin/mysql")
result = "true"
else
output = %x{/usr/bin/which mysql}.chomp
if !output.to_s.empty?
result = "true"
end
end
result
end
end
Facter.add("mysql_bin") do
confine :mysql => :true
setcode do
result = "false"
if FileTest.exists?("/usr/bin/mysql")
result = "/usr/bin/mysql"
else
output = %x{/usr/bin/which mysql}.chomp
if !output.to_s.empty?
result = output
end
end
result
end
end
# This uses a relatively unreliable system for getting the config location
# but just blindly assuming /etc/my.cnf didn't seem like the right answer
Facter.add("mysql_conf") do
confine :mysql => :true
setcode do
output = %x{/usr/bin/mysql --verbose --help | grep -A1 "Default options" | tail -1 | awk {'print $1'}}.chomp
result = output
result
end
end
Facter.add("mysql_ver") do
confine :mysql => :true
setcode do
begin
Facter.mysql_bin
rescue
Facter.loadfacts()
end
bin = Facter.value('mysql_bin')
output = %x{#{bin} -V}.chomp
if output =~ /^.+Distrib\s+([\d\.]+),\s.+$/ or output =~ /^.+Distrib\s+([\d\.]+)-MariaDB,\s.+$/
result = $1.to_s
end
end
end