Ansible website screenshot

Ansible

Ansible is an open-source IT automation platform developed by Red Hat that provides agentless configuration management, application deployment, cloud provisioning, and orchestration. Using YAML-based playbooks and an SSH-native architecture, Ansible automates infrastructure at scale without requiring agents or custom security infrastructure on managed nodes.

4 APIs 6 Features
AnsibleAutomationConfiguration ManagementDevOpsInfrastructure As CodeOpen SourceOrchestrationRed Hat

APIs

Ansible Automation Platform API

RESTful API for Ansible Automation Platform (formerly Ansible Tower) that provides programmatic access to job templates, inventories, credentials, workflow templates, schedules,...

AWX API

AWX is the open-source upstream project for Ansible Automation Platform, providing a web-based UI, REST API, and task engine for Ansible under the Apache 2.0 license. The AWX AP...

Ansible Galaxy API

REST API for Ansible Galaxy — the community hub for sharing and downloading Ansible roles and collections. The v1 API covers roles and the v3 API covers collections with namespa...

Ansible Automation Hub API

The Red Hat Ansible Automation Hub API provides access to certified Ansible collections and roles curated by Red Hat and partners. Available through console.redhat.com, it serve...

Collections

Pricing Plans

Ansible Plans Pricing

3 plans

PLANS

Rate Limits

Ansible Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Agentless Architecture

Ansible connects to managed nodes via SSH or WinRM without requiring any agent software, simplifying deployment and reducing attack surface.

YAML Playbooks

Automation is defined in human-readable YAML playbooks that describe the desired state of managed systems without complex programming.

Idempotent Execution

Ansible tasks are idempotent — running the same playbook multiple times produces the same result, making deployments safe to rerun.

Module Ecosystem

Over 3,000 built-in modules covering cloud providers, network devices, databases, containers, storage, and operating system tasks.

Collection System

The Ansible Collections packaging format bundles related modules, roles, plugins, and documentation for modular content distribution.

Dynamic Inventory

Query cloud providers, CMDBs, and external systems dynamically to build host inventories at execution time rather than static files.

Use Cases

Configuration Management

Ensure servers and services remain in a consistent desired state by applying configuration playbooks across fleets of hosts.

Application Deployment

Deploy and update applications across development, staging, and production environments with zero-downtime rolling strategies.

Cloud Provisioning

Provision cloud resources on AWS, Azure, GCP, and other providers using cloud-specific Ansible modules and dynamic inventory.

Network Automation

Configure routers, switches, and firewalls from Cisco, Juniper, Arista, and Palo Alto using vendor-specific Ansible collections.

Security and Compliance

Enforce security baselines, CIS benchmarks, and STIG compliance across infrastructure using Ansible hardening playbooks.

Integrations

Red Hat Enterprise Linux

Ansible is the primary configuration management tool for Red Hat Enterprise Linux systems with deep integration into the RHEL platform.

Kubernetes / OpenShift

Manage Kubernetes clusters, namespaces, deployments, and OpenShift workloads using the kubernetes.core collection.

Terraform

Combine Terraform for cloud resource provisioning with Ansible for post-provisioning OS and application configuration.

Jenkins / GitHub Actions

Integrate Ansible playbook execution into CI/CD pipelines using the AAP Action for GitHub or Ansible Tower Plugin for Jenkins.

ServiceNow

Trigger Ansible automation from ServiceNow ITSM workflows using the ServiceNow ITX collection for change management automation.

Semantic Vocabularies

Ansible Context

4 classes · 10 properties

JSON-LD

JSON Structure

Ansible Playbook Structure

10 properties

JSON STRUCTURE

Example Payloads

Ansible Playbook Example

10 fields

EXAMPLE

Resources

🔗
LinkedIn
LinkedIn
🌐
Portal
Portal
🚀
GettingStarted
GettingStarted
🔗
Documentation
Documentation
📰
Blog
Blog
👥
GitHubOrganization
GitHubOrganization
🔗
Forums
Forums
💬
Support
Support
🎓
Training
Training
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
📦
Ansible Python Package
SDKs
📦
Ansible Runner Python Package
SDKs
🔗
Playbook Schema
JSONSchema
🔗
Vocabulary
Vocabulary
🔗
MCPServer
MCPServer

Sources

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Ansible Automation Controller API
  version: '2'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Auth
    type: folder
  items:
  - info:
      name: List OAuth2 tokens
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/tokens/
    docs: List OAuth2 tokens
  - info:
      name: Create an OAuth2 personal access token
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/tokens/
      body:
        type: json
        data: '{}'
    docs: Create an OAuth2 personal access token
