lib/dev-lxc.rb in dev-lxc-0.2.5 vs lib/dev-lxc.rb in dev-lxc-0.3.0
- old
+ new
@@ -4,63 +4,59 @@
require "dev-lxc/container"
require "dev-lxc/chef-server"
require "dev-lxc/chef-cluster"
module DevLXC
- def self.create_base_platform(base_platform_name)
- base_platform = DevLXC::Container.new(base_platform_name)
- if base_platform.defined?
- puts "Using existing container #{base_platform.name}"
- return base_platform
+ def self.create_platform_container(platform_container_name)
+ platform_container = DevLXC::Container.new(platform_container_name)
+ if platform_container.defined?
+ puts "Using existing platform container #{platform_container.name}"
+ return platform_container
end
- puts "Creating container #{base_platform.name}"
- case base_platform.name
- when "b-ubuntu-1004"
- base_platform.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"])
- when "b-ubuntu-1204"
- base_platform.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "precise", "-a", "amd64"])
- when "b-ubuntu-1404"
- base_platform.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"])
- when "b-centos-5"
- base_platform.create("centos", "btrfs", 0, ["-R", "5"])
- when "b-centos-6"
- base_platform.create("download", "btrfs", 0, ["-d", "centos", "-r", "6", "-a", "amd64"])
+ puts "Creating platform container #{platform_container.name}"
+ case platform_container.name
+ when "p-ubuntu-1004"
+ platform_container.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "lucid", "-a", "amd64"])
+ when "p-ubuntu-1204"
+ platform_container.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "precise", "-a", "amd64"])
+ when "p-ubuntu-1404"
+ platform_container.create("download", "btrfs", 0, ["-d", "ubuntu", "-r", "trusty", "-a", "amd64"])
+ when "p-centos-5"
+ platform_container.create("centos", "btrfs", 0, ["-R", "5"])
+ when "p-centos-6"
+ platform_container.create("download", "btrfs", 0, ["-d", "centos", "-r", "6", "-a", "amd64"])
end
- # TODO when LXC 1.0.2 is released and the following test is replaced with #config_item("lxc.mount.auto")
- # then this #save_config can be removed
- base_platform.save_config
- # TODO when LXC 1.0.2 is released the following test can be done using #config_item("lxc.mount.auto")
- unless IO.readlines(base_platform.config_file_name).select { |line| line.start_with?("lxc.mount.auto") }.empty?
- base_platform.set_config_item("lxc.mount.auto", "proc:rw sys:rw")
+ unless platform_container.config_item("lxc.mount.auto").empty?
+ platform_container.set_config_item("lxc.mount.auto", "proc:rw sys:rw")
end
hwaddr = '00:16:3e:' + Digest::SHA1.hexdigest(Time.now.to_s).slice(0..5).unpack('a2a2a2').join(':')
- puts "Setting #{base_platform.name} container's lxc.network.0.hwaddr to #{hwaddr}"
- base_platform.set_config_item("lxc.network.0.hwaddr", hwaddr)
- base_platform.save_config
- base_platform.start
- puts "Installing packages in container #{base_platform.name}"
- case base_platform.name
- when "b-ubuntu-1004"
+ puts "Setting #{platform_container.name} platform container's lxc.network.0.hwaddr to #{hwaddr}"
+ platform_container.set_config_item("lxc.network.0.hwaddr", hwaddr)
+ platform_container.save_config
+ platform_container.start
+ puts "Installing packages in platform container #{platform_container.name}"
+ case platform_container.name
+ when "p-ubuntu-1004"
# Disable certain sysctl.d files in Ubuntu 10.04, they cause `start procps` to fail
- if File.exist?("#{base_platform.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf")
- FileUtils.mv("#{base_platform.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf",
- "#{base_platform.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf.orig")
+ if File.exist?("#{platform_container.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf")
+ FileUtils.mv("#{platform_container.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf",
+ "#{platform_container.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf.orig")
end
- base_platform.run_command("apt-get update")
- base_platform.run_command("apt-get install -y standard^ server^ vim-nox emacs23-nox curl tree")
- when "b-ubuntu-1204", "b-ubuntu-1404"
- base_platform.run_command("apt-get update")
- base_platform.run_command("apt-get install -y standard^ server^ vim-nox emacs23-nox tree")
- when "b-centos-5"
+ platform_container.run_command("apt-get update")
+ platform_container.run_command("apt-get install -y standard^ server^ vim-nox emacs23-nox curl tree")
+ when "p-ubuntu-1204", "p-ubuntu-1404"
+ platform_container.run_command("apt-get update")
+ platform_container.run_command("apt-get install -y standard^ server^ vim-nox emacs23-nox tree")
+ when "p-centos-5"
# downgrade openssl temporarily to overcome an install bug
# reference: http://www.hack.net.br/blog/2014/02/12/openssl-conflicts-with-file-from-package-openssl/
- base_platform.run_command("yum downgrade -y openssl")
- base_platform.run_command("yum install -y @base @core vim-enhanced emacs-nox tree")
- when "b-centos-6"
- base_platform.run_command("yum install -y @base @core vim-enhanced emacs-nox tree")
+ platform_container.run_command("yum downgrade -y openssl")
+ platform_container.run_command("yum install -y @base @core vim-enhanced emacs-nox tree")
+ when "p-centos-6"
+ platform_container.run_command("yum install -y @base @core vim-enhanced emacs-nox tree")
end
- base_platform.stop
- return base_platform
+ platform_container.stop
+ return platform_container
end
def self.assign_ip_address(ipaddress, container_name, hwaddr)
puts "Assigning IP address #{ipaddress} to #{container_name} container's lxc.network.hwaddr #{hwaddr}"
search_file_delete_line("/etc/lxc/dhcp-hosts.conf", /(^#{hwaddr}|,#{ipaddress}$)/)