Giter Club home page Giter Club logo

ansible-dev-tools's Introduction

Ansible Development Tools (ADT)

The ansible-dev-tools python package provides an easy way to install and discover the best tools available to create and test ansible content.

The curated list of tools installed as part of the Ansible automation developer tools package includes:

ansible-core: Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems.

ansible-builder: Ansible Builder is a tool that automates the process of building execution environments using the schemas and tooling defined in various Ansible Collections and by the user.

ansible-creator: The fastest way to generate all your ansible content!

ansible-lint: Checks playbooks for practices and behavior that could potentially be improved.

ansible-navigator A text-based user interface (TUI) for Ansible.

ansible-sign: Utility for signing and verifying Ansible project directory contents.

molecule: Molecule aids in the development and testing of Ansible content: collections, playbooks and roles

pytest-ansible: A pytest plugin that enables the use of ansible in tests, enables the use of pytest as a collection unit test runner, and exposes molecule scenarios using a pytest fixture.

tox-ansible: The tox-ansible plugin dynamically creates a full matrix of python interpreter and ansible-core version environments for running integration, sanity, and unit for an ansible collection both locally and in a Github action. tox virtual environments are leveraged for collection building, collection installation, dependency installation, and testing.

ansible-dev-environment: A pip-like install for Ansible collections.

Installation

python3 -m pip install ansible-dev-tools

Usage

In addition to installing each of the above tools, ansible-dev-tools provides an easy way to show the versions of the content creation tools that make up the current development environment.

$ adt --version
ansible-builder                          <version>
ansible-core                             <version>
ansible-creator                          <version>
ansible-dev-environment                  <version>
ansible-dev-tools                        <version>
ansible-lint                             <version>
ansible-navigator                        <version>
ansible-sign                             <version>
molecule                                 <version>
pytest-ansible                           <version>
tox-ansible                              <version>

Developer Notes

The ansible-dev-tools package also offers an Ansible Devtools server which can be launched with adt server. Currently, this server only supports REST APIs for ansible-creator.

Refer to the server code for available endpoints.

Note: This is primarily for backend integrations and is not intended to be an user-facing functionality.

Documentation

For more information, please visit our documentation page.

ansible-dev-tools's People

Contributors

audgirka avatar cidrblock avatar cristianonicolai avatar dependabot[bot] avatar kb-perbyte avatar kdelee avatar nilashishc avatar pre-commit-ci[bot] avatar priyamsahoo avatar qalthos avatar shatakshiiii avatar ssbarnea avatar tima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ansible-dev-tools's Issues

Testing a user-facing role within a collection

This will live in the User Guide page.

Testing a user-facing role within a collection
Use molecule to write a test, wrap molecule with pytest-ansible parameterization, use tox-ansible to run the scenario across all current python/ansible core versions

User Guide Docs

User Guide will have two sections:

  • links to tool docs etc. Link to the ecosystem docs and each repo
  • Common operations using 2 or more tools (cross tools)

Cross tool Common operations are described in the task list.

Tasks

Set up CI

This will live in the User Guide page.

Set up CI
Use the monolithic github action as a PR gate to set up a repo for running unit, sanity, lint

Testing roles

Testing roles

  • Molecule
  • wrap molecule with pytest-ansible parameterization
  • tox-ansible to run the scenario across all current python/ansible core versions

Home Page

Ansible Developer Tools (brief - this is the documentation home page)

  • (highlight) Single point for installation
  • (highlight) Combination of tools vetted and used by previous content authors
  • (highlight) The SDK reflects the tools used by certified and validated content developers
  • (highlight) Introduces tools that a developer may be less familiar with
  • (tools - what and how they are used together and for what purpose)
  • (author) 1-2 paragraphs for each tool highlighting key functionality, can probably be harvested from existing READMEs and dos.
  • Identify how each tool is valuable during local interactive development, local testing. and then in a CI pipeline (linting and testing)
  • (highlight) Same tools and outcomes locally and in CI
  • (note) include the extension in the enumeration of the tools. Although it is not packaged with the python of rpm pkg, it is an integral part of the experience

Name change `ansible-dev-tools`

The CLI will change to adt

Referred to formally as Ansible automation developer tools

Delete the 1.0.0 release and tag, leaving that for January

Releases before then should < 1.0.0

Please sort list of tools

- [ansible-core](https://github.com/ansible/ansible): Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems.

Contributor Guide

Contributor Guide

  • Code of conduct and general how to contribute to the project.
  • Communications channels (matrix, forum, meetings etc)
  • Developer/ PR guidelines (if needed)

Bootstrap a new collection

This will live in the User Guide page.
Bootstrap a new collection
Use of creator to scaffold, ade (pip4a) to install it editable with python deps in a venv, use the extension with lint to author, playbook or navigator to run

Install docs are incorrect currently

The docs for ansible-dev-tools appears temporarily incorrect since there's not a release on pypi marked stable, the command pip install ansible-dev-tools fails, but pip install ansible-dev-tools==0.2.0a0 is successful.

Introduction / README

Ansible developers tools (ansible-dev-tools) is an opinionated collection of tools that enable automation developers to create and test Ansible automation quickly and effectively. To clearly communicate what tools are available and support these objectives, the tools that makeup the ansible-dev-tools should be easy to install with one command.

The tools in the initial release of the ansible-dev-tools will be:

  • ansible-lint (Ansible lint)
  • molecule (Ansible Molecule)
  • ansible-navigator (automation content navigator)
  • pytest-ansible plugin
  • tox-ansible plugin
  • ade (Ansible development environment formerly pip4a)
  • ansible-builder (execution environment builder)**
  • ansible-sign
  • ansible-creator (Ansible creator)
  • Documentation to include the extension, even though it is not co-packaged

Ensuring content best practices

This will live in the User Guide page.

Ensuring content best practices
Add a “regular” tox entry for lint, and use tox to run it, run sanity tests using tox-ansible

Build initial project and dependencies

Lay down the framework for a new python project

Deps:

ansible-lint
ansible-navigator
molecule
ansible-builder
pytest-ansible
tox-ansible
scaffolding tool (future)

Publishing a collection

This will live in the User Guide page.

Publishing a collection
Use the monolithic github action to push to galaxy, mention AH token refresh and how to set that up.

Installation Guide

Installation

  • Install, uninstall
  • Upgrade - porting guide/changelogs (Github generated/ point to releases)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.