metasploitable3/chef/cookbooks/mysql/libraries/mysql_config.rb
2017-07-12 18:15:48 -05:00

57 lines
1.6 KiB
Ruby

module MysqlCookbook
class MysqlConfig < MysqlBase
resource_name :mysql_config
property :config_name, String, name_property: true, desired_state: false
property :cookbook, String, desired_state: false
property :group, String, default: 'mysql', desired_state: false
property :instance, String, default: 'default', desired_state: false
property :owner, String, default: 'mysql', desired_state: false
property :source, String, desired_state: false
property :variables, [Hash], desired_state: false
property :version, String, default: lazy { default_major_version }, desired_state: false
require_relative 'helpers'
include MysqlCookbook::HelpersBase
provides :mysql_config
action :create do
# hax because group property
g = Chef::Resource::Group.new(new_resource.group, run_context)
g.system true if name == 'mysql'
resource_collection.insert g
user owner do
gid owner
system true if name == 'mysql'
action :create
end
directory include_dir do
owner new_resource.owner
group new_resource.group
mode '0750'
recursive true
action :create
end
template "#{include_dir}/#{config_name}.cnf" do
owner new_resource.owner
group new_resource.group
mode '0640'
variables(new_resource.variables)
source new_resource.source
cookbook cookbook
action :create
end
end
action :delete do
file "#{include_dir}/#{config_name}.cnf" do
action :delete
end
end
end
end