Skip to main content

AnsibleSpawner

GitHub Workflow codecov

Spawn JupyterHub single user notebook servers using Ansible.

This spawner runs Ansible playbooks to start, manage and stop JupyterHub singleuser servers. This means any Ansible module can be used to orchestrate your singleuser servers, including Docker and many public/private clouds, and other infrastructure platforms supported by the community. You can do things like create multiple storage volumes for each user, or provision additional services on other containers/VMs.

Prerequisites

Python 3.6 or above and JupyterHub 1.0.0 or above are required.

Installation

Configuration

Example jupyterhub_config.py spawner configuration.

ansible_path = "/path/to/"
c.JupyterHub.spawner_class = "ansible"
c.AnsibleSpawner.inventory = ansible_path + "inventory.yml.j2"
c.AnsibleSpawner.create_playbook = ansible_path + "create.yml"
c.AnsibleSpawner.update_playbook = ansible_path + "update.yml"
c.AnsibleSpawner.poll_playbook = ansible_path + "poll.yml"
c.AnsibleSpawner.destroy_playbook = ansible_path + "destroy.yml"
c.AnsibleSpawner.playbook_vars = {
    "container_image": "docker.io/jupyter/base-notebook",
    "ansible_python_interpreter": "python3",
}
c.AnsibleSpawner.start_timeout = 600
c.JupyterHub.hub_connect_ip = "10.0.0.1"

See the example playbooks under ./examples

Development

Pytest is used to run automated tests that require Docker and Podman. These platforms were chosen because they are self-contained and can be installed in Travis, whereas testing with public cloud platforms requires secure access credentials.

If you only have one of these you can limit tests by specifying a marker. For example, to disable the Docker tests:

pytest -vs -m "not docker"

To view test coverage run pytest with --cov=ansiblespawner --cov-report=html, then open htmlcov/index.html.

setuptools-scm is used to manage versions. Just create a git tag.

Metadata

Release files for ansiblespawner 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ansiblespawner 0.0.1
File Size Uploaded
ansiblespawner-0.0.1.tar.gz 21.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ansiblespawner 0.0.1
File Interpreter ABI Platform
ansiblespawner-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 29.9 kB

Release files / ansiblespawner-0.0.1.tar.gz

Download URL ansiblespawner-0.0.1.tar.gz
Size 21.4 kB
Tags Source
SHA-256 checksum
How to use checksums
379ef5b0a0d125dfdf4248e8446775479669c45a5af3763b6b8bc810b6728d1e
BLAKE2b-256 checksum
How to use checksums
11bd02a170729b416a51dcdc3cda8c6c617f85e5693582203b1f673c7e0e40a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

Release files / ansiblespawner-0.0.1-py3-none-any.whl

Download URL ansiblespawner-0.0.1-py3-none-any.whl
Size 8.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f9a484a03f3143eaa965f16ba426964c047f7d0eeb622c4ab6a82a19994b593d
BLAKE2b-256 checksum
How to use checksums
b71142915662cd32c7fbd0adc202640c1924e400195026534ee18e02bbc22415
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page