IAP101: Building Better Training

August 29, 2019 | Ian Hundere
IAP101: Building Better Training

“Flying is learning how to throw yourself at the ground and miss.” – Douglas Adams

As a former educator, Douglas Adams’ quote resonates well with the inevitability of failure when learning something new or solving an unfamiliar problem. More often than not, we learn important lessons through our failures that guide us through our next unsolvable problem.

We, the Itential Academy team, came across a plethora of seemingly easy problems while building the infrastructure for the IAP101 course offering. But often problems that at first seemed to be the most trivial ended up being the hardest to solve and vice versa. Many of the things I learned in the classroom, that is, communication, patience, and resourcefulness, came in high demand as we built IAP101: Itential’s first free training course. Many lessons were learned through our endeavors to bring IAP101 to you, and the biggest of those lessons was:

…don’t let your assumptions lead to your assumicide.

(or maybe …never assume anything as assumptions often lead to assumicide.)?

We were given access to a git repository which contained code created by past Co-op students (Itential Co-op students alternate between semesters working and university classes). This repo acted as a map to help us understand where to start in building out the new training infrastructure and ways in which we could improve upon it. For example, we optimized a lot of it in terms of adding data persistence, automated enrollment/unenrollment, monitoring, etc. We also learned how to use a variety of tools to solve a number of different problems. Below are a few of those problems and the tools we used to solve them:


Problem 1: Lab Environment

To give us more control over our lab environment, we moved much of the infrastructure from Appsembler’s lab environment to AWS. One of those bits was openLDAP, which was previously containerized using an image by OSIXIA, necessary for role-based access control within Itential Automation Platform (IAP). We were stuck creating a completely fresh configuration file for an EC2 instance. This required us to learn a bit about LDAP modules and their role in LDAP’s implementation in IAP. After much confusion and failed attempts at logging into IAP, we finally realized our custom LDAP config file did not include the MemberOf Module that provided the necessary hooks for IAP to recognize the users and groups available. This also gave us the opportunity to educate others within Itential through documentation to avoid the confusion that we encountered.

Lesson(s) learned: Build your configuration from scratch and never trust a container’s config.


Problem 2: Enrollment

We wanted to give the Sales Team the ability to automatically enroll or unenroll customers from training. Since Appsembler does not have an API, we had to come up with a fairly quick and easy way of allowing students to be enrolled or unenrolled at which point we began asking around the office for possible options. The two tools that were continually mentioned for automating the front-end of a website was Selenium and Puppeteer. For our purposes, Puppeteer was the better fit as it was faster and easier to learn.

Lesson learned: When there is no API to be found, find tools to improvise around it.


Problem 3: Documentation 

As you may have already noticed, many of the tools we used are open-source. For instance, we also used NetBox to keep track of virtual devices/interfaces and Zabbix to monitor our admin EC2 instances and student containers. More often than not, many of these tools were incredibly well documented which meant we as a team got very good at finding many of our answers through documentation.

Lesson learned: Never underestimate the power of documentation.


The primary purpose of IAP101 is to offer a course that is free and easily accessible with interactive labs that allow users to quickly spin up instances of the Itential Automation Platform. This new course provides a solid overview of IAP as well as a variety of use cases. IAP101 also acts as the prerequisite for all other courses Itential has to offer. You can also be sure to learn the following by taking IAP101:

  1. Platform architecture
  2. Workflow Builder / Starting Jobs from Workflows
  3. Job execution & management
  4. Automate Device Configuration

Through a lot of listening, communicating, patience, and humility, the Itential Academy Team is happy to bring you IAP101. We hope that you enjoy learning about the Itential Automation Platform using our new training environment and look forward to bringing many more Itential training courses to you in the future.

And remember, assume nothing / never stop learning.

Ian Hundere

Software Engineer ‐ Itential

Coming from education, Ian is a software engineer with an aptitude for learning and explaining his thinking in easy to understand ways. When not coding or with his family, Ian can be found riding his bike or making bleeps/bloops late into the night.

Join our Mailing List

Receive the latest news, content & events to your inbox.