MrSun's Website

A Site to Record and Share

VMWare, Terraform, Jenkins and so on

I feel like I have made the most of this weekend by completing or starting a lot of work of my own…

Because of the recent role change in the company, I started doing some of the work of the core platforms, or starting doing some work of the work of a deeper level which I haven’t touched yet, like vsphere, terraform, jenkins, etc. I have never done such work or have only done part of these work of less complicated level, so it’s both an opportunity and a challenge for me to continue. So, I think, ok, then why don’t just set up a home lab where I can practice almost anything I need to get myself familiar with these platforms and how they are supposed to work.

I have tried to learn some of the platforms or frameworks before on my own, like vsphere, python frameworks, etc, but as they were only out of my interest and there was no real use case for me to put these learnings into, the learning didn’t go quite well. Most of the time, I followed the documentations either from the official releases or online sharing, and I made some progress and faced some issues. I might spend some time to fix the issues but without any guarantee or pushes from any other stakeholders, I either gave up or bypassed them with some workarounds which could be something quite unrelated to what I planed to do at the very beginning. That means, I did what I wanted or what I could, and reached to nothing of importance.

But now things are different, because I matters to my daily work and I need to provide solutions, real solutions, to fix the issues we face in our production environment. I can’t provide a workaround to B while we need to fix the current issues for A. I can’t say let’s just give up and figure out something else… It, just won’t work. We want to achieve something after the group discussion, or something that worked quite well does not work well any more and we need to fix it so that it can be back to working again. If that’s the case, I need to work with the team to get what need to be done done.

So, let me set up a similar lab environment where I can practice and test what I don’t know or what I have literally no idea what I am going to do causes what results… We have dev environment in the company, but I think it’s better to try something in home lab first, especially for something I have no background at all.

For that, I created an Azure Subscription and AWS Subscription where I can practice terraform to be consistent with our company environment. And expanding my existing domain environment, I deployed vSphere setup so that I can practice the management work and also try vm deployment with terraform to achieve the code as infrastructure. These are the first step to get my home lab up and running but I faced some of the issues during the setup, including the datastore creation for the vsphere environment as it does not support usb drive by default and I need to search online for workarounds to make it work with my limited home specs, and the network preparation for my vsphere environment and my other domain services, etc. There are such issues which took me quite some time to find the solutions and get it work. But the good thing is I now get everything up and running. The next step is to configure the settings to be more consistent with my work environment so that I can practice in a more close environment as my daily work. But I know there will be some limitations, like most of the setups I have deployed are either personal license or evaluation version, which are quite different from the corporate and payed versions, so there will be something which I can not test in my home lab environment, but I think that’s ok because the main purpose of my home lab is to get myself familiar with the platforms and services from a very basic and initial level. It does not need to be full perspectives, and it does not need to be anything quite professional. It only needs to provide me with a very basic and general level of concept of what it is and how it generally works.

Maybe I am wrong, but for most of the technical personnel, knowing how a certain platform works is not an important part of the work or it’s not the most important part, because most of the platforms share much in common with others and we don’t need to have specific working experience with certain platforms to be competent in certain role. What decides whether we are competent is our mind sets, meaning how to receive and analyze when issues occur, especially those we have not handled before. The actions we take when we receive such issues, the plans we make to analyze and work to fix these issues and also how we finally sort out these issues. These are the more important aspects of a person that matters to the team, department and the whole company.

Something completed, and more to come for next week and weeks.