-
Notifications
You must be signed in to change notification settings - Fork 10
/
InstallAndManageCloudWatchDocument.yaml
142 lines (142 loc) · 3.89 KB
/
InstallAndManageCloudWatchDocument.yaml
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
schemaVersion: "2.2"
description: "A composite document for installing and configuring the CloudWatch Agent."
parameters:
sourceInfoWindows:
description: "Amazon S3 bucket used to store CloudWatch configuration files"
type: StringMap
displayType: "textarea"
default:
path:
Fn::Join:
- ''
- - 'https://s3.amazonaws.com/'
- !Select [5, !Split [":", !Ref CloudWatchConfigBucketARN]]
- '/config/standard/windows'
sourceInfoLinux:
description: "Amazon S3 bucket used to store CloudWatch configuration files"
type: StringMap
displayType: "textarea"
default:
path:
Fn::Join:
- ''
- - 'https://s3.amazonaws.com/'
- !Select [5, !Split [":", !Ref CloudWatchConfigBucketARN]]
- '/config/standard/linux'
mainSteps:
- precondition:
StringEquals:
- platformType
- Linux
action: aws:runShellScript
name: first
inputs:
runCommand:
- sleep 300
- precondition:
StringEquals:
- platformType
- Windows
action: aws:runPowerShellScript
name: second
inputs:
runCommand:
- Start-Sleep -Seconds 300
- action: aws:runDocument
name: installCWAgent
inputs:
documentType: SSMDocument
documentPath: AWS-ConfigureAWSPackage
documentParameters:
action: Install
name: AmazonCloudWatchAgent
- action: aws:downloadContent
precondition:
StringEquals:
- platformType
- Windows
name: DownloadStandardCloudWatchConfigWindows
inputs:
sourceType: S3
sourceInfo: "{{ sourceInfoWindows }}"
destinationPath: "C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Configs"
- action: aws:runPowerShellScript
precondition:
StringEquals:
- platformType
- Windows
name: DeleteEtagFilesWindows
inputs:
timeoutSeconds: '60'
runCommand:
- cd C:\\ProgramData\\Amazon\\AmazonCloudWatchAgent\\Configs
- Get-ChildItem -Path ".\*.etag" -Recurse | Remove-Item
- action: "aws:runDocument"
precondition:
StringEquals:
- platformType
- Windows
name: "StopCloudWatchWindows"
inputs:
documentType: "SSMDocument"
documentPath: "AmazonCloudWatch-ManageAgent"
documentParameters:
action: "stop"
mode: "ec2"
- action: "aws:runDocument"
precondition:
StringEquals:
- platformType
- Windows
name: "StartCloudWatchWindows"
inputs:
documentType: "SSMDocument"
documentPath: "AmazonCloudWatch-ManageAgent"
documentParameters:
action: "start"
mode: "ec2"
- action: aws:downloadContent
precondition:
StringEquals:
- platformType
- Linux
name: downloadStandardCloudWatchConfigLinux
inputs:
sourceType: S3
sourceInfo: "{{ sourceInfoLinux }}"
destinationPath: "/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d"
- action: aws:runShellScript
precondition:
StringEquals:
- platformType
- Linux
name: DeleteEtagFilesLinux
inputs:
timeoutSeconds: '60'
runCommand:
- cd /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d
- find . -name \*.etag -type f -delete
- action: "aws:runDocument"
precondition:
StringEquals:
- platformType
- Linux
name: "StopCloudWatchLinux"
inputs:
documentType: "SSMDocument"
documentPath: "AmazonCloudWatch-ManageAgent"
documentParameters:
action: "stop"
mode: "ec2"
- action: "aws:runDocument"
precondition:
StringEquals:
- platformType
- Linux
name: "StartCloudWatchLinux"
inputs:
documentType: "SSMDocument"
documentPath: "AmazonCloudWatch-ManageAgent"
documentParameters:
action: "start"
mode: "ec2"