“What’s Mailvelope?”, asked one of our DevOps engineers we recently hired. I showed him how this Chrome extension makes it super easy to encrypt and decrypt secrets using PGP keys. Does he love the extension? You bet he does!
Engineers normally know they need to install Chef, Ansible, or Sublime, but there are some additional tools that can make them more effective. We created this blog post as a checklist for the internal onboarding process, as we believe these tools are essential for anyone managing modern infrastructures. We hope you’ll find it useful!
1. Operating System (OS)
Without an OS, your computer is just a box that stares at you. All the components inside your computer are unable to communicate with each other or to respond to your commands. Although most tools are available across all major platforms, with time, you will realize that it is important to have a uniform OS to ensure all the tools run without causing issues.
As an example, we will be using Ubuntu 16.04.2 TLS as our base operating system since this is the most prevalent desktop/laptop OS and doesn’t require specialized hardware to run, unlike macOS.
There are a few steps we need to complete before we install the OS. First, ensure that your system’s BIOS is properly configured to support 64-bit OS and CPU virtualization. If you’re doing this for the first time, make sure to consult your system’s documentation for configuring your system’s BIOS. Secondly, we recommend a memory of 8 GB with 64-bit architecture and CPU virtualization capability.
Installation of Ubuntu is a straightforward process. Once the installation of the OS is complete, ensure that your system is up-to-date by running the
apt-get update and
apt-get upgrade commands.
2. Communication tools
The list of communication tools may vary depending on your organization, but today, Slack is the most effective team collaboration application.
Before Slack, there were inboxes of unanswered emails or Post-Its for internal communication, and you would spend hours responding to them. Slack makes communication easier as it allows you to switch channels, as well as communicate faster with your colleagues or create groups for topics debating a certain issue.
3. Text Editor
A good text editor can increase productivity by 10x. nClouds recommends Sublime Text and vim. Both of these editors are flexible and have great plugins.
4. Encryption and security
Mailvelope is a browser extension that enables seamless exchange of encrypted emails. It is compatible with most web browsers and supports all major webmail providers. After installing the plugin, make sure to generate the keys for your email account. You can share the public part of your keys with people you want to establish encrypted email communication with, so they can decrypt your emails and vice versa.
Sharing secrets with other engineers is also an essential task of day-to-day operation. Lastpass is a password storage and management service for encrypted storage, management, and sharing of passwords. Lastpass has a standard web-interface where you can login for passwords and includes web browser plugins for one-click storage and use of your passwords. As one of the most popular password management tools, Lastpass combines a password manager with cloud-base storage. In addition, the tool will automatically fill in your credentials the next time you login into your email or any other web application.
All you need to do is create an account and you are good to go.
Openvpn is the most popular vpn application for creating secure point-to-point or site-to-site VPN connections. OpenVPN is your go-to application/software for establishing instant and secure communication between your machine and the systems you will be managing.
On the Ubuntu machine, you can install OpenVPN by using the apt-get utility from the command line:
apt-get install openvpn
Next, use the
--version command to confirm the installation
After installing OpenVPN, you will need to generate SSH keys for authentication with remote systems. You can generate SSH keys using the following command:
ssh-keygen -t rsa -C ‘firstname.lastname@example.org’
Once you have verified your SSH key, you can add it to the ssh-agent so that you can seamlessly use your keys to connect to remote systems. Use the following command to perform this action:
eval “$(ssh-agent -s)”
Git is the most popular version control system, and using your Git account, you can upload code, commit new changes, and branch, merge, and compare past versions in real time. The changes will be visible to your team members and for wider members of the development community. You can also access repositories of your other team members and the wider developer community.
On Ubuntu, installation is easy. You will only need to run the following command:
apt-get install git
Chef provides an automation framework to deploy and manage systems, especially cloud infrastructure, no matter the size of your infrastructure.
After you have installed the latest version, you will be able to run the
chef --version command to verify the installed Chef version. You will notice that installing Chef Development Kit also automatically installs chef-client, berks, and kitchen.
Then, we advise you to use the
chef verify command to verify the Chef Development Kit installation
VirtualBox helps you create and launch virtual machines right from your machine and plays a major role in replicating the issues you will encounter during on-call or day-to-day operations. It also allows you to test a new system roll-out before it goes live.
The command we use to install the application in Ubuntu is as follows:
apt-get install virtualbox. That’s all you need to do.
Vagrant is used to setup and manage development and testing environments using virtual machines, and it allows you to quickly set up your desired environment using pre-packaged Vagrant Boxes.
Vagrant manages all the necessary configurations for setting up customized environments, so you can avoid the unnecessary maintenance and setup time and focus on the issue at hand. You can use the following command to install the latest stable version of Vagrant on your Ubuntu machine.
apt-get install vagrant
Now run the
vagrant --version command to confirm Vagrant installation.
As a DevOps engineer, most of your time is spent on the terminal, and now, most API calls respond in JSON. Jq makes it easy to extract values for certain attributes from JSON output. This is incredibly useful for scripting. We also use it for quick json syntax checking using jq
cat cloudformation/opsworks.json | jq .
11. The Engineer
Just as the computer wouldn’t be able to run without an OS, these amazing tools wouldn’t be able to run without you. You are the Beethoven of today’s applications and the reason why many websites or apps are delighting their users around the world. Keep learning and keep sharing. Let us know if we missed any of your favorite tools 🙂