Blog Posts

Quick Update, mostly for Database Testing

Good afternoon All. It has been another busy few weeks with so much to share, however, this is just a quick test. I have spent a few weeks adopting an Infrastructure as Code approach to my homelab. A good portion of day0 and day1 configs have been encoded into ansible playbooks and roles. Also passed a nutanix admin certification, and banged my head against the nutanix CE for a while. I was able to get prometheus and some node exporters configured. Started working on Go. Last but not least, study for the Cisco CCNP Security core exam. Also had to throw some extra time into an enterpise edge firewall and IPS move and rearchitecting. Helping the Data Center team adopt MPO trunks and cassettes. I will try and split these into individual and more detailed posts and hopefully get the project section built out soon. Hopefully this test succeeds and my database is replicated to my pre production environment in my private homelab network. Stay tuned, thanks for dropping by.

An elephant never forgets

Lets take a moment to explore my homelab journey as it relates to data! One of the first services I hosted in my network was a storage server. I went with TrueNAS Scale virtualized on an XCP-NG host. TrueNAS Scale has been an excellent experience this far. It has file server, container hosting and KVM hypervisor capabilities. I have been playing around with the file server and container environment services for a few months and have learned quite a bit. There is still a lot more to learn and figure out. Addressing the elephant in the room, yes, the file server is a VM. This is bad practice. What makes it worse, there is a NFS share from the virtualized TrueNAS back to the hypervisor as a storage repository. When the VM reboots, the hypervisor gets a storage repo ripped out. It is not great, but it has worked well with a limited footprint. It is however high on my list to rearchitect. Having spent a year with TrueNAS, I think it deserves to be its own appliance in my network. I will be working towards deploying it bare metal and then building my hypervisor infrastructure on different hardware. I will probably create a project page dedicated to TrueNAS as it really has served a large role in my lab, and I plan to continue to expand its responsibilities. ZFS RaidZ2 is truly a data hoarders best friend. Not only that, but it also has a docker and Kubernetes environment baked in. This lead is the second part of the story, Containers. I like containerized applications. Portable, added security, organized. The first website I built was a containerized web application. You are reading this entry on a containerized web application. I have had the luck and privilege to play with a few different container environments thus far. Mostly Docker with a sprinkle of podman and some Kubernetes environments (OKD and k3s). Hopefully, I will have a OKD environment up and running shortly. My container workloads are currently running in four places. Docker on a cloud Alma Linux Server, k3s and docker on my homelab TrueNAS scale VM, docker on a Fedora CoreOS server VM and docker on a Kasm VM. I plan to add an OKD cluster as time and money allows. Fedora CoreOS also deserves a project of its own, and I will probably be revisiting it more and more as I get deeper into OKD. All these threads have coalesced into the current task at hand. Design, deploy, maintain, and persist a PostgreSQL database environment for my lab and my website(s). This website is currently running SQLite, it will soon be migrated to Postgres. The production website database will be automatically backed up and replicated to a PreProduction and Development database on a weekly basis. The databases are containerized so there are a few different options to go with. The PostgreSQL instance in my lab is running as a container on my TrueNAS server. This simplifies backups as both the data and backup datasets can be automatically backed up and snapshotted using TrueNAS and its suite of ZFS features. The website database is also containerized but running in a cloud. For this task I will use an ansible playbook to both back up the database volume data using a helper container and also to do a database dump to a bind mount which can then be copied and imported. The final Postgres and data storage hurdle is designing the schema for storing and displaying my projects. I aim to make it modular to easily append new sections to a project, link it to relevant blog posts and hopefully build it to be interchangeable between the different back end iterations I plan on experimenting with (Flask, JavaScript, Go, PHP and possibly Drupal) Also looking forward to getting into Kubernetes environments with distributed replicated databases to facilitate easy horizontal scaling! Overall, quite a bit has transpired since I started working on my website, and many more things are to come. Thanks for stopping by. Hope to see you again soon!

Still Can’t Believe It’s Already May.

