no_snap = no_install or \ man.get_config_option('no_snapshot') # starting from a base image doesn't work if the base image # has fewer drives than the current manifest you're loading run_command( "./make_base_container.py " "{} {} {} {} {}".format(distro, container_name, vol_size, vol_count, base_image), RUNWAY_DIR) setup_and_run_ansible_on_guest.setup_and_run_ansible( container_name, debug=debug, drive_count=vol_count, tiny_install=tiny_deploy) if not no_install: run_command("./generic_installer.py {}".format(container_name), RUNWAY_DIR) if not no_snap: run_command( "./snapshot_created_container.sh " "{} {}{}".format(container_name, base_image, debug_string), RUNWAY_DIR) except Exception as e: colorprint.error(str(e)) sys.exit(1) colorprint.success("Container '{}' successfully " "created.\n".format(container_name))
# Vagrant up if os.environ.get("CONTROLLER_NAME") is None: colorprint.warning( "WARNING: CONTROLLER_NAME env var hasn't been set. " "If you fail to 'vagrant up' your VM, open " "VirtualBox, check the name of your SCSI " "Controller and provide it in the CONTROLLER_NAME " "env var." ) vagrant_env_vars = { "VOL_SIZE": "{}".format(vol_size_in_mebibytes(vol_size)), "VOL_COUNT": "{}".format(vol_count), } try: run_command("vagrant up", cwd=RUNWAY_DIR, env=vagrant_env_vars) colorprint.success("VM successfully created.") colorprint.info("VM needs to be rebooted before container creation.") run_command("vagrant reload", cwd=RUNWAY_DIR) colorprint.info("Creating container...") create_container_cmd = "./create_container.sh -d {}".format(distro) if container_name is not None: create_container_cmd += " --container-name {}".format(container_name) if provided_workspace_name: create_container_cmd += " --workspace {}".format(workspace_name) run_command(create_container_cmd, cwd=BIN_DIR) except Exception as e: exit_on_error(str(e)) elapsed_time = time.time() - start_time # Log into our brand new container?
default=None, help="Workspace name") args = parser.parse_args() manifest_file = os.path.abspath(args.manifest) workspace_name = args.workspace # Create new workspace directory try: new_workspace_path = create_workspace_dir(workspace_name) except Exception as e: exit_with_error(e.message) colorprint.info("\nRetrieving components into workspace at '{}'..." "\n".format(new_workspace_path)) # Copy manifest into workspace manifest_copy_path = os.path.join(new_workspace_path, MANIFEST_COPY_NAME) if not os.path.isfile(manifest_copy_path): copyfile(manifest_file, manifest_copy_path) # Retrieve contents try: current_manifest = Manifest(manifest_copy_path, new_workspace_path) current_manifest.retrieve_components() except Exception as e: exit_with_error(e.message) colorprint.success("Guest workspace successfully set up at " "'{}'.".format(new_workspace_path))
# Vagrant up if os.environ.get('CONTROLLER_NAME') is None: colorprint.warning("WARNING: CONTROLLER_NAME env var hasn't been set. " "If you fail to 'vagrant up' your VM, open " "VirtualBox, check the name of your SCSI " "Controller and provide it in the CONTROLLER_NAME " "env var.") vagrant_env_vars = { 'DISTRO': distro, 'VOL_SIZE': "{}".format(vol_size_in_mebibytes(vol_size)), 'VOL_COUNT': "{}".format(vol_count), } try: run_command("vagrant up", cwd=RUNWAY_DIR, env=vagrant_env_vars) colorprint.info("VM and container need to be rebooted after install.") colorprint.info("Stopping container...") run_command("./stop_container.sh", cwd=BIN_DIR) colorprint.info("Restarting VM...") run_command("vagrant reload", cwd=RUNWAY_DIR) colorprint.info("Starting container...") run_command("./start_container.sh", cwd=BIN_DIR) except Exception as e: exit_on_error(e.message) # Log into our brand new container? colorprint.success("Your new container is now up and running! If you want " "to log into it, just run the following command from " "the runway directory:\n\n\t" "bin/bash_on_current_container.sh")