This role installes the Continuum Anaconda distribution with all its packages (aka Anaconda, ~500 MB installer, ~3 GB installed) or just the conda package manager and Python (aka Miniconda, ~40 MB installer, ~400 MB installed).
You choose your desired version of Python and Anaconda by choosing a propper installer-file. Installer-files follow a schema: (Ana|Mini)conda<Python-major-version>-<Distribution-version>-<Platform>.sh
Examples:
Miniconda3-4.3.21-Linux-x86_64.sh
installs the conda package manager and Python-3.x from the distribution version 3.4.21 on 64-bit GNU/Linux.
Anaconda2-4.4.0-Linux-x86.sh
installs the full distribution version 4.4.0 with Python-2.x on 32-bit GNU/Linux.
Online resource for Installer-files:
If you do not provide a installer file, you get a Miniconda installation with Python3 for x86_64 systems. See role defaults for details.
It is possible to install Miniconda and run conda install anaconda
afterwards to get the full Ananconda distribution.
Be aware that this role sets the path to the Anaconda distribution at the beginning of $PATH
in a global way for bash/ksh/zsh/ash (e.g. /etc/bash.bashrc.local
) by default. Keep that in mind if your system depends on a specific python version. Set anaconda_set_path
to False
and handle $PATH
by your own if you don't like this.
The installer-file will reside in anaconda_home_dir
to detect version changes. Despite the fact, that you can up/downgrade your Anaconda distribution with the conda package manager, a full reinstall (uninstall first, new install afterwards) will be performed if the installer-file or anaconda_installer_uri
change. As long as you don't change anaconda_installer_uri
and the installer-file, your Anaconda installation will not be changed.
This role should be almost OS-agnostic as long as you provide a suitable installer file and the target is a Unix-like system.
The target hosts need access to anaconda_installer_uri
resource. But this can be a local resource on the target host with file:///tmp/foo
. So a full offline installation can be done in a short playbook.
parameter | required | default | choices | comments |
---|---|---|---|---|
anaconda_state | no | present |
present , absent |
Desired state of the Anaconda distribution. If absent , it tries to remove the Anaconda path from $PATH . |
anaconda_home_dir | no | /opt/anaconda |
Path to Anaconda installation. | |
anaconda_installer_uri | no | see defaults | URI to the installer file. Use https:// for remote or file:// for local files on the target host. The target host requires access to that file. See above for online resources. |
|
anaconda_installer_md5 | no | see defaults | The md5 checksum of the installer file. See above for online resources. | |
anaconda_installer_dir | no | anaconda_home_dir |
Destination folder for downloading the installer-file. If it's not anaconda_home_dir it will not be removed when state = absent . |
|
anaconda_force_install | no | False | boolean | Run installer even if the installer-file is unchanged and Anaconda seems to be installed. |
anaconda_set_path | no | True | boolean | Adds Anaconda's path to the beginning of $PATH for all bash/ksh/zsh/ash login shells. See above for details. |
# installs Miniconda
- host: python-dev-host
roles:
- ansible-role-anaconda
# installes full Anaconda with Python 2.x into /usr/local/ but don't touch $PATH
- host: python-dev-host
roles:
- role: ansible-role-anaconda
anaconda_installer_uri: https://repo.continuum.io/archive/Anaconda2-4.4.0-Linux-x86_64.sh
anaconda_installer_md5: d72add23bc937ccdfc7de4f47deff843
anaconda_home_dir: /usr/local
anaconda_set_path: False
# removes anacona from its default home_dir and removes it from $PATH
- host: python-dev-host
roles:
- { role: ansible-role-anaconda, anaconda_state: absent }
bzip2 to extract installer-file.