mirror of
https://github.com/rapid7/metasploitable3.git
synced 2024-06-06 21:25:29 +02:00
72dc282aa0
Tweaks to the recipes to avoid repetition of work, and ub1404 dev, * let apt cookbook handle apt-update globally * do not download, configure, make, make install if the package is already installed * add guards for file deletion to first check whether file is present * use docker cookbook for image building and running, to only build if not alrady built and only run if not already running * drop mysql table and recreate each time Also, * bump Docker cookbook to 4.9.3 * bump mysql cookbook to 8.5.1 * add apt cookbook for better apt-update management * bump depends versions and add apt * modify readme with customization instructions * modify all chef runlists to call apt first in the runlist * add a vagrantfile for dev of ub1404
35 lines
1.1 KiB
Ruby
35 lines
1.1 KiB
Ruby
module DockerCookbook
|
|
class DockerVolume < DockerBase
|
|
resource_name :docker_volume
|
|
|
|
property :driver, String, desired_state: false
|
|
property :host, [String, nil], default: lazy { ENV['DOCKER_HOST'] }, desired_state: false
|
|
property :opts, Hash, desired_state: false
|
|
property :volume, Docker::Volume, desired_state: false
|
|
property :volume_name, String, name_property: true
|
|
|
|
load_current_value do
|
|
begin
|
|
with_retries { volume Docker::Volume.get(volume_name, connection) }
|
|
rescue Docker::Error::NotFoundError
|
|
current_value_does_not_exist!
|
|
end
|
|
end
|
|
|
|
action :create do
|
|
converge_by "creating volume #{new_resource.volume_name}" do
|
|
opts = {}
|
|
opts['Driver'] = new_resource.driver if property_is_set?(:driver)
|
|
opts['DriverOpts'] = new_resource.opts if property_is_set?(:opts)
|
|
Docker::Volume.create(new_resource.volume_name, opts, connection)
|
|
end if current_resource.nil?
|
|
end
|
|
|
|
action :remove do
|
|
converge_by "removing volume #{new_resource.volume_name}" do
|
|
current_resource.volume.remove
|
|
end unless current_resource.nil?
|
|
end
|
|
end
|
|
end
|