Setting up your Ubuntu system for DevOps

Mohit Kumar
12 min readApr 16, 2023

In today’s fast-paced software development world, DevOps has become an essential approach for creating, testing and delivering software products at a rapid pace. To set up your PC for DevOps, you need to have the right tools and applications installed on your system. Setting up your PC for DevOps is a crucial step in the software development process, as it can save you time and improve your productivity. In this guide, we will explore the essential tools and applications that you need to install on your PC to set it up for DevOps, including development tools, automation tools, and other software applications. With these tools in place, you’ll be ready to start building and delivering high-quality software products with the speed and efficiency of DevOps.

This is continuation to my previous post of setting my system for Development

Git

Git is a free and open-source distributed version control system that was created by Linus Torvalds in 2005. It was designed to be fast, efficient, and scalable, making it ideal for managing both small and large software development projects.

GIT homepage

Git allows developers to track changes in source code, collaborate with others, and maintain a history of project revisions. It accomplishes this by allowing multiple users to work on the same codebase simultaneously, while also providing a system for managing changes to the codebase and reconciling any conflicts that may arise.

To Install git you can use the apt package manager with the following command.

sudo apt-get install git
git is a distributed scm

One of the main advantages of Git is its ability to create and manage branches, which allows developers to experiment with new features and ideas without affecting the main codebase. Git also provides a robust set of tools for merging and integrating these changes back into the main codebase, enabling teams to work together effectively on complex software projects.

Git has become the standard version control system for many software development teams, due in large part to its flexibility, scalability, and ease of use. Whether you’re a professional software developer or just getting started with programming, Git is an essential tool for managing your codebase and collaborating with others.

oh-my-zsh

oh-my-zsh is an open-source framework for managing the Zsh shell. It was created by Robby Russell in 2009 and has since become one of the most popular Zsh frameworks available. Oh My Zsh is designed to make it easy to configure and customize your Zsh shell, with a range of plugins, themes, and settings that can be easily added and managed.

One of the main advantages of Oh My Zsh is its extensive library of plugins, which can be used to add additional functionality and features to your Zsh shell. These plugins cover a wide range of use cases, from auto-completion and syntax highlighting to Git integration and custom aliases.

In addition to its plugins, Oh My Zsh also includes a range of customizable themes that can be used to change the look and feel of your Zsh shell. Themes can be easily installed and customized, allowing you to create a personalized and professional-looking shell environment.

Oh My Zsh is also highly customizable, with a range of settings and options that can be adjusted to suit your specific needs and preferences. Whether you’re a novice user or an experienced developer, Oh My Zsh offers a powerful and flexible framework for managing your Zsh shell and enhancing your productivity.

To Install oh-my-zsh you can follow these steps, you need to have curl and zsh before you can install oh-my-zsh

sudo apt-get install curl zsh 

sh -c “$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Docker

Docker is an open-source containerization platform that is designed to make it easier to create, deploy, and run applications in a variety of environments. It was created in 2013 and has since become one of the most popular tools for containerization.

Docker enables developers to package their applications and dependencies into self-contained, portable containers, which can be run on any system that supports Docker. These containers are lightweight, fast, and secure, making them ideal for use in cloud environments, as well as in local development and testing.

One of the key advantages of Docker is its ability to simplify the deployment and management of applications. With Docker, developers can create a containerized application once, and then deploy it across multiple environments, without having to worry about compatibility issues or configuration differences.

Installation of Docker in Linux use the following command in Ubuntu Linux

sudo apt-get install containerd docker docker-compose

VirtualBox

VirtualBox is a free and open-source virtualization software that allows users to run multiple operating systems on a single computer. It was created by Oracle Corporation in 2007 and has since become one of the most popular virtualization tools available.

VirtualBox works by creating a virtual environment in which you can install and run multiple operating systems, including Windows, Linux, and macOS. This virtual environment is isolated from your host operating system, which means that any changes or modifications you make to your virtual environment will not affect your host operating system.

One of the main advantages of VirtualBox is its versatility. It can be used for a wide range of applications, from testing software and developing applications to running legacy software and experimenting with new operating systems. With VirtualBox, you can create and manage virtual machines with ease, allowing you to run multiple operating systems simultaneously and switch between them with just a few clicks.

To install VirtualBox, I am going to follow these steps

Add the following line to the /etc/apt/sources.list


deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian jammy contrib

wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg

sudo apt-get update
sudo apt-get install virtualbox-6.1

Vagrant

Vagrant is a popular open-source tool that is used for creating and managing virtual development environments. It was first released in 2010 by Mitchell Hashimoto and has since become a key tool for software developers and IT professionals alike.

Vagrant works by automating the creation and configuration of virtual machines, allowing developers to easily create and manage their development environments with ease. With Vagrant, developers can define their development environment in a simple configuration file, which can be easily shared and replicated across multiple systems.

One of the main advantages of Vagrant is its flexibility. It supports a wide range of virtualization providers, including VirtualBox, VMware, and Hyper-V, allowing developers to choose the best virtualization platform for their specific needs. Vagrant also supports a wide range of operating systems, including Linux, Windows, and macOS, making it a versatile tool for developers working in different environments.

Use the following links to install Vagrant on your Linux box.

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant

Wireshark

Wireshark is a free and open-source network protocol analyzer that allows users to capture, analyze, and troubleshoot network traffic. It was first released in 1998 as Ethereal, but was later renamed to Wireshark in 2006.

Wireshark works by capturing packets of network data and displaying them in a user-friendly interface. It supports a wide range of protocols, including Ethernet, Wi-Fi, TCP/IP, and HTTP, making it a versatile tool for network administrators and security professionals.

