Skip to content

Automated infrastructure setup for Amazon EKS using Terraform, Ansible, and Vault. Ensures secure, scalable, and efficient Kubernetes deployments on AWS.

Notifications You must be signed in to change notification settings

manupanand/eks-infra-setup

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 

Repository files navigation


EKS Infrastructure Setup Using Terraform, Ansible, and Vault

Overview

This repository provides an automated and secure method for deploying an Amazon Elastic Kubernetes Service (EKS) infrastructure. By leveraging Terraform for infrastructure provisioning, Ansible for configuration management, and Vault for secrets management, the project ensures scalability, security, and efficiency.

Features

  • Infrastructure as Code (IaC): Utilize Terraform to define and provision EKS clusters and other AWS resources.
  • Configuration Management: Use Ansible for configuring nodes, deploying dependencies, and setting up Kubernetes workloads.
  • Secure Secrets Management: Leverage Vault to securely manage sensitive data such as credentials and secrets.
  • Modular Design: Organize code into reusable modules for flexibility and clarity.

Prerequisites

Before you begin, ensure you have the following installed:

  • Terraform (>= 1.0.0)
  • Ansible (>= 2.9)
  • HashiCorp Vault (>= 1.8.0)
  • AWS CLI (>= 2.0.0)
  • An AWS account with proper IAM permissions
  • A workstation with access to the internet and required tools

Setup and Usage

1. Clone the Repository

git clone https://github.com/your-username/eks-infra-setup.git
cd eks-infra-terraform-ansible-vault

2. Configure Terraform

  1. Navigate to the Terraform directory:
    cd terraform
  2. Update the variables.tf file with your AWS region, VPC details, and other parameters.
  3. Initialize Terraform:
    terraform init
  4. Apply the configuration:
    terraform apply
    This will provision the necessary infrastructure, including EKS clusters.

3. Configure Secrets with Vault

  1. Start Vault and authenticate:
    vault login <your-auth-token>
  2. Store sensitive information:
    vault kv put secret/eks-access kubeconfig=<your-kubeconfig> aws_key=<your-aws-key>

4. Use Ansible for Configuration

  1. Navigate to the Ansible directory:
    cd ansible
  2. Update the inventory and playbooks to match your environment.
  3. Execute the playbook to configure the infrastructure:
    ansible-playbook main.yml

Directory Structure

├── terraform/
│   ├── main.tf
│   ├── variables.tf
│   ├── outputs.tf
├── ansible/
│   ├── inventory
│   ├── roles/
│   ├── main.yml
├── vault/
│   ├── policies/
│   ├── secrets/
├── README.md

Contributions

Contributions are welcome! Please fork the repository and create a pull request with detailed descriptions of your changes.

License

This project is licensed under the MIT License.


You can customize this README to include specific details about your setup or additional functionality. Let me know if you'd like any edits or enhancements!

About

Automated infrastructure setup for Amazon EKS using Terraform, Ansible, and Vault. Ensures secure, scalable, and efficient Kubernetes deployments on AWS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published