AWX modernization: Ansible UI

Hey Friends, Jake from the AWX/Controller team here,

We’ve got another update on the AWX modernization that we’d like to share with the Ansible community. As always, let’s start by revisiting some of the goals that we outlined when we set out to refactor AWX into a pluggable, service-based architecture:

  • Simplify the codebase so it is easier to implement changes, add new features, and make contributions.
  • Reuse code more efficiently across projects.
  • Enable participation in a way that allows the community to shape the project.

Bringing users into the picture

In our last post, we announced the next phase of the AWX modernization effort would be focused on providing developer resources. As part of that work we’ve added AWX OpenAPI documentation and announced the AWX TUI. We’re continuing to work on improving the developer experience and there will be more announcements about what we’re doing soon.

Developers aren’t the only persona that matters, though, far from it. One of the most important aspects of AWX is that it provides an entry point into Ansible for lots of roles other than developers. This is a conversation that frequently comes up. A team of developers might be using Ansible on the command line but they need to bring in folks who have expertise or insights that are relevant to their automation use cases. In lots of instances, those folks aren’t super comfortable with the command line. This is where a user interface becomes really valuable.

Returning the Ansible UI to upstream

While refactoring the AWX codebase, the UI was removed. And while the ansible/ansible-ui repository was public, development activity had paused on that source code. This led to difficulty with community developers trying to run AWX, which came up in GitHub issues.

You may have noticed the Ansible UI: Development returns to upstream post from Keith that announces that source code has been synchronized to the ansible/ansible-ui repository and that the Red Hat engineering team are back to working on the devel branch. That work complements the AWX modernization and completes another piece of the wider refactoring effort.

Getting started with the Ansible UI

The Ansible UI codebase is in active development and you should expect to find some rough edges. Not everything is going to work out of the box when running AWX from the devel branch.

If you want to try it out, here is a quickstart:

  1. Set things up.
    a. Fork or clone both the ansible/awx and ansible/ansible-ui repositories.
    b. Install requirements for Ansible UI following GitHub - ansible/ansible-ui: The UIs for Ansible Projects such as AWX, EDA, and HUB. · GitHub
    c. Install requirements for AWX: dnf install docker docker-compose-plugin ansible openssl

  2. Stand up an AWX development environment.
    a. Open a terminal window in the root of the ansible/awx repository.
    b. Build the development image with make docker-compose-build.
    c. Start the environment with make docker-compose.
    d. Note the superuser password. You can also find this with cat tools/docker-compose/_sources/secrets/admin_password.yml.

  3. Stand up an Ansible UI development environment.
    a. Open another terminal window in the root of the ansible/ansible-ui repository.
    b. Change to the frontend/awx directory.
    c. Enter export AWX_SERVER='https://localhost:8043'.
    d. Run npm start.

Call to action

Reply to this forum post to share your thoughts and help shape the future of AWX. We also welcome contributions to improve the documentation for setting up development environments. If you hit any snags following the quickstart steps above, that is useful feedback in itself. We’d like to hear from you.

Links in this AWX update series

Useful links

6 Likes