diff --git a/docs/install.rst b/docs/install.rst index 765f8cfdd..bc70ab455 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -58,23 +58,24 @@ To deactivate the conda environment:: source deactivate -Easy deployment of viral-ngs for Broad Institute users ------------------------------------------------------- +Easy deployment script for viral-ngs +------------------------------------ -**viral-ngs** can be deployed on the Broad Institute cluster with help from the script, ``easy-deploy-broad/easy-deploy-viral-ngs-broad.sh``. This script will install an independent copy of viral-ngs from the latest source, install all dependencies, and make it simple to activate the viral-ngs environment and create projects. +**viral-ngs** can be deployed with help from the script, ``easy-deploy/easy-deploy-viral-ngs.sh``. This script will install an independent copy of viral-ngs from the latest source, install all dependencies, and make it simple to activate the viral-ngs environment and create projects. +One-line install command +~~~~~~~~~~~~~~~~~~~~~~~~~ -Dependencies -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This one-line command will install viral-ngs on a 64-bit macOS or Linux system:: -The script, easy-deploy-viral-ngs-broad.sh, is intended to run on the Broad Institute cluster. It depends on the resources present on the Broad cluster (notably GATK) and will not function properly in a different environment. + ./easy-deploy-script/easy-deploy-viral-ngs.sh setup -One-line install command -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +One-line install command for Broad Institute users +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This one-line command will download the ``easy-deploy-viral-ngs-broad.sh`` script and setup viral-ngs in the current working directory. Simply ssh to one of the login nodes and paste this command:: +This one-line command will download the ``easy-deploy-viral-ngs.sh`` script and setup viral-ngs in the current working directory. Simply ssh to one of the Broad login nodes and paste this command:: - wget https://raw.githubusercontent.com/broadinstitute/viral-ngs/master/easy-deploy-broad/easy-deploy-viral-ngs-broad.sh && chmod a+x ./easy-deploy-viral-ngs-broad.sh && reuse UGER && qrsh -cwd -N "viral-ngs_deploy" -q interactive ./easy-deploy-viral-ngs-broad.sh setup + wget https://raw.githubusercontent.com/broadinstitute/viral-ngs/master/easy-deploy-script/easy-deploy-viral-ngs.sh && chmod a+x ./easy-deploy-viral-ngs.sh && reuse UGER && qrsh -cwd -N "viral-ngs_deploy" -q interactive ./easy-deploy-viral-ngs.sh setup **Note:** The script will run the install on a UGER interactive node, so you must have the ability to create to start a new interactive session. A project can be specified via ``qrsh -P ""`` @@ -83,7 +84,7 @@ Usage **Installation** -* ``easy-deploy-viral-ngs-broad.sh setup`` Installs a fresh copy of viral-ngs, installs all dependencies, and creates a directory, ``viral-ngs-etc/``, in the current working directory. +* ``easy-deploy-viral-ngs.sh setup`` Installs a fresh copy of viral-ngs, installs all dependencies, and creates a directory, ``viral-ngs-etc/``, in the current working directory. Resulting directories:: @@ -93,11 +94,11 @@ Resulting directories:: **Activating the environment** -* ``source easy-deploy-viral-ngs-broad.sh load`` Loads the dotkits needed by viral-ngs and activates the Python virtual environment +* ``source easy-deploy-viral-ngs.sh load`` Loads the dotkits needed by viral-ngs and activates the Python virtual environment **Creating a project directory** -* ``easy-deploy-viral-ngs-broad.sh create-project `` Creates a directory for a new Snakemake-compatible project, with data directories and symlinked run scripts. Copies in the files ``Snakefile`` and ``config.yaml`` +* ``easy-deploy-viral-ngs.sh create-project `` Creates a directory for a new Snakemake-compatible project, with data directories and symlinked run scripts. Copies in the files ``Snakefile`` and ``config.yaml`` Resulting directories:: @@ -180,7 +181,7 @@ after the fact via ``rsync``. Running Easy Deploy ~~~~~~~~~~~~~~~~~~~ -Running Easy Deploy to create a virtualized viral-ngs environment is as simple as running ``easy-deploy/run.sh``. Before running this script, copy any data you wish to have in the vm to the ``easy-deploy/data`` directory on your local machine. During setup, the +Running Easy Deploy to create a virtualized viral-ngs environment is as simple as running ``easy-deploy-virtualized/run.sh``. Before running this script, copy any data you wish to have in the vm to the ``easy-deploy-virtualized/data`` directory on your local machine. During setup, the files will be copied into the ``~/data/`` directory of virtual machine. To start, the script ``run.sh`` installs the necessary dependencies on the user's machine (ansible, vagrant, virtualbox, and virtualbox-aws). The provisioning is handled by Ansible, with Vagrant handling creation of the VMs and EC2 instances. On OSX it depends on Homebrew, and will install it if it is not present. It depends on having apt on linux. Ruby >=2.0 is required for vagrant-aws, so versions of Ubuntu older than 15.04 (notably 14.04 LTS) will need to have ruby >=2.0 installed and made default. @@ -190,4 +191,4 @@ Details on Easy Deploy Per the Vagrantfile, local VM RAM usage is set to 8GB. On EC2 it currently uses an m4.2xlarge instance with 32GB of RAM and 8 vCPUs. -Ansible clones the master branch of viral-ngs from GitHub, creates a Python 3 virtual environment, and installs the viral-ngs Python dependencies. The viral-ngs tool unit tests are run to download, install, and build all of the viral-ngs tools. A ``Snakefile`` for viral-ngs is copied to the home directory of the VM (locally: ``/home/vagrant/``, on EC2: `/home/ubuntu/`), along with an associated ``config.yaml`` file. Files to contain sample names (``sample-depletion.txt``, etc.) are also created. A directory is created within the VM, ``~/data/``, to store data to be processed. This directory on the VM is synced to the ``./data/`` directory on the host machine, relative to the location of the ``easy-deploy/Vagrantfile``. On local VMs, syncing of the directory is two-way and fast. On EC2 instances, the syncing is currently one way (local->EC2) due to Vagrant limitations. +Ansible clones the master branch of viral-ngs from GitHub, creates a Python 3 virtual environment, and installs the viral-ngs Python dependencies. The viral-ngs tool unit tests are run to download, install, and build all of the viral-ngs tools. A ``Snakefile`` for viral-ngs is copied to the home directory of the VM (locally: ``/home/vagrant/``, on EC2: `/home/ubuntu/`), along with an associated ``config.yaml`` file. Files to contain sample names (``sample-depletion.txt``, etc.) are also created. A directory is created within the VM, ``~/data/``, to store data to be processed. This directory on the VM is synced to the ``./data/`` directory on the host machine, relative to the location of the ``easy-deploy-virtualized/Vagrantfile``. On local VMs, syncing of the directory is two-way and fast. On EC2 instances, the syncing is currently one way (local->EC2) due to Vagrant limitations. diff --git a/easy-deploy-broad/README.md b/easy-deploy-broad/README.md deleted file mode 100644 index ae9586eaf..000000000 --- a/easy-deploy-broad/README.md +++ /dev/null @@ -1,54 +0,0 @@ -## Easy deployment of viral-ngs for Broad Institute users - -**viral-ngs** can be deployed on the Broad Institute cluster with help from the script in this directory, `easy-deploy-viral-ngs-broad.sh`. This script will install an independent copy of viral-ngs from the latest source, install all dependencies, and make it simple to activate the viral-ngs environment and create projects. - -### Dependencies - -The script, `easy-deploy-viral-ngs-broad.sh`, is intended to run on the Broad Institute cluster. It depends on the dotkits present on the Broad cluster and will not function properly in a different environment. - -### One-line command - -This one-line command will download the `easy-deploy-viral-ngs-broad.sh` script and setup viral-ngs in the current working directory. Simply ssh to one of the login nodes and paste this command: - - wget https://raw.githubusercontent.com/broadinstitute/viral-ngs/master/easy-deploy-broad/easy-deploy-viral-ngs-broad.sh && chmod a+x ./easy-deploy-viral-ngs-broad.sh && reuse UGER && qrsh -cwd -N "viral-ngs_deploy" -q interactive ./easy-deploy-viral-ngs-broad.sh setup - -**Note:** The script will run the install on a UGER interactive node, so you must have the ability to create to start a new interactive session. A project can be specified via `qrsh -P ""` - -### Usage - -* `easy-deploy-viral-ngs-broad.sh setup` Installs a fresh copy of viral-ngs, installs all dependencies, and creates a directory, `viral-ngs-etc`, in the current working directory. - -**Resulting directories**: - -``` -viral-ngs-etc/ - venv/ - viral-ngs/ -``` - -* `source easy-deploy-viral-ngs-broad.sh load` Loads the dotkits needed by viral-ngs and activates the Python virtual environment - -* `easy-deploy-viral-ngs-broad.sh create-project ` Creates a directory for a new Snakemake-compatible project, with data directories and symlinked run scripts. Copies in the files `Snakefile` and `config.yaml` - -**Resulting directories**: - -``` -viral-ngs-etc/ - projects/ - / - Snakefile - bin/ (symlink) - config.yaml - data/ - log/ - reports/ - run-pipe_LSF.sh (symlink) - run-pipe_UGER.sh (symlink) - samples-assembly-failures.txt - samples-assembly.txt - samples-depletion.txt - samples-runs.txt - tmp/ - venv/ (symlink) - [...other project files...] -``` \ No newline at end of file diff --git a/easy-deploy-script/README.md b/easy-deploy-script/README.md new file mode 100644 index 000000000..f5f54742d --- /dev/null +++ b/easy-deploy-script/README.md @@ -0,0 +1,58 @@ +## Easy deployment of viral-ngs for Broad Institute users + +**viral-ngs** can be deployed with help from the script in this directory, `easy-deploy-viral-ngs.sh`. This script will install an independent copy of viral-ngs from the latest source, install all dependencies, and make it simple to activate the viral-ngs environment and create projects. + +### One-line install command + +This one-line command will install viral-ngs on a 64-bit macOS or Linux system: + +``` +./easy-deploy-script/easy-deploy-viral-ngs.sh setup +``` + +### One-line install command for Broad Institute users + +This one-line command will download the `easy-deploy-viral-ngs.sh` script and setup viral-ngs in the current working directory. Simply ssh to one of the login nodes and paste this command: + + wget https://raw.githubusercontent.com/broadinstitute/viral-ngs/master/easy-deploy-script/easy-deploy-viral-ngs.sh && chmod a+x ./easy-deploy-viral-ngs.sh && reuse UGER && qrsh -cwd -N "viral-ngs_deploy" -q interactive ./easy-deploy-viral-ngs.sh setup + +**Note:** The script will run the install on a UGER interactive node, so you must have the ability to create to start a new interactive session. A project can be specified via `qrsh -P ""` + +### Usage + +* `easy-deploy-viral-ngs.sh setup` Installs a fresh copy of viral-ngs, installs all dependencies, and creates a directory, `viral-ngs-etc`, in the current working directory. + +**Resulting directories**: + +``` +viral-ngs-etc/ + venv/ + viral-ngs/ +``` + +* `source easy-deploy-viral-ngs.sh load` Loads the dotkits needed by viral-ngs and activates the Python virtual environment + +* `easy-deploy-viral-ngs.sh create-project ` Creates a directory for a new Snakemake-compatible project, with data directories and symlinked run scripts. Copies in the files `Snakefile` and `config.yaml` + +**Resulting directories**: + +``` +viral-ngs-etc/ + projects/ + / + Snakefile + bin/ (symlink) + config.yaml + data/ + log/ + reports/ + run-pipe_LSF.sh (symlink) + run-pipe_UGER.sh (symlink) + samples-assembly-failures.txt + samples-assembly.txt + samples-depletion.txt + samples-runs.txt + tmp/ + venv/ (symlink) + [...other project files...] +``` \ No newline at end of file diff --git a/easy-deploy-broad/easy-deploy-viral-ngs-broad.sh b/easy-deploy-script/easy-deploy-viral-ngs-broad.sh similarity index 70% rename from easy-deploy-broad/easy-deploy-viral-ngs-broad.sh rename to easy-deploy-script/easy-deploy-viral-ngs-broad.sh index e34ac0eb4..99c84b840 100644 --- a/easy-deploy-broad/easy-deploy-viral-ngs-broad.sh +++ b/easy-deploy-script/easy-deploy-viral-ngs-broad.sh @@ -6,8 +6,22 @@ STARTING_DIR=$(pwd) # way to get the absolute path to this script that should # work regardless of whether or not this script has been sourced -SCRIPT="$(readlink --canonicalize-existing "${BASH_SOURCE[0]}")" -SCRIPTPATH="$(dirname "$SCRIPT")" +# Find original directory of bash script, resovling symlinks +# http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in/246128#246128 +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + if [[ "$OSTYPE" == "darwin"* ]]; then + SOURCE="$(readlink "$SOURCE")" + else + SOURCE="$(readlink -f "$SOURCE")" + fi + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +SCRIPT=$SOURCE +SCRIPT_DIRNAME="$(dirname "$SOURCE")" +SCRIPTPATH="$(cd -P "$(echo $SCRIPT_DIRNAME)" &> /dev/null && pwd)" +SCRIPT="$SCRIPTPATH/$(basename "$SCRIPT")" CONDA_PREFIX_LENGTH_LIMIT=80 @@ -86,41 +100,58 @@ function set_locale(){ export LC_ALL="$1" } -set_locale "en_US.utf8" - -function load_dotkits(){ - source /broad/software/scripts/useuse - - if [ -z "$NOVOALIGN_PATH" ]; then - reuse .novocraft-3.02.08 || true - export NOVOALIGN_PATH="$(dirname $(which novoalign))" - else - echo "NOVOALIGN_PATH is set to '$NOVOALIGN_PATH'" - echo "Continuing..." - fi -} +if [[ "$OSTYPE" == "darwin"* ]]; then + set_locale "en_US.UTF-8" +else + set_locale "en_US.utf8" +fi function install_miniconda(){ if [ -d "$MINICONDA_PATH/bin" ]; then echo "Miniconda directory exists." - else - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -P $(dirname $MINICONDA_PATH)/ - chmod +x $(dirname $MINICONDA_PATH)/Miniconda3-latest-Linux-x86_64.sh - $(dirname $MINICONDA_PATH)/Miniconda3-latest-Linux-x86_64.sh -b -f -p "$MINICONDA_PATH" + echo "Downloading and installing Miniconda..." + + if [[ "$(python -c 'import sys; print(sys.version_info[0])')" == 2* ]]; then + if [[ "$(python -c 'import os; print(os.uname()[0])')" == "Darwin" ]]; then + miniconda_url=https://repo.continuum.io/miniconda/Miniconda-latest-MacOSX-x86_64.sh + else + miniconda_url=https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh + fi + else + if [[ "$(python -c 'import os; print(os.uname()[0])')" == "Darwin" ]]; then + miniconda_url=https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh + else + miniconda_url=https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh + fi + fi + + wget $miniconda_url -O Miniconda3-latest-x86_64.sh -P $(dirname $MINICONDA_PATH)/ - rm $(dirname $MINICONDA_PATH)/Miniconda3-latest-Linux-x86_64.sh + chmod +x $(dirname $MINICONDA_PATH)/Miniconda3-latest-x86_64.sh + $(dirname $MINICONDA_PATH)/Miniconda3-latest-x86_64.sh -b -f -p "$MINICONDA_PATH" + + rm $(dirname $MINICONDA_PATH)/Miniconda3-latest-x86_64.sh fi - echo "Prepending miniconda to PATH..." - export PATH="$MINICONDA_PATH/bin:$PATH" - hash -r - # update to the latest conda this way, since the shell script - # is often months out of date - conda update -y conda + if [ -d "$MINICONDA_PATH/bin" ]; then + echo "Miniconda installed." + + echo "Prepending miniconda to PATH..." + export PATH="$MINICONDA_PATH/bin:$PATH" + hash -r + + # update to the latest conda this way, since the shell script + # is often months out of date + conda update -y conda + else + echo "It looks like the Miniconda installation failed" + exit 1 + fi } function create_project(){ + echo "Populating project directory..." # first arg is project folder name starting_dir=$(pwd) @@ -146,23 +177,8 @@ function create_project(){ } function activate_env(){ - if [ -d "$VIRAL_CONDA_ENV_PATH" ]; then - source activate $VIRAL_CONDA_ENV_PATH - else - echo "$VIRAL_CONDA_ENV_PATH/ does not exist. Exiting." - cd $STARTING_DIR - return 1 - fi -} - -function activate_environment(){ - load_dotkits - install_miniconda - - echo "$SCRIPTPATH/$CONTAINING_DIR" if [ -d "$SCRIPTPATH/$CONTAINING_DIR" ]; then cd $SCRIPTPATH - echo "Activating environment" else echo "viral-ngs parent directory not found: $CONTAINING_DIR not found." echo "Have you run the setup?" @@ -171,7 +187,14 @@ function activate_environment(){ return 1 fi - activate_env + if [ -d "$VIRAL_CONDA_ENV_PATH" ]; then + echo "Activating viral-ngs environment..." + source activate $VIRAL_CONDA_ENV_PATH + else + echo "$VIRAL_CONDA_ENV_PATH/ does not exist. Exiting." + cd $STARTING_DIR + return 1 + fi } function print_usage(){ @@ -197,7 +220,6 @@ else mkdir -p $SCRIPTPATH/$CONTAINING_DIR cd $SCRIPTPATH/$CONTAINING_DIR - load_dotkits install_miniconda if [ ! -d "$VIRAL_CONDA_ENV_PATH" ]; then @@ -235,18 +257,35 @@ else # get the version of gatk expected based on the installed conda package EXPECTED_GATK_VERSION=$(conda list | grep gatk | awk -F" " '{print $2}') - GATK_JAR_PATH=$(ls /humgen/gsa-hpprojects/GATK/bin &> /dev/null && find /humgen/gsa-hpprojects/GATK/bin/GenomeAnalysisTK-$EXPECTED_GATK_VERSION-* -maxdepth 0 -type d)/GenomeAnalysisTK.jar + if [ -z "$GATK_JAR_PATH" ]; then + # if the env var is not set, try to get the jar location using the default Broad path + + if [ "$DOMAINNAME" == "broadinstitute.org" ]; then + echo "This script is being run on a Broad Institute system." + echo "Trying to find GATK..." + export GATK_JAR_PATH=$(ls /humgen/gsa-hpprojects/GATK/bin &> /dev/null && find /humgen/gsa-hpprojects/GATK/bin/GenomeAnalysisTK-$EXPECTED_GATK_VERSION-* -maxdepth 0 -type d)/GenomeAnalysisTK.jar + fi + fi - # if the gatk jar file exists, export its path to an environment variable + # if the gatk jar file exists, call gatk-register if [ -e "$GATK_JAR_PATH" ]; then echo "GATK found: $GATK_JAR_PATH" - export GATK_JAR=$GATK_JAR_PATH + gatk-register $GATK_JAR_PATH else echo "GATK jar could not be found on this system for GATK version $EXPECTED_GATK_VERSION" - exit 1 + echo "Please activate the viral-ngs conda environment and 'gatk-register /path/to/GenomeAnalysisTK.jar'" + exit 0 + fi + + echo "" + if [ ! -z "$NOVOALIGN_PATH" ]; then + novoalign-license-register "$NOVOALIGN_PATH/novoalign.lic" + elif [ ! -z "$NOVOALIGN_LICENSE_PATH" ]; then + novoalign-license-register "$NOVOALIGN_LICENSE_PATH" + else + echo "No Novoalign license found via NOVOALIGN_PATH or NOVOALIGN_LICENSE_PATH" + echo "Please activate the viral-ngs conda environment and run 'novoalign-license-register /path/to/novoalign.lic'" fi - - gatk-register $GATK_JAR echo "Setup complete. Do you want to start a project? Run:" echo "$0 create-project " @@ -267,7 +306,7 @@ else echo "ABORTING. $(basename $SCRIPT) must be sourced." echo "Usage: source $(basename $SCRIPT) load" else - activate_environment + activate_env ls -lah return 0 fi diff --git a/easy-deploy-virtualized/.vagrant/machines/default/aws/action_provision b/easy-deploy-virtualized/.vagrant/machines/default/aws/action_provision new file mode 100644 index 000000000..5101c1e24 --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/machines/default/aws/action_provision @@ -0,0 +1 @@ +1.5:i-d1b72352 \ No newline at end of file diff --git a/easy-deploy-virtualized/.vagrant/machines/default/aws/creator_uid b/easy-deploy-virtualized/.vagrant/machines/default/aws/creator_uid new file mode 100644 index 000000000..dce226312 --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/machines/default/aws/creator_uid @@ -0,0 +1 @@ +1599212404 \ No newline at end of file diff --git a/easy-deploy-virtualized/.vagrant/machines/default/aws/id b/easy-deploy-virtualized/.vagrant/machines/default/aws/id new file mode 100644 index 000000000..c67bdf377 --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/machines/default/aws/id @@ -0,0 +1 @@ +i-d1b72352 \ No newline at end of file diff --git a/easy-deploy-virtualized/.vagrant/machines/default/aws/index_uuid b/easy-deploy-virtualized/.vagrant/machines/default/aws/index_uuid new file mode 100644 index 000000000..738fa3d3d --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/machines/default/aws/index_uuid @@ -0,0 +1 @@ +c22bfdc5aee04ca3956adb52054fc831 \ No newline at end of file diff --git a/easy-deploy-virtualized/.vagrant/machines/default/aws/synced_folders b/easy-deploy-virtualized/.vagrant/machines/default/aws/synced_folders new file mode 100644 index 000000000..083552fab --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/machines/default/aws/synced_folders @@ -0,0 +1 @@ +{"rsync":{"/home/ubuntu/data":{"create":true,"type":"rsync","guestpath":"/home/ubuntu/data","hostpath":"/Users/tomkinsc/git-repositories/viral-ngs/easy-deploy/data","disabled":false,"__vagrantfile":true,"owner":"ubuntu","group":"ubuntu"}}} \ No newline at end of file diff --git a/easy-deploy-virtualized/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory b/easy-deploy-virtualized/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory new file mode 100644 index 000000000..ee059f2db --- /dev/null +++ b/easy-deploy-virtualized/.vagrant/provisioners/ansible/inventory/vagrant_ansible_inventory @@ -0,0 +1,3 @@ +# Generated by Vagrant + +default ansible_ssh_host=ec2-52-91-231-246.compute-1.amazonaws.com ansible_ssh_port=22 ansible_ssh_user='ubuntu' ansible_ssh_private_key_file='/Users/tomkinsc/Downloads/tomkinsc_us-east.pem' diff --git a/easy-deploy/Vagrantfile b/easy-deploy-virtualized/Vagrantfile similarity index 100% rename from easy-deploy/Vagrantfile rename to easy-deploy-virtualized/Vagrantfile diff --git a/easy-deploy/ansible-playbook.retry b/easy-deploy-virtualized/ansible-playbook.retry similarity index 100% rename from easy-deploy/ansible-playbook.retry rename to easy-deploy-virtualized/ansible-playbook.retry diff --git a/easy-deploy/ansible-playbook.yml b/easy-deploy-virtualized/ansible-playbook.yml similarity index 100% rename from easy-deploy/ansible-playbook.yml rename to easy-deploy-virtualized/ansible-playbook.yml diff --git a/easy-deploy/ansible.cfg b/easy-deploy-virtualized/ansible.cfg similarity index 100% rename from easy-deploy/ansible.cfg rename to easy-deploy-virtualized/ansible.cfg diff --git a/easy-deploy/conda_setup.sh b/easy-deploy-virtualized/conda_setup.sh similarity index 100% rename from easy-deploy/conda_setup.sh rename to easy-deploy-virtualized/conda_setup.sh diff --git a/easy-deploy/data/README.txt b/easy-deploy-virtualized/data/README.txt similarity index 100% rename from easy-deploy/data/README.txt rename to easy-deploy-virtualized/data/README.txt diff --git a/easy-deploy/run.sh b/easy-deploy-virtualized/run.sh similarity index 100% rename from easy-deploy/run.sh rename to easy-deploy-virtualized/run.sh diff --git a/easy-deploy/venv_exec.j2 b/easy-deploy-virtualized/venv_exec.j2 similarity index 100% rename from easy-deploy/venv_exec.j2 rename to easy-deploy-virtualized/venv_exec.j2