Skip to content

🐳 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.

License

Notifications You must be signed in to change notification settings

tungbq/devops-toolkit

devops-toolkit

DevOps Toolkit

🐳 Container image for an all-in-one DevOps environment with popular tools like Ansible, Terraform, kubectl, AWS CLI, Azure CLI, Git, Python and more...

last commit devops-toolkit release Docker main tungbq/devops-toolkit GitHub Repo stars

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 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.
  • Support Configuration Reusable: Mounts a config folder on the host to the container. This allows reusing configurations in the container, like AWS and Azure login sessions, ...

Prerequisites πŸ”“

Before you begin, ensure that you have Docker installed. It's also helpful to have a basic understanding of Docker concepts.

Versioning πŸ”–

Below is the versioning strategy for the repository and DockerHub:

  • Tagging format:
    • Repository: vX.Y.Z, for example: v1.2.3
    • DockerHub: X.Y.Z, for example: 1.2.3. (Usage: docker pull tungbq/devops-toolkit:1.2.3)
  • Tagging description:
    • Specific tag (e.g., 0.1.0, 0.2.3): Contains the latest tooling version and repository features at the time this repository is tagged.
    • In addition to that, we offer the latest tag on DockerHub (latest): Contains the latest tooling version and repository features inside the toolkit, which will be built and updated on a weekly basis.

NOTE: In the following section, we use the latest tag in the documentation, but you can specify your desired tag based on your needs.

Quick start πŸ”₯

  • Use latest tag

    mkdir -p ~/.devops-toolkit-config
    docker run --network host -it --rm -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:latest
  • Use specific tag

    docker run --network host -it --rm -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:0.1.0
  • NOTE

    • You can replace ~/.devops-toolkit-config with any desired folder path on your VM.
    • Remove the -v ~/.devops-toolkit-config:/config option if you do not wish to store configurations on the host (not recommended for configuration reuse).

Demo πŸ“Ί

docker run --network host --rm -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:latest samples/run_sample.sh

Check out the full sample and instruction at samples

Getting started πŸ“–

Pull the official image from Docker Hub

DockerHub image: tungbq/devops-toolkit:latest

docker pull tungbq/devops-toolkit:latest

Build your own image

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.

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 -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:latest
  • 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
    
    root@docker-desktop:~# aws configure
    root@docker-desktop:~# az login --use-device-code
    
    # ... more command as your needed

User Guide πŸ“–

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

  • Prepare configuration folder on the Host (Skip this step if you do not intend to reuse configurations.)

    mkdir ~/.devops-toolkit-config

    NOTE: We are using ~/.devops-toolkit-config to store toolkit configurations, but you can choose any folder name on the host.

  • For detailed instructions on using specific tools, refer to: DevOps toolkit specific tool user guide

  • For instructions on common run modes, visit DevOps toolkit common run mode

The DevOps Toolkit Core 🧰

Built on ubuntu:22.04 base image

Name Version Release Usage
Python PYTHON_VERSION=3.11 Check python_usage
Ansible ANSIBLE_VERSION=2.17.2 Check ansible_usage
Terraform TERRAFORM_VERSION=1.9.2 Check terraform_usage
Kubectl KUBECTL_VERSION=1.30.3 Check kubectl_usage
Helm HELM_VERSION=3.15.3 Check helm_usage
AwsCLI AWSCLI_VERSION=2.17.14 Check awscli_usage
AzureCLI AZURECLI_VERSION=2.62.0 Check azurecli_usage

And more tools to be implemented...

Contributing

  • See: CONTRIBUTING.md
  • Looking for the issue to work on? Check the list of our open issues good first issue
  • Feel free to open a new issue if you encounter the toolkit bug or want to request more content about DevOps toolkit
  • Submit a new issue (πŸ›) if you encounter the bug/error when using this toolkit

Hit the Star! ⭐

  • If you find this repository helpful, kindly consider showing your appreciation by giving it a star ⭐ Thanks! πŸ’–