Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Migrating from AWX 24 to Ansible Automation Platform 2.5

August 13, 2025
Konstantin Kuminsky
Related topics:
Automation and management
Related products:
Red Hat Ansible Automation Platform

    Note

    This article utilizes an Ansible collection (configify.aapconfig) that's developed, published, and maintained by the Ansible community. Refer to the validated infra.aap_configuration Ansible collection supported by Red Hat.

    In the previous parts of the series, we discussed how to manage existing Red Hat Ansible Automation Platform with configuration as code from start to finish using configify.aapconfig collection.

    However, you can also use the collection for different kinds of migrations. In this article, we will discuss migration from AWX 24 to Ansible Automation Platform 2.5.

    Follow this series:

    • Part 1: The first steps on the path of managing an existing Ansible Automation Platform instance as CaC, setting up Ansible Automation Platform accounts, collections, credentials, projects, and job templates required to run the automation, exporting configuration of some objects, handling secrets and special strings in the CaC, and managing configuration drift.
    • Part 2: Completing the transition: exporting all objects, formatting configurations for readability, verification, access restrictions, and Git management.
    • Part 3: Migrating configurations from AWX 24 to Ansible Automation Platform 2.5.
    • Part 4: Migrating smart inventories (deprecated in future Ansible Automation Platform releases) to constructed inventories.
    • Part 5: Migrating configurations from Ansible Automation Platform 2.4 to Ansible Automation Platform 2.5.

    Preparation and planning

    While there is a path to perform in-place migration from AWX to Ansible Automation Platform, there are cases when it’s not possible or simply preferable to do export/import instead. An example is migration to one of Red Hat’s Ansible Automation Platform cloud offerings which don’t allow restoring a backup taken from an on-prem instance.

    For the purposes of this article, we assume the following:

    • You are running an instance of AWX 24.
    • You have deployed Ansible Automation Platform version 2.5 as a separate instance.
    • Galaxy configuration will not be migrated, Ansible Automation Platform Hub will need to be configured from scratch.

    Planning and preparation for configuration export is the same no matter if export is being done to manage an existing instance or migrate to another one. The steps are described in detail in the two previous articles. Let’s do a brief recap of what to do:

    1. Make sure all required Red Hat certified collections are available in local Galaxy and Hub. For disconnected environments all collections need to be available locally.
    2. Create required tokens and configurations as described in the first article. This time, you need to do the steps twice: in source cluster (AWX) and in destination cluster (AAP). The configurations include:
      • API tokens for Controller (AWX) and Gateway (AAP)
      • API token for Hub (AAP)
      • Credential types for Hub credentials
      • Credentials for Controller, Hub (AAP), and Gateway (AAP)
      • Empty inventories
      • Git projects
      • Job templates
    3. Decide how to handle secrets and prepare required configurations as described in the "Handling objects with secrets" section of Part 1.
    4. Run configify.aapconfig.aap_audit_problematic_objects.yml, fix problematic objects, and perform optional cleanup as discussed in the "Pre-export steps" section of Part 2.

    You should give separate consideration to external users authenticating via SSO. These users are added to the cluster during first login, but they will not be exported together with local users. If you are assigning permissions to specific external users, which is not a recommended practice, then you will need to delay importing roles related to these users until they log in. This may be another pre-migration cleanup task, switching these roles to teams instead.

    Exporting configuration

    Configuration export is the same as described in Part 2. Create and run the following playbook against the AWX instance:

    ---
    - name: Run playbook to export AAP configurations
      import_playbook: configify.aapconfig.aap_audit_all.yml

    This time, because we are exporting from AWX, we need to specify:

    aap_platform: awx24

    This switch tells the playbook to expect data returned by API calls to be specific to AWX, which in some cases is slightly different from what is returned by Ansible Automation Platform. In addition, it skips parsing configurations available only in Ansible Automation Platform 2.5.

    Because we will be importing to Ansible Automation Platform 2.5, we need to run the playbook with:

    format_for_25: true

    This makes sure certain configurations such as roles and authenticators are formatted for import into Ansible Automation Platform 2.5. You can find more details on the differences in Part 5 of this series.

    Once exported let’s go through the formatting procedure described in the "Formatting the output" section of Part 2.

    Importing configuration

    The import process is also the same as described in Part 2. However this time you need to run the playbook against the following new Ansible Automation Platform cluster:

      tasks:
        - name: Include variables
          ansible.builtin.include_vars: all_aap_objects
          tags: always
    - name: Run playbook to apply AAP configurations
      import_playbook: configify.aapconfig.aap_configure.yml

    In this case, running import in check mode is not necessary since there is no existing configuration. For the same reason we can run import playbook using controller_config_all_apply tag, which only applies configurations without checking existing objects and configuration drift.

    After you've completed the import, don’t forget to include objects created in the new cluster during preparation steps into the CaC: credential type, credentials, project and job template. You can export these using specific tags as follows:

    export_credential_types
    export_credentials
    export_projects
    export_templates

    Then merge into the existing CaC.

    Final thoughts

    As we can see with the configify.aapconfig collection, you don't need to import and export from/to the same cluster. Different parameters allow for flexibility to import/export between different versions of the platform. Stay tuned for the next two installments where we will discuss more migration scenarios.

    Last updated: August 29, 2025

    Related Posts

    • How to start configuration as code for an Ansible instance

    • How to migrate smart inventories to constructed inventories

    • Ansible Collection for Red Hat Runtimes

    • How to build virtual machines using Ansible Collections

    Recent Posts

    • Trusted software factory: Building trust in the agentic AI era

    • Build a zero trust AI pipeline with OpenShift and RHEL CVMs

    • Red Hat Hardened Images: Top 5 benefits for software developers

    • How EvalHub manages two-layer Kubernetes control planes

    • Tekton joins the CNCF as an incubating project

    What’s up next?

    Learn the basics of YAML, a simple yet powerful data serialization language, through examples using Ansible.

    Start the activity
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.