|
@@ -1,2 +1,65 @@
|
|
-# ansible-role-anaconda
|
|
|
|
|
|
+ansible-role-anaconda
|
|
|
|
+========
|
|
|
|
+This role installes the [Continuum Anaconda](https://www.continuum.io/anaconda-overview) 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:
|
|
|
|
+- Anaconda: https://repo.continuum.io/archive/
|
|
|
|
+- Miniconda: https://repo.continuum.io/miniconda/
|
|
|
|
+
|
|
|
|
+If you do not provide a installer file, you get a Miniconda installation with Python3 for x86_64 systems. See [role defaults](defaults/main.yml) 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.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Requirements
|
|
|
|
+------------
|
|
|
|
+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.
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Role Variables
|
|
|
|
+--------------
|
|
|
|
+| 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](defaults/main.yml) | | 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](defaults/main.yml) | | The md5 checksum of the installer file. See above for online resources. |
|
|
|
|
+| 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. |
|
|
|
|
+
|
|
|
|
+Example playbooks
|
|
|
|
+-----------------
|
|
|
|
+ # 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 }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+Dependencies
|
|
|
|
+------------
|
|
|
|
+None.
|