Central Management of Puppet Agents with a Script (IPA)
This project automates the management of Puppet Agents on RHEL systems and integrates LDAP, Icinga2, and scheduling systems to streamline administrative tasks.
- Automates enabling/disabling Puppet Agents on RHEL systems via a Python script.
- Synchronizes LDAP maintenance flags with Icinga2 downtimes using a Perl script.
- Logs actions for auditing and troubleshooting across both scripts.
- Integrates with LDAP, Icinga2 API, and MySQL for seamless system state management.
- Modular design supports extensibility and error handling.
Note
Due to data security and confidentiality, the source code and detailed documentation for this project cannot be shared.
Personal Portfolio Website (This website)
A fully responsive personal portfolio website built using Next.js, Tailwind CSS, and Netlify hosting.
- Dynamic animations and smooth transitions for an engaging user interface.
- Custom components like rotating text effects, skill bars, and project cards.
- Integrated contact form with email-sending functionality via SendGrid.
- Responsive design optimized for various screen sizes and devices.
Further development of the IPA
This project builds upon the original Final Exam Project, introducing additional functionality and optimizations to improve scalability, performance, and user experience.
- Introduced modular methods for LDAP modifications, checks, and job handling.
- Integrated RESTful API calls for LDAP data retrieval, improving scalability.
- Enhanced Puppet Agent management with more rigorous attribute checks.
- Improved error handling and logging for better traceability.
- Implemented a refined downtime extension process with date/time validation and user input validation.
- Simplified task scheduling through modular helper functions.
Enhancements
- Refactored core logic into modular methods imported as modules (e.g., check and ldap).
- Replaced synchronous LDAP queries with REST API calls for greater flexibility.
- Enhanced user input validation and error handling through check.reason and syslog logging.
- Improved 'at job' scheduling with methods like at.find and at.calculate to ensure accurate timing.
- Encapsulated main logic in a structured main() function, improving readability and maintainability.
Note
Due to data security and confidentiality, the source code and detailed documentation for this project cannot be shared.