mirror of
https://github.com/rapid7/metasploitable3.git
synced 2024-07-15 00:01:26 +02:00
126949ce19
This reverts commit 50a8a91c71
.
97 lines
3.1 KiB
Ruby
97 lines
3.1 KiB
Ruby
module MysqlCookbook
|
|
class MysqlServiceManagerSysvinit < MysqlServiceBase
|
|
resource_name :mysql_service_manager_sysvinit
|
|
|
|
provides :mysql_service_manager, platform: %w(redhat centos scientific oracle) do |node| # ~FC005
|
|
node['platform_version'].to_f <= 7.0
|
|
end
|
|
|
|
provides :mysql_service_manager, platform: 'suse'
|
|
provides :mysql_service_manager, platform: 'debian'
|
|
|
|
action :create do
|
|
# from base
|
|
create_system_user
|
|
stop_system_service
|
|
create_config
|
|
initialize_database
|
|
configure_apparmor
|
|
end
|
|
|
|
action :start do
|
|
template "/etc/init.d/#{mysql_name}" do
|
|
source 'sysvinit/mysqld.erb'
|
|
owner 'root'
|
|
group 'root'
|
|
mode '0755'
|
|
variables(
|
|
config: new_resource,
|
|
defaults_file: defaults_file,
|
|
error_log: error_log,
|
|
mysql_name: mysql_name,
|
|
mysqladmin_bin: mysqladmin_bin,
|
|
mysqld_safe_bin: mysqld_safe_bin,
|
|
pid_file: pid_file,
|
|
scl_name: scl_name
|
|
)
|
|
cookbook 'mysql'
|
|
action :create
|
|
end
|
|
|
|
service mysql_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
supports restart: true, status: true
|
|
action [:enable, :start]
|
|
end
|
|
end
|
|
|
|
action :stop do
|
|
service mysql_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
supports restart: true, status: true
|
|
action [:stop]
|
|
end
|
|
end
|
|
|
|
action :restart do
|
|
service mysql_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
supports restart: true
|
|
action :restart
|
|
end
|
|
end
|
|
|
|
action :reload do
|
|
service mysql_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
action :reload
|
|
end
|
|
end
|
|
|
|
declare_action_class.class_eval do
|
|
def stop_system_service
|
|
service system_service_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
supports status: true
|
|
action [:stop, :disable]
|
|
end
|
|
end
|
|
|
|
def delete_stop_service
|
|
service mysql_name do
|
|
provider Chef::Provider::Service::Init::Redhat if node['platform_family'] == 'redhat'
|
|
provider Chef::Provider::Service::Init::Insserv if node['platform_family'] == 'debian'
|
|
supports status: true
|
|
action [:disable, :stop]
|
|
only_if { ::File.exist?("#{etc_dir}/init.d/#{mysql_name}") }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|