
Automating the Installation of AWX Using Minikube and Ansible
Tue, 02 Aug 2022 19:38:15 -0000
|Read Time: 0 minutes
Introduction
As the use of virtualization (VMs and containers) expands rapidly in many organizations, automation is needed for virtual server management to address the tedious and repetitive tasks. Ansible is a powerful tool for automation, deployment, and configuration management that has historically required living on the command line interface (CLI). The open-source version of Ansible Tower is AWX - a web-based user interface (UI) for Ansible. When we wanted to explore how AWX works we quickly realized that the existing AWX installation guides need an overwhelming amount of trial and error to make work. This blog presents how to execute a reliable installation process and also explains the automation of the process that reduced our installation to just running a single command. Our comparison and selection of an Ansible UI from a list of 4 options is documented in this blog if you want to learn about that effort.
AWX overview
AWX is a UI solution that sits on top of the Ansible CLI supporting functionality such as visualization of host management and running job status including Ansible playbooks, specification of job parameters, and login authentication. Since AWX is an open-source version of an enterprise product, it has very limited official documentation. During our testing we encountered issues such as insufficient dependency specs, failure to pull Docker images, and inability to visualize our AWX instance. There are many different unofficial guides, but unfortunately, very few of them work reliably without the need for debugging. This blog documents a simple and reliable method for installing AWX.
Prerequisites
Our goal was to deploy AWX on a management system that can connect to a workload environment for VM automation. The only prerequisites you need to get started is to have Ansible installed in the management system and to have your Docker Hub login credentials available. It is crucial to store your Docker Hub username and password in a file named secret.enc under the vars folder of the playbook in following format:
docker_hub_username: <your username>
docker_hub_password: <your password>
Then, you should encrypt the file using a command similar to the one below using Ansible Vault.
$ ansible-vault encrypt secret.enc
Testing system details
Processor | 8 x Intel® Xeon® Gold 6338 CPU @ 2.00GHz |
Memory | 8GB |
Hard disk | 128GB |
OS | Ubuntu 18.04.6 LTS |
Ansible version | 2.13.1 |
Table 1: System Details
Components to be deployed by the Installation Playbook
Minikube version | 1.26.0 |
Docker version | 20.10.17 |
Kubernetes version | 1.21.4 |
Table 2: Components to be Deployed
Installation Process
Figure 1: High-level Overview of the Components in the Installation
The goal is to have a running instance of AWX accessible with a browser. With this design, the user only needs one command to run the playbook that installs AWX. This command asks for the sudo permission so the playbook can use elevated privileges whenever necessary. A vault password is also requested to use the encrypted Docker Hub credentials described above for a successful login into Docker. Minikube and Docker are automatically installed by the installation playbook. Minikube is the backbone of this installation process and provides the resources that the AWX instance is installed on. Docker ensures that the Minikube pods are ready for initializing AWX.
$ ansible-playbook AWX-Install.yml --ask-become-pass -e @vars/secret.enc --ask-vault-pass -e ansible_python_interpreter=/usr/bin/python3
Here is an outline of the background process for the Ansible playbook:
1. The playbook installs the necessary prerequisites.
2. The playbook logs into and sets up Docker.
3. A Minikube instance is run with specified configurations.
Figure 2: Creation of Minikube Instance
4. An image pull secret is created and patched to the service account based on the Docker Hub credentials for successful image pulls.
Figure 3: Creation of an Image Pull Secret
5. AWX operator is deployed and it runs as a pod[PD1] .
Figure 4: Deployment of AWX Operator
Figure 5: Running AWX Operator Pod[SM2]
6. AWX instance is deployed with 4 pods for the instance and 1 pod for postgres.
Figure 6: Deployment of AWX Instance
Figure 7: Deployment File (ansible-awx.yml)
Figure 8: Running Pods for AWX Instance and Postgres[SM3]
7. Expose the port for the AWX instance through port forwarding and display the IP address and login information for accessing the instance.
Installation result
After running the Ansible install AWX playbook, the login information including username, password, and IP address with port for the AWX instance will be displayed as a part of the detailed output.
Figure 9: An Example of the Playbook Output with Login Information
Then, you can access the dashboard for AWX using your host’s IP address and port 32483 with login credentials provided from the above output.
Figure 10: AWX Dashboard After a Successful Installation and Login
Common errors and solutions
A few errors that you may encounter during the installation process:
- ImagePullBackOff: Kubernetes fails to pull container images from Docker Hub. It is important to make sure that you are logged into Docker Hub successfully using Ansible Vault. You can also login manually using docker login, but it is less secure.
- Certificate and connection related errors: Ensure that VM resources are sufficient for running Minikube with predefined specifications. If multiple users are working on the same server with several Kubernetes clusters, such errors may also occur due to resource limitations.
Conclusion
This blog introduces a quicker and more convenient way to reliably install AWX. With a simple goal of having a running AWX instance on a server, this blog demonstrates a straightforward solution to achieve that goal while many other existing guides need much more customizations and configurations for the successful execution of an AWX deployment.
Related Blog Posts

