-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresource_usage.yml
More file actions
105 lines (87 loc) · 3.09 KB
/
resource_usage.yml
File metadata and controls
105 lines (87 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
- name: Fetch AWS Resources and Upload to S3
hosts: localhost
gather_facts: no
vars:
s3_bucket: "your-s3-bucket name"
output_file: "/tmp/aws-resources-{{ lookup('pipe', 'date +%F-%H-%M-%S') }}.txt"
tasks:
- name: Ensure AWS CLI is installed
command: which aws
register: aws_check
failed_when: aws_check.rc != 0
changed_when: false
- name: Ensure AWS credentials are configured
stat:
path: "~/.aws/credentials"
register: aws_credentials
- name: Fail if AWS credentials are missing
fail:
msg: "AWS credentials/config not found! Run 'aws configure'."
when: not aws_credentials.stat.exists
- name: Fetch AWS EC2 Instances
command: >
aws ec2 describe-instances
--query 'Reservations[*].Instances[*].[InstanceId,InstanceType,State.Name,PublicIpAddress,PrivateIpAddress]'
--output table
register: ec2_instances
- name: Fetch AWS S3 Buckets
command: >
aws s3api list-buckets
--query 'Buckets[*].[Name,CreationDate]'
--output table
register: s3_buckets
- name: Fetch AWS RDS Instances
command: >
aws rds describe-db-instances
--query 'DBInstances[*].[DBInstanceIdentifier,DBInstanceClass,Engine,DBInstanceStatus,Endpoint.Address]'
--output table
register: rds_instances
- name: Fetch AWS IAM Users
command: >
aws iam list-users
--query 'Users[*].[UserName,UserId,Arn,CreateDate]'
--output table
register: iam_users
- name: Fetch AWS Lambda Functions
command: >
aws lambda list-functions
--query 'Functions[*].[FunctionName,Runtime,Handler]'
--output table
register: lambda_functions
- name: Fetch AWS CloudFormation Stacks
command: >
aws cloudformation list-stacks
--query 'StackSummaries[*].[StackName,StackStatus]'
--output table
register: cloudformation_stacks
- name: Fetch AWS Auto Scaling Groups
command: >
aws autoscaling describe-auto-scaling-groups
--query 'AutoScalingGroups[*].[AutoScalingGroupName,MinSize,MaxSize,DesiredCapacity]'
--output table
register: auto_scaling_groups
- name: Create Output File
copy:
content: |
== AWS EC2 Instances ==
{{ ec2_instances.stdout }}
== AWS S3 Buckets ==
{{ s3_buckets.stdout }}
== AWS RDS Instances ==
{{ rds_instances.stdout }}
== AWS IAM Users ==
{{ iam_users.stdout }}
== AWS Lambda Functions ==
{{ lambda_functions.stdout }}
== AWS CloudFormation Stacks ==
{{ cloudformation_stacks.stdout }}
== AWS Auto Scaling Groups ==
{{ auto_scaling_groups.stdout }}
dest: "{{ output_file }}"
- name: Upload Output File to S3
command: "aws s3 cp {{ output_file }} s3://{{ s3_bucket }}/"
register: s3_upload
- name: Show S3 Upload Result
debug:
msg: "Upload complete! File available at s3://{{ s3_bucket }}/{{ output_file | basename }}"