Recently, I’ve been working on a project where we have a very large team. After the new feature is developed, the developers need to test the feature’s function. So we need to install some test tools on the server for testing purposes and we have to do this activity very frequently. Also, I wanted to schedule planned activities without an integrated third party tool with Ansible.
I opted to use AWX to solve all these needs that were required for software configurations of the servers. AWX is an open-source web application sponsored by Red Hat that provides a user interface, REST API, and task engine for Ansible tasks. In AWX, we can create users, teams, and groups. We can then assign access and rules to inventory, credentials, and playbooks at an individual level or team level according to our requirements. This makes it possible to set up push-button access for complex automation and control who can access it, and where they can run it.
For example: When developers need to set up a new environment, they don’t depend on the DevOps team or we don’t have to spend much of our efforts and resources. Instead, they can just log into AWX and run the provisioning playbook on their own. We can also configure AWX to prompt for parameters and required choice parameters while running the job so that we do not have to create a separate job for slightly different needs.
Also, AWX allows you to run Ansible Playbook, Inventory, and Schedule Jobs using the web interface. With these features of AWX, my efforts for installing and configuring software has been reduced to minimal.
I would like to explain some interesting features and facts about AWX which is very useful while dealing with our day to day software management problems:
- Dashboard: AWX Dashboard offers a visual display for all that’s going on in your Ansible Environment including
- Total number of successful & failed playbook job status
- Total number of inventories
- Graph of the playbook that is currently running in Ansible Environment
- Number of projects and the sync status
- Organized: We can divide our users into teams and groups.
- Role-based access control of users & Authentication: We can set up roles for our teams based on least privilege policies. Also, we can integrate it with LDAP & AD server.
- Job scheduling: we can schedule planned jobs.
- User Activity Tracking: We can track the user activities (who ran the job, what job & when).
- Integrated Notifications: We can also integrate AWX with slack & email to notify about the jobs status updates after adding the callback plugin.
- Scalable Capacity: we can add or remove nodes in AWX clusters as per our requirement.
- Increase efficiency & security: Provide better operational control and security. It will also increase our efficiency as a team.
- Centralized logs: We can integrate AWX with multiple logging tools available in markets such as ELK & Loggly.
- Support Multiple Cloud: AWX can be integrated with many cloud. Example: aws, azure & GCP, etc.
Conclusion: If you’re managing infrastructure in your project, AWX is a good choice as an SCM tool. With AWX we can integrate a centralized log system, live updates of running jobs, scheduled jobs, etc. Also, this will make your job as a system administrator easier. The best part due to which I prefer AWX over other SCM tools is that it’s open-source (we don’t need to pay anything to use this awesome tool).
Opstree is an End to End DevOps solution provider