<img align="right" src="https://raw.github.com/cliffano/mpaws/main/avatar.jpg" alt="Avatar"/>
[![Build Status](https://github.com/cliffano/mpaws/workflows/CI/badge.svg)](https://github.com/cliffano/mpaws/actions?query=workflow%3ACI)
[![Security Status](https://snyk.io/test/github/cliffano/mpaws/badge.svg)](https://snyk.io/test/github/cliffano/mpaws)
[![Published Version](https://img.shields.io/pypi/v/mpaws.svg)](https://pypi.python.org/pypi/mpaws)
<br/>
mpaws
-----
mpaws is a Python CLI for running an AWS command across multiple profiles and multiple regions in one go.
This is a time-saver when you are managing dozens of AWS accounts and need to run the same command across all of them.
Installation
------------
pip3 install mpaws
Usage
-----
Set an environment variable `MPAWS_PROFILES`, and another environment variable `MPAWS_REGIONS`, then run `mpaws` command:
export MPAWS_PROFILES=profile1,profile2,profile3
export MPAWS_REGIONS=us-east-1,ap-southeast-2
mpaws ec2 describe-instances
The above command will run `aws ec2 describe-instances` command for each permutation of the AWS profiles and AWS regions, like these:
AWS_PROFILE=profile1 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances
AWS_PROFILE=profile1 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances
AWS_PROFILE=profile2 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances
AWS_PROFILE=profile2 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances
AWS_PROFILE=profile3 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances
AWS_PROFILE=profile3 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances
Alternatively, you can also run `mpaws` with multiple AWS profiles against a single AWS region. You can do this by setting the environment variable `MPAWS_PROFILES`, then run `mpaws` command:
export MPAWS_PROFILES=profile1,profile2,profile3
mpaws ec2 describe-instances
The above command will run `aws ec2 describe-instances` command using each AWS profile, combined with the configured AWS region (either via `AWS_DEFAULT_REGION`, `AWS_REGION`, or [the configured region within the profile definition](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-format-profile)).
Here's an example if `AWS_DEFAULT_REGION` is specified with us-east-1 as the value:
AWS_PROFILE=profile1 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances
AWS_PROFILE=profile2 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances-instances
AWS_PROFILE=profile3 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances
Note that each run will also carry over the environment variables available from the original `mpaws` command run.
Configuration
-------------
Ensure that the profiles specified in `MPAWS_PROFILES` are already [configured in credential file](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). And the regions specified in `MPAWS_REGIONS`, `AWS_DEFAULT_REGION`, `AWS_REGION`, or AWS configuration are [valid regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/).
| Environment Variable | Mandatory | Example |
|----------------------|-----------|---------|
| MPAWS_PROFILES | Yes | profile1,profile2,profile3 |
| MPAWS_REGIONS | No | us-east-1,ap-southeast-2 |
| AWS_DEFAULT_REGION | No | us-east-1 |
| AWS_REGION | No | us-east-1 |
Colophon
--------
[Developer's Guide](https://cliffano.github.io/developers_guide.html#python)
Build reports:
* [Lint report](https://cliffano.github.io/mpaws/lint/pylint/index.html)
* [Code complexity report](https://cliffano.github.io/mpaws/complexity/wily/index.html)
* [Unit tests report](https://cliffano.github.io/mpaws/test/pytest/index.html)
* [Test coverage report](https://cliffano.github.io/mpaws/coverage/coverage/index.html)
* [Integration tests report](https://cliffano.github.io/mpaws/test-integration/pytest/index.html)
* [API Documentation](https://cliffano.github.io/mpaws/doc/sphinx/index.html)
Raw data
{
"_id": null,
"home_page": "https://github.com/cliffano/mpaws",
"name": "mpaws",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "mpaws,aws,cli,multi,multiple,profiles,regions",
"author": "Cliffano Subagio",
"author_email": "cliffano@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/bc/6c/80b4f67b3fd2cdd20fd9829e666440415537af73099e343cb83512776740/mpaws-0.11.0.tar.gz",
"platform": null,
"description": "<img align=\"right\" src=\"https://raw.github.com/cliffano/mpaws/main/avatar.jpg\" alt=\"Avatar\"/>\n\n[![Build Status](https://github.com/cliffano/mpaws/workflows/CI/badge.svg)](https://github.com/cliffano/mpaws/actions?query=workflow%3ACI)\n[![Security Status](https://snyk.io/test/github/cliffano/mpaws/badge.svg)](https://snyk.io/test/github/cliffano/mpaws)\n[![Published Version](https://img.shields.io/pypi/v/mpaws.svg)](https://pypi.python.org/pypi/mpaws)\n<br/>\n\nmpaws\n-----\n\nmpaws is a Python CLI for running an AWS command across multiple profiles and multiple regions in one go.\n\nThis is a time-saver when you are managing dozens of AWS accounts and need to run the same command across all of them.\n\nInstallation\n------------\n\n pip3 install mpaws\n\nUsage\n-----\n\nSet an environment variable `MPAWS_PROFILES`, and another environment variable `MPAWS_REGIONS`, then run `mpaws` command:\n \n export MPAWS_PROFILES=profile1,profile2,profile3\n export MPAWS_REGIONS=us-east-1,ap-southeast-2\n mpaws ec2 describe-instances\n\nThe above command will run `aws ec2 describe-instances` command for each permutation of the AWS profiles and AWS regions, like these:\n \n AWS_PROFILE=profile1 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances\n AWS_PROFILE=profile1 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances\n AWS_PROFILE=profile2 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances\n AWS_PROFILE=profile2 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances\n AWS_PROFILE=profile3 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances\n AWS_PROFILE=profile3 AWS_DEFAULT_REGION=ap-southeast-2 AWS_REGION=ap-southeast-2 aws ec2 describe-instances\n\nAlternatively, you can also run `mpaws` with multiple AWS profiles against a single AWS region. You can do this by setting the environment variable `MPAWS_PROFILES`, then run `mpaws` command:\n \n export MPAWS_PROFILES=profile1,profile2,profile3\n mpaws ec2 describe-instances\n\nThe above command will run `aws ec2 describe-instances` command using each AWS profile, combined with the configured AWS region (either via `AWS_DEFAULT_REGION`, `AWS_REGION`, or [the configured region within the profile definition](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-format-profile)).\n\nHere's an example if `AWS_DEFAULT_REGION` is specified with us-east-1 as the value:\n\n AWS_PROFILE=profile1 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances\n AWS_PROFILE=profile2 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances-instances\n AWS_PROFILE=profile3 AWS_DEFAULT_REGION=us-east-1 AWS_REGION=us-east-1 aws ec2 describe-instances\n\nNote that each run will also carry over the environment variables available from the original `mpaws` command run.\n\nConfiguration\n-------------\n\nEnsure that the profiles specified in `MPAWS_PROFILES` are already [configured in credential file](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). And the regions specified in `MPAWS_REGIONS`, `AWS_DEFAULT_REGION`, `AWS_REGION`, or AWS configuration are [valid regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/).\n\n| Environment Variable | Mandatory | Example |\n|----------------------|-----------|---------|\n| MPAWS_PROFILES | Yes | profile1,profile2,profile3 |\n| MPAWS_REGIONS | No | us-east-1,ap-southeast-2 |\n| AWS_DEFAULT_REGION | No | us-east-1 |\n| AWS_REGION | No | us-east-1 |\n\nColophon\n--------\n\n[Developer's Guide](https://cliffano.github.io/developers_guide.html#python)\n\nBuild reports:\n\n* [Lint report](https://cliffano.github.io/mpaws/lint/pylint/index.html)\n* [Code complexity report](https://cliffano.github.io/mpaws/complexity/wily/index.html)\n* [Unit tests report](https://cliffano.github.io/mpaws/test/pytest/index.html)\n* [Test coverage report](https://cliffano.github.io/mpaws/coverage/coverage/index.html)\n* [Integration tests report](https://cliffano.github.io/mpaws/test-integration/pytest/index.html)\n* [API Documentation](https://cliffano.github.io/mpaws/doc/sphinx/index.html)\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "Execute AWS CLI across multiple profiles and multiple regions in one go",
"version": "0.11.0",
"project_urls": {
"Documentation": "https://github.com/cliffano/mpaws",
"Homepage": "https://github.com/cliffano/mpaws",
"Repository": "https://github.com/cliffano/mpaws"
},
"split_keywords": [
"mpaws",
"aws",
"cli",
"multi",
"multiple",
"profiles",
"regions"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "330860672b6eae0861fcf18ccc5d8d68c68b405a051bef23e1ecfb962ff8f8d9",
"md5": "aa0df6b4f45f724bf42db0600f66028f",
"sha256": "42a48c55fc44d9ba06c4a46e3ff901b52255ed8bcee69b309fb3201b4e3eea80"
},
"downloads": -1,
"filename": "mpaws-0.11.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aa0df6b4f45f724bf42db0600f66028f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 8518,
"upload_time": "2023-10-23T12:05:32",
"upload_time_iso_8601": "2023-10-23T12:05:32.925008Z",
"url": "https://files.pythonhosted.org/packages/33/08/60672b6eae0861fcf18ccc5d8d68c68b405a051bef23e1ecfb962ff8f8d9/mpaws-0.11.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc6c80b4f67b3fd2cdd20fd9829e666440415537af73099e343cb83512776740",
"md5": "50b0b2a11ba04823bf884d3a382da985",
"sha256": "edce3f5d39724090d4437fdaf5ea1317ca2804c5b2f84193bfce45a18482fa21"
},
"downloads": -1,
"filename": "mpaws-0.11.0.tar.gz",
"has_sig": false,
"md5_digest": "50b0b2a11ba04823bf884d3a382da985",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 7646,
"upload_time": "2023-10-23T12:05:34",
"upload_time_iso_8601": "2023-10-23T12:05:34.404762Z",
"url": "https://files.pythonhosted.org/packages/bc/6c/80b4f67b3fd2cdd20fd9829e666440415537af73099e343cb83512776740/mpaws-0.11.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-23 12:05:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cliffano",
"github_project": "mpaws",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "mpaws"
}