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

  • Comprehensive Toolset: Pre-installed with tools like Git, Python, Ansible, Terraform, kubectl, Helm, AWS CLI, Azure CLI, and more.
  • Easy Integration: Use it directly or customize it with your preferred versions.
  • Efficient Updates: Weekly updates ensure the latest versions and security patches.
  • Configuration Reusability: Mounts host config folders for seamless reuse across sessions.

Getting Started

1. Quick Start

mkdir -p $HOME/.dtc # Skip this step if you already created the configuration folder before
docker pull tungbq/devops-toolkit:latest
docker -it run --rm --name devops-toolkit-demo1 \
    -v $HOME/.dtc:/dtc \
    --network host  \
    tungbq/devops-toolkit:latest

2. Run with custom tool config from host (.dtc)

Mount current directory and start the toolkit

docker run -it --name devops-toolkit-demo2 \
    --volume "$PWD:$PWD" \
    --volume "$HOME/.dtc:/dtc" \
    --volume "$HOME/.ssh:/root/.ssh" \
    --workdir "$PWD" \
    --network host \
    tungbq/devops-toolkit:latest

# Adjust the docker run command base on your use cases

3. Run with tool config from host

docker run -it --name devops-toolkit-demo3 \
    --volume "$HOME/.aws:/root/.aws" \
    --volume "$HOME/.azure:/root/.azure" \
    --volume "$HOME/.kube:/root/.kube" \
    --volume "$HOME/.terraform.d:/root/.terraform.d" \
    --volume "$HOME/.config/helm:/root/.config/helm" \
    --volume "$HOME/.ansible:/root/.ansible" \
    --volume "$HOME/.gitconfig:/root/.gitconfig" \
    --volume "$HOME/.ssh:/root/.ssh" \
    --volume "$PWD:$PWD" \
    --workdir "$PWD" \
    --network host \
    tungbq/devops-toolkit:latest

# Adjust the docker run command base on your use cases

4. Note

  • .dtc stands for DevOps Toolkit Configuration
  • You can replace $HOME/.dtc with any desired folder path on your VM.
  • Remove the -v $HOME/.dtc:/dtc option if you do not wish to store configurations on the host (not recommended for configuration reuse).

Use DevOps Toolkit with devops-toolkit-cli

Optionally, you can use the provided execution script which simplifies the setup, execution, and management of the DevOps Toolkit.

1. Install

curl -o devops-toolkit-cli https://raw.githubusercontent.com/tungbq/devops-toolkit/main/devops-toolkit-cli
chmod +x devops-toolkit-cli
sudo mv devops-toolkit-cli /usr/local/bin/

2. Run

Navigate to your workspace folder, then:

  • Initialize the docker image, container and configuration directory:
devops-toolkit-cli init my_toolkit_01
# Run 'devops-toolkit-cli init my_toolkit_01 vX.Y.Z' if you want to use specific version.
# E.g: devops-toolkit-cli init my_toolkit_01 1.0.2
  • Start a shell in new container:
devops-toolkit-cli run my_toolkit_01
  • Execute a command in the container:
devops-toolkit-cli run my_toolkit_01 ls -la
  • Access the shell:
devops-toolkit-cli shell my_toolkit_01
  • Remove container if it's not used anymore
devops-toolkit-cli cleanup my_toolkit_01
# Run 'devops-toolkit-cli list' to list all available containers
# Run 'devops-toolkit-cli cleanup --all' to cleanup all devops-toolkit containers

3. Get Help

  • For more commands, run devops-toolkit-cli help.
  • For detailed devops-toolkit-cli document and advanced usage, see: docs/usage/devops_toolkit_cli

Versioning

We use the following versioning scheme:

  • Repository Tags: vX.Y.Z (e.g., v1.2.3)
  • Docker Tags: X.Y.Z or latest for the most recent version.

You can pull specific versions from Docker Hub using:

docker pull tungbq/devops-toolkit:1.2.3
docker pull tungbq/devops-toolkit:latest

For more details on versioning, check the release notes.

User Guide πŸ“–

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

Demo πŸ“Ί

  • Checkout the Demo code and instruction here.

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.5 Check ansible_usage
Terraform TERRAFORM_VERSION=1.9.8 Check terraform_usage
Kubectl KUBECTL_VERSION=1.31.1 Check kubectl_usage
Helm HELM_VERSION=3.16.2 Check helm_usage
AwsCLI AWSCLI_VERSION=2.18.10 Check awscli_usage
AzureCLI AZURECLI_VERSION=2.65.0 Check azurecli_usage
PowerShell PS_VERSION=7.4.5 Check TODO

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! πŸ’–