Using Edge Computing to Enhance Customer Experience and Operational Efficiency - Part 3
Thu, 10 Aug 2023 12:41:15 -0000
|Read Time: 0 minutes
As discussed in Part 1 and Part 2, this blog provides a comprehensive analysis of potential edge computing solutions for those current problems in the retail sector, including retail shrink, stocking, and item locations.
In this part, we will be looking at a consolidated solution for the problems discussed in Part 1 and Part 2.
Consolidated solution
Solution overview
All three solutions I have created for the retail problems involve the use of smart cameras and computer vision to analyze products and their whereabouts in the store. Since there are so many common pieces between the solutions, it would be easy to create a fourth solution that encompasses and solves the three problems.
For this solution, there are many different items you will need. The retail store’s pre-existing or newly installed cameras must be placed throughout the store aisles, the self-checkout stations, and the storefront. You also need the Dell VxRail cluster which has the compute power, storage, machine learning models, and computer vision applications. The computer vision applications themselves are use real-time video analysis to identify, track, and count products on the shelves, validate self-checkout items, and monitor where the items are located. The self-checkout machines must be connected to the cluster. Optionally, you can use the shelf weight sensors to complement the cameras in the aisle for better estimates of the number of items on the shelves.
There are many different problems that are solved with this solution, the first being shoplifting. At the self-checkout machines, the customers scan their items like normal, but the cameras send the feed to the ML models to verify in real-time whether the item is correctly labeled. If a mismatch is detected, then the customer is prompted to try again. If the customer is unable to fix it, then the system can alert the cashiers to assist. The system can also track products throughout the store to make sure nobody is storing items in their clothing or refusing to scan them at the self-checkout. If they do, the system can alert a staff member to handle it.
The next problem being solved with this solution is the monitoring of stock in the shelves. The cameras stationed throughout the aisles record and send real-time footage back to the cluster, which can count how many items there are on the shelf. The store can set thresholds to determine low-stock situations, and when the amount of the product enters that threshold, the system will alert the employees to go and restock the shelf. Additionally, the customer can add weight sensors to the shelf to aid the system in determining how many items there are on the shelf. This will enhance the inventory management, and it will minimize the amount of time a product is unable to be purchased due to empty shelves.
The last problem to be solved with this solution is misplaced items in the store. Using the same cameras and real time footage from the last problem, the models on the cluster will determine what products there are on the shelf. The cameras will be assigned an aisle when they are installed, and the store will enter beforehand what camera corresponds with which aisle and tray. A separate store database will contain information on what item goes where in the store, and the application will check the item location against the store database to make sure it is in the right spot. If it is not, the system can alert an employee to return the item to its proper location.
From combining all three solutions, the store can gain valuable data about the store and its items as well. The system can record what items are attempted to be shoplifted, and if enough people are trying to steal the items, the store may want to take precautions by putting them behind glass or storing them in the back. The store will also gain data on how fast a product’s available stock is being sold, so that the store can determine which items sell slowly and have too much shelf space, and which items need more shelf space so they can put more in the aisles. The system will also record what items are frequently misplaced, which the store owners can use to reorganize the layout and optimize the shelf arrangements to encourage more sales.
Figure 1. Technological diagram
This solution would use the same sequence diagrams as the other three, since they are all different use cases that would be running concurrently.
Figure 2. Shelf-checkout sequence diagram
Figure 3. Shelf stock sequence diagram
Figure 4. Location check sequence diagram
Why edge?
Why do we need to use edge computing in these solutions as opposed to something like the cloud? While you can run apps and databases in the cloud, there are two main reasons why it is imperative that we use edge computing to create these solutions.
The first of these reasons is that we need real-time analysis of the camera footage. Having to transfer your camera footage to the machine learning models and back would be extremely time consuming, and you would lose all the benefits of running the analysis on-site. For example, in the time it would take for you to receive your data back about the stock levels of a product, you may have lost out on many sales because the product was not available.
The second reason is the cost of using a cloud service. Not only is transferring all your camera footage to another server in the cloud extremely slow, but it would also be very expensive. Stores have a lot of cameras and sending the video to another site would take all of your bandwidth, and it would cost a lot of money to get it transferred over there. The price it would take to hold all your camera footage while you did analysis on it would cost more than it would be worth to get the analysis.
More possible problems
Introduction
I took the time to interview people about what problems they encountered when they went to the store. By interviewing actual customers of retail environments, I could gather more insight into what problems affected the lives of shoppers, problems that could possibly lose the business of the customer. If the customer has their problems solved, it may result in more business for the store. These problems are not directly solved by the edge computing solutions I designed, but I believe the impact the solutions make on store efficiency and sales will help to lessen the impact of these problems.
Interviewees and their problems
Interviewee 1: Undergraduate intern, Dell Technologies
Problem: Every store is different
Having a consistent layout in stores can be important because it can help customers find what they are looking for more easily. When walking into a brand-new store, even if the franchise is the same, the layout of the store will be different. This can make it harder for customers to find what they want, which could make the customer go to another store the next time they need to buy something. In addition, having things hard to find can negatively affect the customer experience. Customers may become frustrated if they cannot find what they are looking for and may leave the store without making a purchase.
On the other hand, having things hard to find can also cause the customers to spend more time in the store looking around, which can make them more likely to pick up and buy things that they do not need.
Interviewee 2: Undergraduate intern, Dell Technologies
Problem 1: Occupancy is high
High occupancy can be a problem for stores because it can negatively affect the customer experience. When stores are crowded, customers may feel uncomfortable and may not want to spend as much time in the store. In addition, high occupancy can also lead to safety concerns. If there are too many people in the store at once, it can be difficult for customers to move around and for employees to keep track of everyone.
Problem 2: Time it takes to get checked out is high
Having a long checkout time will negatively impact the sales of the business. Waiting customers could give up and abandon their carts, and they may even go to a different store where the checkout time is shorter.
Interviewee 3: Undergraduate intern, Dell Technologies
Problem 1: Labels of what items in the aisle are not detailed enough
When aisle signs are not detailed enough, it can affect the customer flow, the customer experience, and the sales performance of the store. If aisle signs do not correctly communicate what is in the aisle, then customers will spend more time wandering in the store, when they could be getting checked out to make room for more customers.
Problem 2: Calling for help needs to be easier
Sometimes, customers need to call upon staff to find help. If a customer does not know where something is at in a store, it is possible that one of the retail workers knows instead. In some stores, a customer getting help requires them searching the store for an available attendant.
Interviewee 4: Undergraduate intern, Dell Technologies
Problem: Too expensive
Having an item at a high price means that the company will get more money when it is sold, but sometimes it means that the company will have a harder time selling the item. If an item is priced to highly, a customer may choose to go to a competing store where the prices are lower instead.
Interviewee 5: Undergraduate intern, Dell Technologies
Problem: It is too hard to find things in the store
When it is hard to navigate a store, customers will not be able to find what they are looking for and may leave the store without making a purchase. This can lead to the store losing sales. If a customer leaves the store once because it is too confusing, it is unlikely that they will enter the store again.
Conclusion
In conclusion, edge computing is a valuable resource that can help retail owners elevate and exceed in their business. Edge computing is becoming increasingly valuable for retailers looking to do real-time analysis of data and management of different machines, allowing them to solve new problems and generate more sales. I looked over three different problems in the retail sector that impacted sales, those being retail shrink, empty shelves, and misplaced items, and discussed how those could be solved using edge computing through a text overview and diagrams. I then went over how these solutions all had similar parts, and how you could combine them into one solution to solve all three problems at once. I then went over why edge computing was the right tool for the job and how it was a better choice than other computing options. To end it off, I talk about how I interviewed multiple shoppers on their problems in retail stores. Overall, edge computing is a powerful tool that can help retailers improve their business and provide better customer experiences.
Read more
For more information about using edge computing to enhance the customer experience and operational efficiency, see Part 1 and Part 2 of this blog.

