diff --git a/centos-atomic/docker-tcp/Vagrantfile b/centos-atomic/docker-tcp/Vagrantfile new file mode 100644 index 0000000..0bc87d3 --- /dev/null +++ b/centos-atomic/docker-tcp/Vagrantfile @@ -0,0 +1,66 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +# Specify minimum Vagrant version and Vagrant API version +Vagrant.require_version '>= 1.6.0' +VAGRANTFILE_API_VERSION = '2' + +# Require 'yaml' module +require 'yaml' + +# Read YAML file with VM details (box, CPU, and RAM) +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) + +# Create and configure the VMs +Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| + + # Always use Vagrant's default insecure key + config.ssh.insert_key = false + + # Iterate through entries in YAML file to create VMs + machines.each do |machine| + config.vm.define machine['name'] do |srv| + + # Don't check for box updates + srv.vm.box_check_update = false + srv.vm.hostname = machine['name'] + + # Use VMware box by default + srv.vm.box = machine['box']['vmw'] + + # Configure default synced folder (disable by default) + if machine['sync_disabled'] != nil + srv.vm.synced_folder '.', '/vagrant', disabled: machine['sync_disabled'] + else + srv.vm.synced_folder '.', '/vagrant', disabled: true + end #if machine['sync_disabled'] + + # Iterate through networks as per settings in machines.yml + machine['nics'].each do |net| + if net['ip_addr'] == 'dhcp' + srv.vm.network net['type'], type: net['ip_addr'] + else + srv.vm.network net['type'], ip: net['ip_addr'] + end # if net['ip_addr'] + end # machine['nics'].each + + # Configure CPU & RAM per settings in machines.yml (Fusion) + srv.vm.provider 'vmware_fusion' do |vmw| + vmw.vmx['memsize'] = machine['ram'] + vmw.vmx['numvcpus'] = machine['vcpu'] + if machine['nested'] == true + vmw.vmx['vhv.enable'] = 'TRUE' + end #if machine['nested'] + end # srv.vm.provider 'vmware_fusion' + + # Configure CPU & RAM per settings in machines.yml (VirtualBox) + srv.vm.provider 'virtualbox' do |vb, override| + vb.memory = machine['ram'] + vb.cpus = machine['vcpu'] + override.vm.box = machine['box']['vb'] + vb.customize ['modifyvm', :id, '--nictype1', 'virtio'] + vb.customize ['modifyvm', :id, '--nictype2', 'virtio'] + end # srv.vm.provider 'virtualbox' + end # config.vm.define + end # machines.each +end # Vagrant.configure diff --git a/centos-atomic/docker-tcp/docker-socket.conf b/centos-atomic/docker-tcp/docker-socket.conf new file mode 100644 index 0000000..ea41aa7 --- /dev/null +++ b/centos-atomic/docker-tcp/docker-socket.conf @@ -0,0 +1,13 @@ +[Service] +ExecStart= +ExecStart=/usr/bin/dockerd-current -H fd:// \ + --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \ + --default-runtime=docker-runc \ + --exec-opt native.cgroupdriver=systemd \ + --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \ + $OPTIONS \ + $DOCKER_STORAGE_OPTIONS \ + $DOCKER_NETWORK_OPTIONS \ + $ADD_REGISTRY \ + $BLOCK_REGISTRY \ + $INSECURE_REGISTRY diff --git a/centos-atomic/docker-tcp/docker-tcp.socket b/centos-atomic/docker-tcp/docker-tcp.socket new file mode 100644 index 0000000..024a102 --- /dev/null +++ b/centos-atomic/docker-tcp/docker-tcp.socket @@ -0,0 +1,10 @@ +[Unit] +Description=TCP Socket for the Docker API + +[Socket] +ListenStream=2375 +BindIPv6Only=both +Service=docker.service + +[Install] +WantedBy=sockets.target diff --git a/centos-atomic/docker-tcp/docker.socket b/centos-atomic/docker-tcp/docker.socket new file mode 100644 index 0000000..3c5e736 --- /dev/null +++ b/centos-atomic/docker-tcp/docker.socket @@ -0,0 +1,12 @@ +[Unit] +Description=UNIX Socket for the Docker API +PartOf=docker.service + +[Socket] +ListenStream=/var/run/docker.sock +SocketMode=0660 +SocketUser=root +SocketGroup=docker + +[Install] +WantedBy=sockets.target diff --git a/centos-atomic/docker-tcp/machines.yml b/centos-atomic/docker-tcp/machines.yml new file mode 100644 index 0000000..cb03628 --- /dev/null +++ b/centos-atomic/docker-tcp/machines.yml @@ -0,0 +1,12 @@ +--- +- box: + vmw: "bento/centos-7.1" + vb: "centos/atomic-host" + name: "atomic-01" + nested: false + nics: + - type: "private_network" + ip_addr: "dhcp" + ram: "512" + sync_disabled: true + vcpu: "1" diff --git a/centos-atomic/docker-tcp/setup.sh b/centos-atomic/docker-tcp/setup.sh new file mode 100755 index 0000000..76d68e0 --- /dev/null +++ b/centos-atomic/docker-tcp/setup.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +# Stop docker.service +sudo systemctl stop docker.service + +# Make drop-in directory +if [ ! -d "/etc/systemd/system/docker.service.d" ]; then + sudo mkdir -p /etc/systemd/system/docker.service.d +fi + +# Copy docker.socket into place +if [ -f "/home/vagrant/sync/docker.socket" ]; then + sudo cp /home/vagrant/sync/docker.socket /etc/systemd/system/ +fi + +# Copy docker-tcp.socket into place +if [ -f "/home/vagrant/sync/docker-tcp.socket" ]; then + sudo cp /home/vagrant/sync/docker-tcp.socket /etc/systemd/system/ +fi + +# Copy docker.service drop-in into place +if [ -f "/home/vagrant/sync/docker-socket.conf" ]; then + sudo cp /home/vagrant/sync/docker-socket.conf /etc/systemd/system/docker.service.d/ +fi + +# Add docker group +sudo groupadd docker + +# Reload +sudo systemctl daemon-reload + +# Restart services +sudo systemctl start docker.socket +sudo systemctl start docker-tcp.socket +sudo systemctl start docker.service