A role for deploying and configuring miniconda and extensions on unix hosts using Ansible.
It can additionally be used as a playbook for quickly provisioning hosts.
Vagrant machines are provided to produce a boxed install of miniconda or a VM for integration testing.
Using Ansible Galaxy:
$ ansible-galaxy install robinandeer.minicondaAnd add it to your play's roles:
- hosts: ...
roles:
- robinandeer.miniconda
- ...Clone this repo into your roles directory:
$ git clone https://github.com/robinandeer/ansible-miniconda.git roles/minicondaAnd add it to your play's roles:
- hosts: ...
roles:
- miniconda
- ...This roles comes preloaded with multiple available defaults. You can override each one in your hosts/group vars, in your inventory, or in your play. See the annotated defaults in defaults/main.yml for help in configuration. All provided variables start with miniconda_.
You can also use the role as a playbook. You will be asked which hosts to provision, and you can further configure the play by using --extra-vars.
$ ansible-playbook -i inventory --extra-vars='{...}' main.ymlTo provision a standalone miniconda box, start the boxed VM, which is a Ubuntu 12.04 box:
$ vagrant up boxedYou will find miniconda listening on the VM's $port port on address 192.168.33.20 in the private network. You can then connect to it as any user. Please note that this is highly insecure, so if you're going to publish this VM you'll want to provide actual authentication.
Run the tests by provisioning the appropriate VM:
$ vagrant up test-ubuntu-preciseAt the moment, ubuntu-precise is the only test VM available.
- Koji Tanaka (kjtanaka)
I took on the challenge to write my own distributable Ansible role to learn more about the tool. As such, I've taken in extensive inspiration from the following projects:
- SciLifeLab/deployment for the included miniconda role
- nicholsn/ansible-role-miniconda
- zenoamaro/ansible-role-template as a base role template
- Avoid re-download of installer if conda exists
- only update conda when initially installing miniconda
- use
lininfileto add miniconda to$PATH
- add option to specify rcfile to modify
$PATH
- add option to modify
.bashrc - add option to add
.condarcto the system
- Initial version.