devops-toolkit

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

APACHE-2.0 License

Stars
45

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! 💖