Introducing DevOps Toolkit

Tung Leo - Mar 17 - - Dev Community

Background

In the world of DevOps, managing multiple tools on your computer can be quite a challenge. I know this struggle firsthand. Setting up each tool, ensuring they work together, and keeping them updated is a time-consuming and often frustrating process.

That's why I created the DevOps Toolkit to solve these problems.
It's built on top of the docker platform. I wanted to make it easier for developers and operations teams to get started with DevOps without the headaches of tool compatibility, setup, maintenance, and keeping everything up to date.

The DevOps Toolkit

  • GitHub repository: tungbq/devops-toolkit
  • Image on Dockerhub: tungbq/devops-toolkit:latest
  • Description: DevOps toolkit is a container image for an all-in-one DevOps environment with popular tools like Ansible, Terraform, kubectl, helm, AWS CLI, Azure CLI, Git, Python and more...

Key features

  • Pre-installed Tools: Includes a variety of essential tools such as git, python, ansible, terraform, kubectl, helm, awscli, azurecli, etc.
  • Continuous Integration: Utilizes full CI/CD for deployment to Docker Hub using GitHub Actions.
  • Documentation: Provides detailed documentation for each tool included.
  • Regular Updates: Weekly automated checks and updates for core tools ensure the toolkit's reliability and security.
  • Sample code: Includes sample code demonstrating the usage of various tools available in the toolkit.
  • Support for Build Variants: Enables users to customize the toolkit by building it with their preferred versions of each tool.

Prerequisites πŸ”“

Before you begin, ensure that you have Docker installed. It's also helpful to have a basic understanding of Docker concepts.
If you are new to docker, don't worry, you can refer to this docker document to get started.

Quick start πŸ”₯

docker run --network host -it --rm tungbq/devops-toolkit:latest
Enter fullscreen mode Exit fullscreen mode

Demo πŸ“Ί

Check out the full sample and instruction at samples

docker run --network host --rm tungbq/devops-toolkit:latest samples/run_sample.sh
Enter fullscreen mode Exit fullscreen mode

Getting started πŸ“–

1-Pull the official image from Docker Hub

DockerHub image: tungbq/devops-toolkit

docker pull tungbq/devops-toolkit:latest
Enter fullscreen mode Exit fullscreen mode

2-Build your own image (Optional)

Skip this step if you use the image from Dockerhub

  • If you prefer to build your own image from the source code, refer to the build_toolkit_image instructions.
  • We can customize the toolkit by building it with our preferred versions of each tool.

3-Start and explore the toolkit container

Once you have the image ready, you can start using the toolkit with the following commands

  • Start devops-toolkit container
docker run --network host -it --rm tungbq/devops-toolkit:latest
Enter fullscreen mode Exit fullscreen mode
  • Now we are in the docker container terminal, let's explore it
root@docker-desktop:~# python3 --version
Python 3.12.2

root@docker-desktop:~# terraform --version
Terraform v1.7.5
on linux_amd64

root@docker-desktop:~# kubectl version
Client Version: v1.29.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3

# ... more commands as your needed
Enter fullscreen mode Exit fullscreen mode

User guide πŸ“–

Explore the comprehensive guide below to gain insight into the detailed utilization of every tool within the toolkit

The DevOps Toolkit Core 🧰

Built on ubuntu:22.04 base image

Name Version Release Usage
Python PYTHON_VERSION=3.12.2 Check python_usage
Ansible ANSIBLE_VERSION=2.16.4 Check ansible_usage
Terraform TERRAFORM_VERSION=1.7.5 Check terraform_usage
Kubectl KUBECTL_VERSION=1.29.3 Check kubectl_usage
Helm HELM_VERSION=3.14.3 Check helm_usage
AwsCLI AWSCLI_VERSION=2.15.30 Check awscli_usage
AzureCLI AZURECLI_VERSION=2.58.0 Check azurecli_usage

NOTE: This is the latest version as of the time I write this blog post. The DevOps Toolkit repository has an automated CI pipeline that checks and updates these tools weekly to the latest versions.

And more upcoming content...⏩ you can follow this repository to get more up-to-dated features

Conclusion

In summary, the DevOps Toolkit simplifies the complexities of managing multiple DevOps tools and keeping them updated. If you're interested, give it a try, share your feedback, and let's continue improving together. Happy coding! πŸ’–

. . . . . . . . . . . . . . . . . . .