π³ Container image for an all-in-one DevOps environment with popular tools like Ansible, Terraform, kubectl, AWS CLI, Azure CLI, Git, Python and more...
- 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, ...
Before you begin, ensure that you have Docker installed. It's also helpful to have a basic understanding of Docker concepts.
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
)
- Repository:
- 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.
- Specific tag (e.g.,
NOTE: In the following section, we use the latest tag in the documentation, but you can specify your desired tag based on your needs.
-
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).
- You can replace
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
DockerHub image: tungbq/devops-toolkit:latest
docker pull tungbq/devops-toolkit:latest
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.
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
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
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.3 | 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.18 | Check | awscli_usage |
AzureCLI | AZURECLI_VERSION=2.62.0 | Check | azurecli_usage |
PowerShell | PS_VERSION=7.4.4 | Check | TODO |
And more tools to be implemented...
- 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
- If you find this repository helpful, kindly consider showing your appreciation by giving it a star β Thanks! π