Skip to main content

Terraform in minutes not months.

Project description

Finisterra

Finisterra is a Python script designed to automate the fetching and management of AWS resources across various services. It leverages the power of Boto3, the AWS SDK for Python, and concurrent executions to efficiently gather resources from specified AWS services.

Features

  • Multi-Service Support: Executes operations across a wide range of AWS services.
  • Parallel Execution: Utilizes ThreadPoolExecutor for concurrent execution of AWS service operations.
  • CLI Options: Easy-to-use command-line interface for specifying the provider and modules.
  • Environment Variable Support: Configuration through environment variables for AWS credentials and settings.
  • Dynamic Resource Naming: Automatically generates names for S3 buckets and DynamoDB tables based on the AWS account ID and region.
  • Rich Progress Display: Utilizes the rich library for real-time progress visualization.

Requirements

To run this script, you need the following:

  • Python 3.x
  • Boto3
  • Click
  • Rich
  • An AWS account with the necessary permissions to access the resources and services the script interacts with.

Installation

Before running the script, ensure you have all the required packages installed. You can install them using pip:

pip install requirements.txt

Configuration

The script uses environment variables for configuration. Ensure these are set before running the script:

  • AWS_ACCESS_KEY_ID: Your AWS access key ID.
  • AWS_SECRET_ACCESS_KEY: Your AWS secret access key.
  • AWS_SESSION_TOKEN: Your AWS session token (optional).
  • AWS_PROFILE: Your AWS profile name (optional).
  • AWS_REGION: The AWS region for the operations.
  • MAX_PARALLEL: The maximum number of parallel operations (optional, defaults to 10).

Usage

The script is executed from the command line with options to specify the provider (currently only aws is supported) and the module(s) to execute. The modules can be specified as a comma-separated list or "all" to execute operations for all supported modules.

python main.py --provider aws --module <module_name(s)>

CLI Options

  • --provider, -p: The cloud provider name (default: aws).
  • --module, -m: The module name(s) to execute, separated by commas, or "all" for all modules. This is a required option.

Supported Modules

The script can manage resources in the following AWS services:

  • VPC
  • ACM
  • API Gateway
  • Auto Scaling
  • CloudMap
  • CloudFront
  • CloudWatch Logs
  • DocumentDB
  • DynamoDB
  • EC2
  • ECR
  • ECS
  • EKS
  • ELBv2
  • ElastiCache Redis
  • Elastic Beanstalk
  • IAM Role
  • KMS
  • Lambda
  • RDS
  • S3
  • SNS
  • SQS
  • WAFv2
  • Step Functions
  • MSK
  • Aurora
  • Security Group
  • VPC Endpoint
  • Target Group
  • Elasticsearch
  • CodeArtifact
  • Launch Template

Contributing

Contributions are welcome! If you have suggestions for improving the script or adding new features, please feel free to submit a pull request or create an issue.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

finisterra-1.0.29.tar.gz (145.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

finisterra-1.0.29-py3-none-any.whl (186.9 kB view details)

Uploaded Python 3

File details

Details for the file finisterra-1.0.29.tar.gz.

File metadata

  • Download URL: finisterra-1.0.29.tar.gz
  • Upload date:
  • Size: 145.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for finisterra-1.0.29.tar.gz
Algorithm Hash digest
SHA256 6043e3e15467bef1f4b23aae0509f43d3d70a4f6206703ec748d1c51871288d1
MD5 832df9207fefbf5387bb2c8f17349cbe
BLAKE2b-256 a97f696c9bc1f628b5960f186128d9dc4c1b34454bb7052e3a3ef11dcb03a219

See more details on using hashes here.

File details

Details for the file finisterra-1.0.29-py3-none-any.whl.

File metadata

  • Download URL: finisterra-1.0.29-py3-none-any.whl
  • Upload date:
  • Size: 186.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for finisterra-1.0.29-py3-none-any.whl
Algorithm Hash digest
SHA256 12fbda96c1333079b3d1dd65a24525d348174b430a1a85820ffc72bef90aec25
MD5 17848e561eb3c03370cfa7f9b6b84266
BLAKE2b-256 f4ee8bfe6cac735fc3a3e429afbb25526b6629b7e91c84bedeb5bd853866d77e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page