metasploitable3/chef/cookbooks/docker/test/cookbooks/docker_test/recipes/network.rb

252 lines
4.7 KiB
Ruby

# pull alpine image
docker_image 'alpine' do
tag '3.1'
action :pull_if_missing
end
# unicode characters
docker_network 'seseme_straße' do
action :create
end
###########
# network_a
###########
# defaults
docker_network 'network_a' do
action :create
end
# docker run --net=
docker_container 'echo-base-network_a' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '1337'
network_mode 'network_a'
action :run
end
docker_container 'echo-station-network_a' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '31337'
network_mode 'network_a'
action :run
end
############
# network_b
############
execute 'create network_b' do
command 'docker network create network_b'
not_if { ::File.exist?('/marker_delete_network_b') }
end
file '/marker_delete_network_b' do
action :create
end
# Delete a network
docker_network 'network_b' do
action :delete
end
###########
# network_c
###########
# specify subnet and gateway
docker_network 'network_c' do
subnet '192.168.88.0/24'
gateway '192.168.88.1'
action :create
end
# docker run --net=
docker_container 'echo-base-network_c' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '1337'
network_mode 'network_c'
action :run
end
docker_container 'echo-station-network_c' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '31337'
network_mode 'network_c'
action :run
end
###########
# network_d
###########
# create a network with aux_address
docker_network 'network_d' do
subnet '192.168.89.0/24'
gateway '192.168.89.1'
aux_address ['a=192.168.89.2', 'b=192.168.89.3']
end
docker_container 'echo-base-network_d' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '1337'
network_mode 'network_d'
action :run
end
docker_container 'echo-station-network_d' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '31337'
network_mode 'network_d'
action :run
end
###########
# network_e
###########
# specify overlay driver
docker_network 'network_e' do
driver 'overlay'
action :create
end
###########
# network_f
###########
# create a network with an ip-range
docker_network 'network_f' do
driver 'bridge'
subnet '172.28.0.0/16'
gateway '172.28.5.254'
ip_range '172.28.5.0/24'
end
docker_container 'echo-base-network_f' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '1337'
network_mode 'network_f'
ip_address '172.28.5.5'
action :run
end
docker_container 'echo-station-network_f' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '31337'
network_mode 'network_f'
action :run
end
###########
# network_g
###########
# create an overlay network with multiple subnets
docker_network 'network_g' do
driver 'overlay'
subnet ['192.168.0.0/16', '192.170.0.0/16']
gateway ['192.168.0.100', '192.170.0.100']
ip_range '192.168.1.0/24'
aux_address ['a=192.168.1.5', 'b=192.168.1.6', 'a=192.170.1.5', 'b=192.170.1.6']
end
docker_container 'echo-base-network_g' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '1337'
network_mode 'network_g'
action :run
end
docker_container 'echo-station-network_g' do
repo 'alpine'
tag '3.1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
port '31337'
network_mode 'network_g'
action :run
end
###########
# network_h
###########
# connect same container to multiple networks
docker_network 'network_h1' do
action :create
end
docker_network 'network_h2' do
action :create
end
docker_container 'container1-network_h' do
repo 'alpine'
tag '3.1'
network_mode 'network_h1'
command 'sh -c "trap exit 0 SIGTERM; while :; do sleep 1; done"'
not_if { ::File.exist?('/marker_network_h') }
action :run
end
file '/marker_network_h' do
action :create
end
docker_network 'network_h2 connector' do
container 'container1-network_h'
network_name 'network_h2'
action :connect
end
# disconnet from a network
docker_network 'network_h1 disconnector' do
container 'container1-network_h'
network_name 'network_h1'
action :disconnect
end
##############
# network_ipv6
##############
# IPv6 enabled network
docker_network 'network_ipv6' do
enable_ipv6 true
subnet 'fd00:dead:beef::/48'
action :create
end
##############
# network_ipv4
##############
docker_network 'network_ipv4' do
action :create
end
##################
# network_internal
##################
docker_network 'network_internal' do
internal true
action :create
end