Helper package to make running Ansible a bit smoother
Project description
ansible_please
Helper package to make running Ansible a bit smoother
- Run Ansible tasks and playbooks from python with ease!
Installation
To install python package from pypi:
python -m pip install ansible-please
From source:
python setup.py install
To install ansible plugins, like docker_container
ansible-galaxy collection install community.docker
Overview
Main Components:
-
Inventory - Handles ansible inventory creation from input:
- Basic input:
hosts: master_host: - 'localhost' host_info: '127.0.0.1': 'python_path': /usr/bin/python3
-
AnsibleTask - Handles individual ansible task creation
- Docker Task creation
from ansible_please.task_templates.docker_container import DockerContainer docker_container_task = DockerContainer( task_description="start-test-redis", name="test-redis", image="redis:latest", )
- converts to yaml:
- name: '[up] start-test-redis' docker_container: name: test-redis image: redis:latest user: nobody keep_volumes: false detach: true tty: false interactive: false network_mode: host container_default_behavior: compatibility tags: - up
- converts to yaml:
up
to start the container,down
to tear it down
- Docker Task creation
-
Playbook - Handles playbook creation
from ansible_please.playbook import Playbook p = Playbook(name="Set up master_host", hosts="master_host", tasks=[docker_container_task.up(), docker_container_task.down()])
- converts to yaml:
- name: Set up master_host hosts: master_host gather_facts: true tasks: - name: '[up] start-test-redis' docker_container: name: test-redis image: redis:latest user: nobody keep_volumes: false detach: true tty: false interactive: false network_mode: host container_default_behavior: compatibility tags: - up - name: '[down] start-test-redis' docker_container: name: test-redis state: absent user: nobody keep_volumes: false detach: true tty: false interactive: false network_mode: host container_default_behavior: compatibility tags: - down
- converts to yaml:
-
AnsibleRunner - main handler for running playbooks
r = AnsibleRunner(playbook=p, input_path="test_input.yml") # or pass in Inventory class r.up()
Free software: MIT license
Documentation: https://ansible-please.readthedocs.io.
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.0 (2020-12-22)
- First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ansible_please-0.1.20.tar.gz
(20.5 kB
view hashes)
Built Distributions
ansible_please-0.1.20-py3.9.egg
(30.0 kB
view hashes)
Close
Hashes for ansible_please-0.1.20-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d11a7d1ce5745612627c44271f66a9f0bd5a13501fdbdc8b69866c949e3461c0 |
|
MD5 | 3d719b8b354aca69d65c3a69e1c91eb5 |
|
BLAKE2b-256 | 1cefb5f1c8ac6b00e47ec447ace9f175f444ea7927636f257c4eaf325436f8de |