Slide 1

Slide 1 text

Streamlining DevOps Workflows with Ansible AWX Localhost Conf 2023

Slide 2

Slide 2 text

● OSS Contributor at Flanksource, Ansible and CHAOSS Project. ● Developer Advocate/Experience Engineer. ● Technical Author and Speaker. About Me Desmond Obisi (He/Him)

Slide 3

Slide 3 text

Introduction What is Ansible AWX? Key Features of Ansible AWX Getting Started with Ansible AWX Automating Tasks with Ansible AWX Creating Playbooks in Ansible AWX Table of Content Integrating Ansible AWX with Other Tools Best Practices for Using Ansible AWX Common Challenges with Ansible AWX Conclusion Q&A

Slide 4

Slide 4 text

In today's fast-paced world of software development, it's more important than ever to have efficient and streamlined workflows that keep things working in a continuous environment. That's where DevOps comes in - a methodology that emphasizes collaboration between development and operations teams to deliver high-quality software faster. However, implementing DevOps workflows can be challenging, especially when dealing with complex infrastructure and a lack of standardization. We will be talking about Ansible AWX comes in - an open-source automation platform that can help streamline DevOps workflows and improve efficiency. So let's dive in and explore the benefits of using Ansible AWX! Introduction

Slide 5

Slide 5 text

Ansible AWX is an open source web-based interface for managing Ansible playbooks, inventories, and schedule jobs. It is designed to be a more user-friendly version of the command-line interface provided by Ansible Tower. With Ansible AWX, DevOps teams can easily manage and automate their workflows in a centralized location. Ansible AWX provides a number of features that make it an effective tool for streamlining DevOps workflow. These include role-based access control, job scheduling, inventory management, and customizable dashboards. By using Ansible AWX, DevOps teams can save time and reduce errors by automating repetitive tasks and ensuring consistency across their infrastructure. What is Ansible AWX Ansible is an open source community project sponsored by Red Hat, it's the simplest way to automate IT. Ansible is the only automation language that can be used across entire IT teams from systems and network administrators for application deployment, updates on workstations and servers, cloud provisioning, configuration management, intra-service orchestration, and nearly anything a systems administrator does on a weekly or daily basis. SIDE NOTE

Slide 6

Slide 6 text

OPEN SOURCE Ansible AWX is open-source, meaning it's freely available, customizable, and supported by a vibrant community. GUI FOR CONTROL The intuitive graphical user interface simplifies automation management, making it accessible to both technical and non-technical team members. REPORTING/ANALYTICS Ansible AWX provides robust reporting and analytics capabilities, allowing you to monitor and analyze automation activities for greater visibility and accountability. AWX Key Features AUTOMATION Ansible AWX automates manual and repetitive tasks, reducing human error and accelerating workflows. Jobs/workflows as many as they are can now be automated and monitor from one place SCALABILITY It scales effortlessly to meet the growing automation demands of organizations, ensuring efficiency and performance. As the infrastructure grows, AWX can accommodate more automation pipeline to make DevOps easier RBAC/COLLABORATION Role-Based Access Control (RBAC) enhances security and fosters collaboration by controlling access to automation tasks based on roles and responsibilities.

Slide 7

Slide 7 text

To get started with Ansible AWX, you'll first need to install it on your system. You can download the installation files from the official Ansible website and follow the installation instructions provided. Once installed, you'll need to configure AWX by setting up credentials and defining your inventory. (We will see the procedure in next slides) After installation and configuration, you can start using Ansible AWX to streamline your DevOps workflows. The interface is user-friendly and intuitive, allowing you to easily create playbooks, manage inventory, and monitor jobs. With Ansible AWX, you can automate repetitive tasks and improve workflow efficiency. Getting Started

Slide 8

Slide 8 text

Generate secret key for inventory using pwgen cd awx-17.1.0/installer/ pwgen -N 1 -s 30 Update the inventory file at awx-17.1.0/installer/ pg_admin_password=postgrespass admin_user=admin admin_password=password secret_key= Run the install file using ansible ansible-playbook -i inventory install.yml # Run this to get the IP of the docker instance docker ps Running AWX with Docker in Ubuntu Distro System update and docker compose installation # Update packages sudo apt-get update # Install Docker Compose sudo apt-get install docker-compose-plugin Install packages for running Ansible and AWX sudo apt install nodejs npm python3-pip git pwgen unzip sudo pip3 install requests==2.22.0 docker-compose==1.29.2 Download the package installer # Download the AWX package archive wget https://github.com/ansible/awx/archive/17.1.0.zip # Unzip the AWX package archive unzip 17.1.0.zip

Slide 9

Slide 9 text

https://AWX-HOST-IP

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Creating playbooks in Ansible AWX is a powerful way to automate repetitive tasks and improve workflow efficiency. Playbooks are written in YAML format and define the tasks that need to be executed on hosts defined in the inventory. Tasks can be anything from installing software packages to configuring system settings. In addition to tasks, playbooks also allow for the use of variables, which can be used to customize the behavior of the playbook based on different conditions. Variables can be defined at the playbook level or at the task level, and can be sourced from a variety of different locations, such as environment variables or external data sources. Automating Tasks

Slide 12

Slide 12 text

Creating Inventory on AWX

Slide 13

Slide 13 text

Creating playbooks in Ansible AWX is a powerful way to automate repetitive tasks and improve workflow efficiency. Playbooks are written in YAML format and define the tasks that need to be executed on hosts defined in the inventory. Tasks can be anything from installing software packages to configuring system settings. In addition to tasks, playbooks also allow for the use of variables, which can be used to customize the behavior of the playbook based on different conditions. Variables can be defined at the playbook level or at the task level, and can be sourced from a variety of different locations, such as environment variables or external data sources. Creating Playbooks

Slide 14

Slide 14 text

Playbook Example

Slide 15

Slide 15 text

Ansible AWX can be integrated with other tools such as Jenkins and Git to further improve workflow efficiency. For example, by integrating with Jenkins, Ansible AWX can be used to automate the deployment process after a successful build. This saves time and reduces the risk of human error. Similarly, integrating with Git can allow for automatic updates to playbooks based on changes to the codebase. Integration with other tools can also help to standardize workflows across teams and projects. By using a consistent toolchain, it becomes easier to collaborate and share knowledge between team members. Additionally, integration can help to reduce the learning curve for new team members who may already be familiar with the integrated tools. Integrating with Other Tools

Slide 16

Slide 16 text

Common Challenges No Support AWX is community maintained and lacks full support from the Ansible Team. Issues might take long to be looked into and this might affect usage. Prone to Security Issue It is easier to have vulnerabilities introduced and no support team to take immediate action. This leaves the community contributors and individual users to figure out security while using the software No Sync with Tower Releases Since it is an open source version of Tower, we expect a sync in updates but it is the opposite. Tower is more updated, gets more support and features ahead.

Slide 17

Slide 17 text

In conclusion, Ansible AWX is a powerful tool for streamlining DevOps workflows. By automating repetitive tasks and providing a centralized platform for managing infrastructure, Ansible AWX can greatly improve efficiency and scalability in software development. Some of the key benefits of using Ansible AWX include improved workflow efficiency, simplified infrastructure management, and easier collaboration among team members. Additionally, Ansible AWX integrates seamlessly with other tools such as Jenkins and Git, making it a versatile choice for modern software development teams. While it has its cons, there are a lot you can save and improve in your workflows using this awesome tool Conclusion

Slide 18

Slide 18 text

THANK YOU FOR YOUR TIME