Using Edge Computing to Enhance Customer Experience and Operational Efficiency - Part 2
Thu, 10 Aug 2023 12:41:15 -0000
|Read Time: 0 minutes
As discussed in Part 1, this blog provides a comprehensive analysis of potential edge computing solutions for those current problems in the retail sector, including retail shrink, stocking, and item locations.
In this part, we will be looking at more potential problems as well as suggested solutions for them.
Problem 2: Stocking (Empty store shelves)
Overview
Stocking store shelves is an essential part to keeping up sales in a retail store. Customers expect to find what they need when they visit a store, and they may switch to a competitor if they encounter frequent out-of-stocks. It is essential for retailers to adopt an efficient and effective replenishment strategy that ensures optimal inventory levels and minimizes out-of-stocks. According to retail store IHL Group, shoppers encounter out-of-stocks in as often as one in three shopping trips, about 32% of those being empty shelves.
A common replenishment strategy that some retailers use is to stock store shelves only on specific days, such as once or twice a week. This approach may seem convenient and cost effective, since it would reduce the labor needed to frequently restock the shelves. However, this strategy also has some drawbacks that can harm the sales performance and profitability of the retailer.
Firstly, products sell at different rates. Some products may sell faster than others, and some days may even have higher sales than other days. This means that some products may sell out of stock before the next time the shelves are restocked, while other products take up too much space that can be used to hold other, more sought-after products.
Secondly, not having store shelves stocked continuously lowers the customer satisfaction with the store. The store may not seem reliable if they never have the items in stock, and customers may feel frustrated or disappointed with the store. It is even possible that customers will then switch to a competing retailer to meet their needs.
Real-world scenario
Once, I went to the store to purchase some potato chip. I went to the store on a Friday afternoon after class, one day before the typical restocking. Upon entering the store, I found that all the potato chips were sold out. There were not even corn chips available. Instead of waiting another day for the store to restock, I went to another store and purchased some other brand of chips. As a result of this experience, the first store not only lost the sale of my bag of potato chips but also likely lost the sales from other customers who were looking for chips that day.
Benefits of addressing the problem
Restocking products when they need to be restocked has several benefits that can improve the sales performance and profitability of the retailer. There are some benefits to restocking shelves: you can attract and retain customers, and you can optimize your inventory management.
Customers are more likely to enter and stay in a store that has well-stocked and appealing shelves. They can easily locate the products they want to buy, and they can also discover new products that are tempting to purchase. This can increase the likelihood of impulse purchases and repeat visits, since the customer would be happy with the store.
Restocking shelves can help retailers to monitor their inventory levels and prevent overstocking and understocking. By keeping track of what products are selling well and what products are not, retailers can adjust their orders and promotions accordingly. This can reduce inventory costs, waste, and shrinkage, and improve cash flow and profitability.
Possible solution
Like in the last solution, you will need a camera system, a Dell VxRail cluster for both compute power and storage, and computer vision applications for analyzing the incoming video feeds. Additionally, the cluster can connect to shelves that gather the weight of the items on top to better represent how many items more accurately there are on the shelf.
In this solution, there will once again be cameras placed in the aisles of the store. The cameras will feed real-time footage to the VxRail cluster, where pre-trained models with knowledge of the products will analyze the footage and determine how many of each product there are left. When the stock of a product in an aisle is running low, the system can alert the employees that the item needs to be restocked.
Sometimes, the shelves are built in a way that is difficult to see how many of a certain item there are in a shelf from how they are lined up. To solve this, the customer can use weighted shelves that record how heavy the items on the shelf are. The sensors in the shelf report back to the VxRail cluster, which combined with the Computer Vision view of the shelves, can be used to get an accurate reading of how many of each item there are on the shelves.
This solution gives the store valuable data regarding store traffic and the items the store needs to purchase more of. If an item is frequently running out of stock, the store may want to look into expanding the shelf space that the item takes up or keeping more of the items in the back. That way, this solution can also help you with inventory management.
Figure 1. Technological diagram
Figure 2. Shelf-stock sequence diagram
In this diagram, the security cameras feed the real-time camera footage of the aisles over to the VxRail cluster. At the same time, the weight sensors in the shelves will send the weight info over to the cluster as well. Both the camera footage and the weight information will be passed over to the ML Models nodes, which can then use the information to count how many of the products there are on the shelves. This count can then be passed back to the cluster, which can hand it off to the Threshold Checker application. The Threshold Checker application, which the store owners can customize to change what amount of an item on a shelf is considered low stock, then checks the status of the amount of the item against the threshold and gives the value back to the cluster, which stores it in the Database. The Dashboard can then show all of the items and their amounts, and which items are in need of restocking.
Problem 3: Storing (Misplaced items)
Overview
One of the challenges that retailers face is customers misplacing items in the store. This can lead to lost sales, and customers may not be able to find the products they are looking for or may purchase a different product instead. Customers often pick up a product at the store, but then leave it in a placed where it does not belong when they realize they do not want it anymore. This creates clutter, confusion, and inefficiency in the store layout and inventory management. Moreover, currently where stores have mobile apps that can tell you what aisle an item is supposed to be in, customers may get frustrated or confused if the app does not match the reality of the store layout. This can damage the customer’s trust and loyalty and reduce the likelihood of repeat purchases. Sometimes when inventory is missing and not accounted for, it has simply been mistaken for another item. Therefore, it is important for retailers to maintain a consistent and accurate inventory system. For more information, see 5 Most Common Reasons for Inventory Discrepancy and How to Resolve Them.
Real-world scenario
One time at the store, I was looking to purchase some cayenne pepper seasoning for a recipe of mine. I went to a local store and checked the store’s mobile app to see if cayenne pepper was in stock. The app indicated that the store had cayenne pepper in stock, so I went down to the correct aisle. Despite going through all the different rows multiple times, I could not find the cayenne pepper. I went to purchase the other ingredients, when I noticed that the cayenne pepper was not in the correct location. If I could not find where the cayenne pepper was misplaced to, the store would have lost my sale.
Benefits of addressing the problem
Solving this problem can have many benefits for both the retailers and the customers. Some of the benefits are improved customer satisfaction, increased sales and revenue, and reduced costs and waste.
Customers would be able to find the products they want more easily and quickly, without having to search the aisles for misplaced items. They can also trust that the products they see on the shelves are fresh, available, and correctly priced.
When products are in their proper locations, they are more likely to catch the attention of potential buyers and generate impulse purchases. Customers are also more likely to buy more items when they have a good shopping experience and can see all the options available.
Misplaced products can cause inventory errors, shrinkage, and spoilage. By keeping the products in the areas that they belong in, retailers can avoid these losses and save money on labor, storage, and disposal. They can also optimize their space utilization and merchandising strategies.
Possible solution
As for the other two solutions, you will need a camera setup, a Dell VxRail cluster for compute power and storage, and computer vision applications for analyzing the incoming video feeds.
This solution will also require the use of cameras in the storefront. Like the first two solutions, the cameras will need to be placed in the aisle to monitor the items there. The cameras will send live camera footage over to the VxRail cluster which has pre-trained models that know all the items. The cameras will be identified based on what aisle they are in, so the apps of the VxRail cluster will know what aisle the item came from as well. The machine learning models will report back what items are in the aisle to a separate app of the VxRail cluster, which will check a database containing items and their locations to make sure that the item is in the proper spot. If it is not, it can alert an employee and they can go and retrieve the item and put it in the proper location.
There is a lot of data that can be gathered in this solution. For example, you can find out what products are being left at what places. If a lot of the same product are being misplaced in the same location, then maybe there is another product nearby that they would rather have. The store can then find these competing brands and decide how they want to organize their store more to encourage more sales. The store could also find products that are more likely to be removed from the cart, and then use that data to determine what products need to be stocked less.
Figure 3. Technological diagram
Figure 4. Location check sequence diagram
In this diagram, the security cameras feed the real-time camera footage to the Dell VxRail cluster. The cluster sends that footage to the ML Models, which reports the items there and their current locations. The cluster receives the correct location info from the database, and passes the database info, and the items and their current locations to the location check app. The app will verify that it is in the right spot and will send the state of the item’s location back to the cluster, which can then store it in the database. The store owner’s dashboard can then showcase the locations of the items, and which ones are in the wrong spot.
Read more
For more information about using edge computing to enhance the customer experience and operational efficiency, see Part 1 and Part 3 of this blog.