One of the main advantages of Wireshark is its ability to help troubleshoot network problems. With Wireshark, network administrators can quickly identify and isolate network issues, such as misconfigured routers, network congestion, or security breaches. Wireshark also provides a range of advanced features, such as the ability to filter and analyze network traffic, making it a powerful tool for network analysis and optimization.

Installation is simple, you just need to install Wireshark, tshark and Tcpdump

sudo apt-get install wireshark tshark tcpdump

Python

Python is a popular high-level programming language that is widely used in a variety of industries and applications. Created in the late 1980s by Guido van Rossum, Python has since become one of the most popular programming languages in the world, with a large and active community of developers and users.

One of the main advantages of Python is its simplicity and ease of use. Its clear and concise syntax makes it easy to read and write, making it an ideal choice for beginners and experienced developers alike. Python also has a vast standard library, which includes a wide range of modules and tools that can be used to develop a wide range of applications, from web development to scientific computing.

Another advantage of Python is its versatility. It can be used for a wide range of applications, from building desktop applications and web applications to data analysis and machine learning. Python also has a range of third-party libraries and frameworks, such as Django, Flask, NumPy, and TensorFlow, which can be used to extend its functionality and support a wide range of use cases.

Python3 is already installed with the latest releases of Ubuntu

Python is also highly portable, with versions available for all major operating systems, including Windows, Linux, and macOS. Its ease of use, versatility, and portability have made it a popular choice for developers and organizations of all sizes, making Python an essential tool for many different industries and applications.

sudo apt-get install python3 python3-pip

Ansible

Ansible is an open-source IT automation tool that is designed to simplify the deployment and management of software and infrastructure. It was created by Michael DeHaan in 2012 and has since become one of the most popular automation tools available.

Ansible works by using simple YAML-based configuration files to define tasks and workflows, making it easy for developers and IT professionals to automate complex processes. It can be used to automate a wide range of tasks, including software deployment, configuration management, and infrastructure provisioning.

One of the main advantages of Ansible is its simplicity. It does not require any special agents or software to be installed on remote systems and can be easily configured and managed from a central control node. This makes it a highly scalable and flexible tool for managing large and complex environments.

To Install Ansible, follow these steps

python3 -m pip install --user ansible

Terraform

Terraform is an open-source infrastructure-as-code tool that is designed to automate the provisioning, deployment, and management of cloud-based infrastructure. Created by HashiCorp in 2014, Terraform has become a popular tool for DevOps engineers, cloud architects, and IT professionals.

Terraform works by defining infrastructure as code, which allows developers to easily manage complex cloud environments using simple configuration files. With Terraform, users can define and manage infrastructure resources, such as virtual machines, networks, and storage, across a wide range of cloud providers, including AWS, Azure, and Google Cloud Platform.

One of the main advantages of Terraform is its ability to provide a single, unified interface for managing cloud infrastructure. This enables users to manage complex cloud environments more efficiently and effectively, without the need for multiple tools or platforms.

Terraform also provides a range of advanced features, such as support for version control, testing, and automation, making it a powerful tool for managing cloud infrastructure at scale. Whether you’re a DevOps engineer, cloud architect, or IT professional, Terraform is a versatile and reliable tool that can help you automate and streamline your cloud infrastructure management.

To install Terraform, use the following commands

wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

AWS CLI

The AWS Command Line Interface (CLI) is an open-source tool that allows developers and IT professionals to interact with Amazon Web Services (AWS) from the command line. Created by Amazon in 2013, the AWS CLI has become a popular tool for managing and automating AWS services.

The AWS CLI works by providing a simple, unified interface for interacting with AWS services, making it easy to manage and automate AWS resources from the command line. With the AWS CLI, users can perform a wide range of tasks, such as creating and managing EC2 instances, managing S3 buckets, and configuring IAM policies.

One of the main advantages of the AWS CLI is its flexibility. It can be used on a wide range of platforms, including Windows, macOS, and Linux, and can be easily integrated with other command line tools and scripts. This makes it a highly versatile tool for managing and automating AWS services.

To install AWS CLI you can follow these steps

# Download the awscliv2.zip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

# unzip the package
unzip awscliv2.zip

# run the install script
sudo ./aws/install

# Check the version
aws --version

VS Code & VIM

VS Code

Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET)

Vim

Vim is a highly configurable, open-source text editor that is known for its speed, efficiency, and versatility. Originally released in 1991, Vim is a descendant of the popular Vi editor and is designed to work in a terminal environment, making it ideal for use on servers or other systems without graphical interfaces.

One of the things that sets Vim apart from other text editors is its extensive range of keyboard shortcuts and commands. These shortcuts allow experienced Vim users to navigate, edit, and manipulate text with incredible speed and precision, often without ever having to take their hands off the keyboard.

Another key feature of Vim is its high level of configuration. Users can customize the editor to suit their specific needs and preferences, from changing the appearance of the interface to defining their own key mappings and commands.

Despite its initial learning curve, Vim has developed a passionate following among developers, sysadmins, and other power users who value its speed, efficiency, and customizability. Whether you’re working on a remote server or just looking for a powerful text editor that can keep up with your workflow, Vim is definitely worth considering.

Conclusion

In conclusion, setting up your Ubuntu system for DevOps can greatly improve your productivity and efficiency as a developer or IT professional. By installing the right tools and software, you can streamline your development workflows, automate repetitive tasks, and manage your infrastructure more effectively.

--

--

Mohit Kumar

Making people communicate since 2010. Wireless Networking Professional based in Melbourne. https://mohitkr.com