- info:
    name: Organizations
    type: folder
  items:
  - info:
      name: List organizations
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/organizations/
      params:
      - name: page
        value: ''
        type: query
      - name: page_size
        value: ''
        type: query
      - name: search
        value: ''
        type: query
    docs: List organizations
  - info:
      name: Create an organization
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/organizations/
      body:
        type: json
        data: '{}'
    docs: Create an organization
  - info:
      name: Retrieve an organization
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/organizations/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve an organization
  - info:
      name: Partially update an organization
      type: http
    http:
      method: PATCH
      url: https://{controller_host}/api/v2/organizations/:id/
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Partially update an organization
  - info:
      name: Delete an organization
      type: http
    http:
      method: DELETE
      url: https://{controller_host}/api/v2/organizations/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Delete an organization
- info:
    name: Users
    type: folder
  items:
  - info:
      name: List users
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/users/
      params:
      - name: page
        value: ''
        type: query
      - name: page_size
        value: ''
        type: query
    docs: List users
  - info:
      name: Create a user
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/users/
      body:
        type: json
        data: '{}'
    docs: Create a user
- info:
    name: Projects
    type: folder
  items:
  - info:
      name: List projects
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/projects/
    docs: List projects
  - info:
      name: Create a project
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/projects/
      body:
        type: json
        data: '{}'
    docs: Create a project
  - info:
      name: Retrieve a project
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/projects/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve a project
  - info:
      name: Trigger an SCM project update
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/projects/:id/update/
      params:
      - name: id
        value: ''
        type: path
    docs: Trigger an SCM project update
- info:
    name: Inventories
    type: folder
  items:
  - info:
      name: List inventories
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/inventories/
    docs: List inventories
  - info:
      name: Create an inventory
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/inventories/
      body:
        type: json
        data: '{}'
    docs: Create an inventory
  - info:
      name: Retrieve an inventory
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/inventories/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve an inventory
  - info:
      name: Delete an inventory
      type: http
    http:
      method: DELETE
      url: https://{controller_host}/api/v2/inventories/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Delete an inventory
- info:
    name: Hosts
    type: folder
  items:
  - info:
      name: List hosts
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/hosts/
    docs: List hosts
  - info:
      name: Create a host
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/hosts/
      body:
        type: json
        data: '{}'
    docs: Create a host
- info:
    name: Credentials
    type: folder
  items:
  - info:
      name: List credentials
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/credentials/
    docs: List credentials
  - info:
      name: Create a credential
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/credentials/
      body:
        type: json
        data: '{}'
    docs: Create a credential
- info:
    name: Job Templates
    type: folder
  items:
  - info:
      name: List job templates
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/job_templates/
    docs: List job templates
  - info:
      name: Create a job template
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/job_templates/
      body:
        type: json
        data: '{}'
    docs: Create a job template
  - info:
      name: Retrieve a job template
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/job_templates/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve a job template
  - info:
      name: Launch a job template
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/job_templates/:id/launch/
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Launch a job template
- info:
    name: Jobs
    type: folder
  items:
  - info:
      name: List jobs
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/jobs/
      params:
      - name: page
        value: ''
        type: query
      - name: page_size
        value: ''
        type: query
      - name: status
        value: ''
        type: query
    docs: List jobs
  - info:
      name: Retrieve a job
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/jobs/:id/
      params:
      - name: id
        value: ''
        type: path
    docs: Retrieve a job
  - info:
      name: Cancel a job
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/jobs/:id/cancel/
      params:
      - name: id
        value: ''
        type: path
    docs: Cancel a job
  - info:
      name: Get job stdout
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/jobs/:id/stdout/
      params:
      - name: id
        value: ''
        type: path
      - name: format
        value: ''
        type: query
    docs: Get job stdout
- info:
    name: Workflow Job Templates
    type: folder
  items:
  - info:
      name: List workflow job templates
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/workflow_job_templates/
    docs: List workflow job templates
  - info:
      name: Launch a workflow job template
      type: http
    http:
      method: POST
      url: https://{controller_host}/api/v2/workflow_job_templates/:id/launch/
      params:
      - name: id
        value: ''
        type: path
      body:
        type: json
        data: '{}'
    docs: Launch a workflow job template
- info:
    name: Workflow Jobs
    type: folder
  items:
  - info:
      name: List workflow jobs
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/workflow_jobs/
    docs: List workflow jobs
- info:
    name: Schedules
    type: folder
  items:
  - info:
      name: List schedules
      type: http
    http:
      method: GET
      url: https://{controller_host}/api/v2/schedules/
    docs: List schedules
bundled: true