mirror of
https://github.com/rapid7/metasploitable3.git
synced 2024-07-15 00:01:26 +02:00
82 lines
2.1 KiB
Ruby
82 lines
2.1 KiB
Ruby
|
module DockerCookbook
|
||
|
class DockerServiceManagerSysvinitRhel < DockerServiceBase
|
||
|
resource_name :docker_service_manager_sysvinit_rhel
|
||
|
|
||
|
provides :docker_service_manager, platform: 'amazon'
|
||
|
provides :docker_service_manager, platform: 'suse'
|
||
|
provides :docker_service_manager, platform: %w(redhat centos scientific oracle) do |node| # ~FC005
|
||
|
node['platform_version'].to_f <= 7.0
|
||
|
end
|
||
|
|
||
|
provides :docker_service_manager_sysvinit, platform: 'amazon'
|
||
|
provides :docker_service_manager_sysvinit, platform: 'suse'
|
||
|
provides :docker_service_manager_sysvinit, platform: %w(redhat centos scientific oracle) do |node| # ~FC005
|
||
|
node['platform_version'].to_f <= 7.0
|
||
|
end
|
||
|
|
||
|
action :start do
|
||
|
create_docker_wait_ready
|
||
|
create_init
|
||
|
create_service
|
||
|
end
|
||
|
|
||
|
action :stop do
|
||
|
create_init
|
||
|
s = create_service
|
||
|
s.action :stop
|
||
|
end
|
||
|
|
||
|
action :restart do
|
||
|
action_stop
|
||
|
action_start
|
||
|
end
|
||
|
|
||
|
action_class.class_eval do
|
||
|
def create_init
|
||
|
execute 'groupadd docker' do
|
||
|
not_if 'getent group docker'
|
||
|
action :run
|
||
|
end
|
||
|
|
||
|
link dockerd_bin_link do
|
||
|
to dockerd_bin
|
||
|
link_type :hard
|
||
|
action :create
|
||
|
end
|
||
|
|
||
|
template "/etc/init.d/#{docker_name}" do
|
||
|
source 'sysvinit/docker-rhel.erb'
|
||
|
owner 'root'
|
||
|
group 'root'
|
||
|
mode '0755'
|
||
|
variables(
|
||
|
docker_name: docker_name,
|
||
|
dockerd_bin_link: dockerd_bin_link,
|
||
|
docker_daemon_cmd: docker_daemon_cmd,
|
||
|
docker_wait_ready: "#{libexec_dir}/#{docker_name}-wait-ready"
|
||
|
)
|
||
|
cookbook 'docker'
|
||
|
action :create
|
||
|
end
|
||
|
|
||
|
template "/etc/sysconfig/#{docker_name}" do
|
||
|
source 'sysconfig/docker.erb'
|
||
|
variables(
|
||
|
config: new_resource,
|
||
|
docker_daemon_opts: docker_daemon_opts.join(' ')
|
||
|
)
|
||
|
cookbook 'docker'
|
||
|
action :create
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def create_service
|
||
|
service docker_name do
|
||
|
supports restart: true, status: true
|
||
|
action [:enable, :start]
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|