Creating a Dev Server
Creating a Development Server from an Unused Laptop
I created a new site for my portfolio and a place for me to start writing about my career, personal thoughts, and ideas. To give a brief background on me, I’ve been in the software industry for more than five years now with an emphasis on DevOps. I read a lot of Hacker News and have a continuous improvement mindset on software and my personal being.
The DevOps mentality can be described to a tee below:
I choose a lazy person to do a hard job. Because a lazy person will find an easy way to do it.
Bill Gates
Why spend all of your precious time doing the hard stuff when you can automate it? There are so many tools out there now (and still being released!) that can save you so much time.
My website is built on Ruby and Jekyll. Let’s say I clone my repo, have Ruby installed on my local machine, my deployment is successful and everything is working great. Now how would I track WHICH version of Ruby I’m using? What if I clone on a different machine with a different Ruby version? Will it still work? Probably, but why take the chance? This is where language version managers come in handy.
rbenv is a language version manager for Ruby. Simply put, it checks to see which Ruby version has been committed to the repository and uses that in the workflow. For example, I’m using Ruby version 3.1.2 on my machine, I commit a new file at the root directory named .ruby-version
with 3.1.2
inside. Now all workflows, assuming that it has rbenv
installed, can use the command rbenv local
with a conditional rbenv install
before starting the main workflow, and it will switch the Ruby version to what is defined in .ruby-version
!
Similar tools are nvm for node projects and pyenv for python projects.
I hope that my future posts can bring more insight on similar automation tasks or at least food for thought.