lib/dev-lxc/server.rb in dev-lxc-1.2.2 vs lib/dev-lxc/server.rb in dev-lxc-1.3.0

- old
+ new

@@ -27,10 +27,12 @@ @mounts = cluster_config[@server_type]["mounts"] @platform_image_name = cluster_config[@server_type]["platform_image"] @packages = cluster_config[@server_type]["packages"] case @server_type + when 'adhoc' + @shared_image_name = '' when 'analytics' @shared_image_name = "s#{@platform_image_name[1..-1]}" @shared_image_name += "-analytics-#{Regexp.last_match[1].gsub(".", "-")}" if @packages["analytics"].to_s.match(/[_-]((\d+\.?){3,})/) when 'chef-server' if File.basename(@packages["server"]).match(/^(\w+-\w+.*)[_-]((?:\d+\.?){3,})/) @@ -159,18 +161,26 @@ unique_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT|LXC::LXC_CLONE_KEEPMACADDR}) @server = DevLXC::Container.new(@server.name, @lxc_config_path) return else puts "Creating container '#{@server.name}'" - unless @server.name == @chef_server_bootstrap_backend || DevLXC::Container.new(@chef_server_bootstrap_backend, @lxc_config_path).defined? - puts "ERROR: The bootstrap backend server '#{@chef_server_bootstrap_backend}' must be created first." - exit 1 + if @server_type == 'adhoc' + platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path) + puts "Cloning platform image '#{platform_image.name}' into container '#{@server.name}'" + platform_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT}) + else + unless @server.name == @chef_server_bootstrap_backend || DevLXC::Container.new(@chef_server_bootstrap_backend, @lxc_config_path).defined? + puts "ERROR: The bootstrap backend server '#{@chef_server_bootstrap_backend}' must be created first." + exit 1 + end + shared_image = create_shared_image + puts "Cloning shared image '#{shared_image.name}' into container '#{@server.name}'" + shared_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT}) end - shared_image = create_shared_image - puts "Cloning shared image '#{shared_image.name}' into container '#{@server.name}'" - shared_image.clone(@server.name, {:flags => LXC::LXC_CLONE_SNAPSHOT}) @server = DevLXC::Container.new(@server.name, @lxc_config_path) + puts "Deleting SSH Server Host Keys" + FileUtils.rm_f(Dir.glob("#{@server.config_item('lxc.rootfs')}/etc/ssh/ssh_host*_key*")) puts "Adding lxc.hook.post-stop hook" @server.set_config_item("lxc.hook.post-stop", "/usr/local/share/lxc/hooks/post-stop-dhcp-release") @server.save_config hwaddr = @server.config_item("lxc.network.0.hwaddr") if hwaddr.empty? @@ -223,9 +233,11 @@ end platform_image = DevLXC.create_platform_image(@platform_image_name, @lxc_config_path) puts "Cloning platform image '#{platform_image.name}' into shared image '#{shared_image.name}'" platform_image.clone(shared_image.name, {:flags => LXC::LXC_CLONE_SNAPSHOT}) shared_image = DevLXC::Container.new(shared_image.name, @lxc_config_path) + puts "Deleting SSH Server Host Keys" + FileUtils.rm_f(Dir.glob("#{shared_image.config_item('lxc.rootfs')}/etc/ssh/ssh_host*_key*")) # Disable certain sysctl.d files in Ubuntu 10.04, they cause `start procps` to fail # Enterprise Chef server's postgresql recipe expects to be able to `start procps` if platform_image.name == "p-ubuntu-1004" if File.exist?("#{shared_image.config_item('lxc.rootfs')}/etc/sysctl.d/10-console-messages.conf")