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}$)/)