metasploitable3/chef/cookbooks/mysql/libraries/mysql_config.rb

57 lines
1.7 KiB
Ruby
Raw Normal View History

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 new_resource.name == 'mysql'
resource_collection.insert g
user new_resource.owner do
gid new_resource.owner
system true if new_resource.name == 'mysql'
action :create
end
directory new_resource.include_dir do
owner new_resource.owner
group new_resource.group
mode '0750'
recursive true
action :create
end
template "#{new_resource.include_dir}/#{new_resource.config_name}.cnf" do
owner new_resource.owner
group new_resource.group
mode '0640'
variables(new_resource.variables)
source new_resource.source
cookbook new_resource.cookbook
action :create
end
end
action :delete do
file "#{new_resource.include_dir}/#{new_resource.config_name}.cnf" do
action :delete
end
end
end
end