Introducing the new feature of DevOps Toolkit: Configuration Reusability 🚀
Tags: devops, docker, tooling, opensource
Published: 2024-07-09 15:11:18

## 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**](https://github.com/tungbq/devops-toolkit) to solve these problems. It's built on top of the [Docker](https://www.docker.com/) 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.
You could find my previous post for this tool [here](https://dev.to/tungbq/introducing-devops-toolkit-32fa)

## The DevOps Toolkit 🧰

- **GitHub repository:** [tungbq/devops-toolkit](https://github.com/tungbq/devops-toolkit)
- **Image on Dockerhub**: [tungbq/devops-toolkit:latest](https://hub.docker.com/r/tungbq/devops-toolkit)
- **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...

## Announcing Configuration Reusability

In our latest release, we're excited to introduce a powerful new feature: **Configuration Reusability**. This feature allows you to mount a configuration folder from the host to the container, enabling the reuse of configurations within the container, such as AWS and Azure login sessions. This enhancement simplifies the workflow, ensuring that you don't have to log in repeatedly and can maintain a consistent environment across multiple runs.

### Key Updates in This Release 🚀

- **Core Updates**:
  - Updated tool versions
- **New Features**:
  - Enabled toolkit container configuration reusable
- **Improvements**:
  - Installed SSH client
  - Ansible documentation improvement and minor image name change
  - Updated deploy-docker-image-release.yml to replace deprecated set-output
  - Updated instructions
  - Adjusted note in quick start section

You can checkout all devops-toolkit releases and new features [**here**](https://github.com/tungbq/devops-toolkit/releases).

## Quick Start Guide 📖

Before you begin, ensure that you have [Docker](https://docs.docker.com/engine/install/) 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**](https://github.com/tungbq/devops-basic/tree/main/topics/docker) to get started.

### Step 1: Pull the Official Image from Docker Hub

DockerHub image: [tungbq/devops-toolkit](https://hub.docker.com/r/tungbq/devops-toolkit)

```bash
docker pull tungbq/devops-toolkit:latest
```

### Step 2: Start and Explore the Toolkit Container

To start using the toolkit, run the following command:

```bash
mkdir -p ~/.devops-toolkit-config
docker run --network host -it --rm -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:latest
```

This command mounts your host's `.devops-toolkit-config` directory to the container, allowing the reuse of configurations.

### Step 3: Work on the Toolkit Container

Once inside the container, you can try login to AWS and/or Azure with aws or az CLI:

```bash
root@docker-desktop:~# aws configure
root@docker-desktop:~# az login --use-device-code
```

Exit the container and move to the next step

### Step 4: Verify the Configuration Reusability

Run the new container, you can find your previous configurations without login or configure again:

```bash
docker run --network host -it --rm -v ~/.devops-toolkit-config:/config tungbq/devops-toolkit:latest
root@docker-desktop:~# aws configure list
root@docker-desktop:~# az account show
```

Similar feature will happen with other tools like Ansible/Terraform/...

## Conclusion

In summary, the DevOps Toolkit simplifies the complexities of managing multiple DevOps tools and keeping them updated, in this new **Configuration Reusability** feature it will help us more. If you're interested, give it a try, share your feedback, and let's continue improving together. Happy coding! 💖

<table>
	<tr>
		<td>
			<a href="https://github.com/tungbq/devops-toolkit" style="text-decoration: none;"><strong>Star devops-toolkit ⭐️ on GitHub</strong></a>
		</td>
	</tr>
</table>