예제 #1
0
        parser.write(out)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Script for updating lambda function code. ' + 
                                     'To supply arguments from a file, provide the filename prepended with an `@`.',
                                     fromfile_prefix_chars = '@')
    parser.add_argument('--aws-credentials', '-a',
                        metavar = '<file>',
                        default = os.environ.get('AWS_CREDENTIALS'),
                        type = argparse.FileType('r'),
                        help = 'File with credentials for connecting to AWS (default: AWS_CREDENTIALS)')
    parser.add_argument('domain',
                        help = 'Domain that lambda functions live in, such as integration.boss.')
    parser.add_argument('--refresh-only', '-r',
                        action = 'store_true',
                        help = 'Tell AWS to just reload the lambdas from S3')

    args = parser.parse_args()

    if args.aws_credentials is None:
        parser.print_usage()
        print("Error: AWS credentials not provided and AWS_CREDENTIALS is not defined")
        sys.exit(1)

    session = aws.create_session(args.aws_credentials)
    bucket = aws.get_lambda_s3_bucket(session)

    if not args.refresh_only:
        load_lambdas_on_s3(session, args.domain, bucket)
    update_lambda_code(session, args.domain, bucket)
예제 #2
0
    parser = argparse.ArgumentParser(
        description=
        "This script does some initial configuration of a new AWS Account " +
        "to function as theboss.  It should only be run once on an AWS Account.",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog='one time setup for new AWS Account')
    parser.add_argument(
        "--aws-credentials",
        "-a",
        metavar="<file>",
        default=os.environ.get("AWS_CREDENTIALS"),
        type=argparse.FileType('r'),
        help=
        "File with credentials to use when connecting to AWS (default: AWS_CREDENTIALS)"
    )

    args = parser.parse_args()

    if args.aws_credentials is None:
        parser.print_usage()
        print(
            "Error: AWS credentials not provided and AWS_CREDENTIALS is not defined"
        )
        sys.exit(1)

    session = aws.create_session(args.aws_credentials)

    create_initial_sns_accounts(session)
    create_billing_alarms(session)
    import_iam_details_from_files(session)
예제 #3
0
                        metavar = "domain",
                        help = "Domain to target")

    args = parser.parse_args()

    if args.aws_credentials is None:
        parser.print_usage()
        print("Error: AWS credentials not provided and AWS_CREDENTIALS is not defined")
        sys.exit(1)

    if args.ssh_key is None:
        parser.print_usage()
        print("Error: SSH key not provided and SSH_KEY is not defined")
        sys.exit(1)

    session = aws.create_session(args.aws_credentials)
    bastion = aws.machine_lookup(session, 'bastion.' + args.domain)
    iam = session.resource('iam')
    client = session.client('iam')

    domain = args.domain.replace('.', '-')

    print("Opening ssh tunnel")
    with vault_tunnel(args.ssh_key, bastion):
        print("\tcomplete")

        v = Vault('vault.' + args.domain)

        #while True:
        #    try:
        #        v.revoke_secret_prefix('aws/creds/ingest-loadtest')