Steadily working towards a CCNP Security certification. There is so much material to cover and my memory is not what it once was. Many of the technologies and solutions explored in the Cisco Security Core material exist in our work environment but I rarely interact with them as a Data Center engineer. I decided to start using study aids to help retain and recall all the information from the books and videos. For note taking I settled on initial pen and paper, then transfer into Obsidian. Obsidian has a reputation of being an excellent study aid with features that allow for linking notes and concepts both logically and visually. Architecting a solution that keeps the notes synced on different devices along with keeping them backed up and secure was a fun experience. I decided on a star topology with my data set on my TrueNAS server as the central hub. The dataset is shared over my home network via an SMB share and also synced to Linux, mobile and remote devices using Syncthing. There was a bit of an initial struggle dealing with UNIX file permissions causing sync issues, but all is well now. I have highly available, resilient and confidential note taking system with versioning and backups to extend my mind. All the notes are taken in markdown. The plan is to eventually publish my study notes and sanitized homelab notes to my website via some automation. Also envisioning an LLM powered project to aggregate my weekly notes into content on my website and share it out via social media. I have also spent a great deal of time working on Docker container infrastructure and administration. Fedora Core OS became my primary container platform. It’s a fun, auto-updating and immutable Linux OS that is entirely provisioned via a yaml file. I have labed out and deployed a great deal of containerized services in my private home and cloud domains. A lot of time spent experimenting with the different volume and network drivers along with learning the ins and outs of the troubleshooting docker via the cli and managing remote agents via contexts. Also dove into docker compose to codify my deployments for quick/consistent rebuilds or re deployments. My website/webapp is a containerized application hosted in Linode's cloud. I am currently working on the CI/CD pipeline to automatically build, test and deploy this and future/alternate version of this website. I deployed and configured a GitLab server and started building my automation there but was recently persuaded to switch to Gitea instead. Currently working on getting Gitea running locally to manage my repos and control my CI/CD pipelines. I rebuilt my mom’s home network and deployed snort to our environments. It’s been a lot of fun and a good learning experience, and probably deserving a blog entry of its own, so I won’t spend too much time on it here. More to come on this. I also had the opportunity to get some real practical experience with Ansible at work and in my lab. I successfully built a playbook for initial configuration and config enforcement for all the cisco IMC's at my work environment. I will try and get a sanitized/tokenized version into GitHub. I also took the momentum and built out some ansible automation for my lab that has been a real time saver in keeping everything up to date and secure along with standardizing configs for new projects. So much more potential and work to be done here. Jeff Geerlings free YouTube content is a real blessing when it comes to Ansible projects. My highest priority project at the moment is getting this website built out and automated. Hard at work designing the Schema for the 'projects' documentation section along with exploring, testing, and implementing automation solutions for backing up and syncing my databases and content. There are so many more things I could write about, but I am trying to keep the post short. I figure more frequent smaller updates would be much better. Truly excited to see Large Language models and help out here. Thanks all for stopping by. Have a blessed day!

Initial Commit.

Time sure flies when you are having fun. Or working hard. So many things have changed since I started building this flask blog project to further my IT career, I can hardly keep track of all of it. I decided to make this hurried blog entry in the attempt to start a weekly posting schedule habit. I have so much to share but so little time to write it all up. I started this project while still employed as a Help Desk Technician. I has been about 8 months since I started it as a means of building up my python coding skills. I started it right after passing my Cisco DevNet associates certification exam. I applied for a few positions and ended up accepting a sys-admin NOC position with my current helpdesk employer. I was really looking for a network engineering position but this position was recruiting and allowed me to switch from remote to on site work which was a big goal for me. I was also starting to feel the drag of resetting passwords for customers all day so this was an exciting new change. The NOC position was a great experience. They needed someone to work on a web application along with the standard monitoring that a NOC agent would be responsible for. Luckily the web application was using flask in the back end and svelte (a javascript framework) in the front end. It was also in the very early stages of development with very loosely defined outcomes. The dev team was basically me and one other NOC agent so this made it fairly simple to get work done. I got a lot of work done for them. I studied some javascript and azure app integration and made a great deal of progress for the team in a very short amount of time. Hopefully I can get some sanitized, anonymized samples of my code into github and shared here, we will have to see. Just as I was starting to get into a good productive pattern with the NOC team, an opportunity to join my company’s Data Center Operations team opened. In about 6 months since leaving the helpdesk I have been shoehorned into a position to support my organization with Data Center Automation, Development, Operations and Networking. There are so many things to work and learn in this new role, I feel like a child in a toy store. Exciting times indeed. The changes in my work life have been significant and very time and energy consuming over the past months. Still, significant progress has been made in my home lab and study. I passed the CompTIA Security + exam and I am well into preparing for the CCNP Security Core Certification Exam. I have been working on my linux admin, docker, web admin and CI/CD skills in my lab along with all the fun experimenting with networking (segmentation, monitoring, access control, Snort(IPS)). My Kubernetes cluster has been started. This will eventually be an OKD cluster that will host this project and blog website behind a reverse proxy. It will hopefully help me lab out and model the Kubernetes layer and how it interacts with a data center network. I could keep going but really trying to keep this brief. Thanks for stopping by!

1 2

Currently Active projects

I am always working on something new, check back frequently for updates!.

  • Blog and projects website
  • CI/CD pipeline for website development and deployment
  • Studying for Security+
  • Deploying and tuning Snort on my firewall