anduin revised this gist . Go to revision
1 file changed, 7 insertions
Fix.md
@@ -87,6 +87,13 @@ Start-WorkflowPairingHandler.ps1 | |||
87 | 87 | * deployment config approved version | |
88 | 88 | * config prerequisite versions | |
89 | 89 | ||
90 | + | ```powershell | |
91 | + | Get-DeploymentConfigWorkItem -DeployRing WW -ApprovedVersion 15.20.7472.030 | ft -a | |
92 | + | Get-DeploymentConfigVersion -DeployRing WW -ApprovedVersion 15.20.7472.030 | ft -a | |
93 | + | Get-DeploymentConfigApprovedVersion -ApprovedVersion 15.20.7472.030 | ft -a | |
94 | + | Get-DeploymentConfigPrerequisiteVersion -EntityName BE -ApprovedVersion 15.20.7472.030 | ft -a | |
95 | + | ``` | |
96 | + | ||
90 | 97 | 是否完整 | |
91 | 98 | ||
92 | 99 | 12. 检查其前一个 Ring 有没有 config version 创建出来 |
anduin revised this gist . Go to revision
1 file changed, 8 insertions, 1 deletion
Fix.md
@@ -80,7 +80,14 @@ Start-WorkflowPairingHandler.ps1 | |||
80 | 80 | * 如果有 Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
81 | 81 | * 如果没有 Ring Promo,转到步骤11 | |
82 | 82 | ||
83 | - | 11. 使用DMS See-Version,检查相关的deployment config workitem, deployment config version, deployment config approved version, config prerequisite versions是否完整 | |
83 | + | 11. 使用DMS See-Version,检查相关的 | |
84 | + | ||
85 | + | * deployment config workitem | |
86 | + | * deployment config version | |
87 | + | * deployment config approved version | |
88 | + | * config prerequisite versions | |
89 | + | ||
90 | + | 是否完整 | |
84 | 91 | ||
85 | 92 | 12. 检查其前一个 Ring 有没有 config version 创建出来 | |
86 | 93 |
anduin revised this gist . Go to revision
1 file changed, 2 insertions
Fix.md
@@ -22,6 +22,8 @@ | |||
22 | 22 | 4. 进一步识别+验证:在DMS里使用gcam命令检查这个版本是否真的没有被部署。 | |
23 | 23 | ||
24 | 24 | ```powershell | |
25 | + | $machines = gcam -ShowAll -Filter "DeployRing -eq 'MSIT'" # 取出要调查的整个范围。 | |
26 | + | ||
25 | 27 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
26 | 28 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'FE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
27 | 29 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'AD' } | Group-Object ActualVersion | Sort-Object { $_.Name } |
anduin revised this gist . Go to revision
1 file changed, 9 insertions, 1 deletion
Fix.md
@@ -6,7 +6,15 @@ | |||
6 | 6 | 我正在检查 ________ 版本,范围是 Deploy Ring _________,其部署状况是 ______,版本类型是 ______。 | |
7 | 7 | ``` | |
8 | 8 | ||
9 | - | 3. 检查Override:在OSP Overrides页面搜索这个范围的信息,检查是否被Halt,以及相关Override的修改时间。检查相关Incident | |
9 | + | 3. 检查Override: | |
10 | + | ||
11 | + | 在OSP Overrides 页面搜索: | |
12 | + | ||
13 | + | * 这个版本本身的信息 | |
14 | + | * 包含 999 的 override | |
15 | + | * 最近的 10 个 override | |
16 | + | ||
17 | + | 检查是否被Halt,以及相关Override的修改时间。检查相关Incident。 | |
10 | 18 | ||
11 | 19 | * 如果有相关Override,找到正确责任组。结束 | |
12 | 20 | * 如果没有相关Override,转到步骤4 |
anduin revised this gist . Go to revision
1 file changed, 4 insertions
Fix.md
@@ -2,6 +2,10 @@ | |||
2 | 2 | ||
3 | 3 | 2. 识别:识别有故障的范围,是版本还是Ring。在OSP检查此Ring趋势图。检查Substrate版本历史,确认其版本类型(Dogfood、Daily)。 | |
4 | 4 | ||
5 | + | ```text | |
6 | + | 我正在检查 ________ 版本,范围是 Deploy Ring _________,其部署状况是 ______,版本类型是 ______。 | |
7 | + | ``` | |
8 | + | ||
5 | 9 | 3. 检查Override:在OSP Overrides页面搜索这个范围的信息,检查是否被Halt,以及相关Override的修改时间。检查相关Incident | |
6 | 10 | ||
7 | 11 | * 如果有相关Override,找到正确责任组。结束 |
anduin revised this gist . Go to revision
1 file changed, 3 insertions
Fix.md
@@ -47,6 +47,9 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object | |||
47 | 47 | 可以运行下面的引擎手工重启命令以强制触发它们重新评估。 | |
48 | 48 | ||
49 | 49 | ```powershell | |
50 | + | Request-ElevatedAccess_V2.ps1 -Role "ManagementDestructiveAccess" -Reason "Manual control deployment workflows" -DurationHours 12 | |
51 | + | Request-ElevatedAccess_V2.ps1 -Role "ManagementChangeAccess" -Reason "Manual control deployment workflows" -DurationHours 12 | |
52 | + | ||
50 | 53 | Start-DeploymentEngine.ps1 | |
51 | 54 | Start-BuildComponentListHandler.ps1 | |
52 | 55 | Start-Camgt2DeploymentHandler.ps1 |
anduin revised this gist . Go to revision
1 file changed, 21 insertions, 3 deletions
Fix.md
@@ -44,12 +44,28 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object | |||
44 | 44 | ||
45 | 45 | 10. 打开OSP的Ring Promo信息,观察是否这个版本被Promo | |
46 | 46 | ||
47 | - | * 如果有Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
48 | - | * 如果没有Ring Promo,转到步骤11 | |
47 | + | 可以运行下面的引擎手工重启命令以强制触发它们重新评估。 | |
48 | + | ||
49 | + | ```powershell | |
50 | + | Start-DeploymentEngine.ps1 | |
51 | + | Start-BuildComponentListHandler.ps1 | |
52 | + | Start-Camgt2DeploymentHandler.ps1 | |
53 | + | Start-DotBuildValidationHandler.ps1 | |
54 | + | Start-EopStatefulDbHandler.ps1 | |
55 | + | Start-IngressRingBotPromotionHandler.ps1 | |
56 | + | Start-PrepareAdHandler.ps1 | |
57 | + | Start-SaturationHandler.ps1 | |
58 | + | Start-SeedComponentsHandler.ps1 | |
59 | + | Start-SeedPavcComponentsHandler.ps1 | |
60 | + | Start-WorkflowPairingHandler.ps1 | |
61 | + | ``` | |
62 | + | ||
63 | + | * 如果有 Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
64 | + | * 如果没有 Ring Promo,转到步骤11 | |
49 | 65 | ||
50 | 66 | 11. 使用DMS See-Version,检查相关的deployment config workitem, deployment config version, deployment config approved version, config prerequisite versions是否完整 | |
51 | 67 | ||
52 | - | 12. 检查其前一个Ring有没有 config version 创建出来 | |
68 | + | 12. 检查其前一个 Ring 有没有 config version 创建出来 | |
53 | 69 | ||
54 | 70 | * 如果有,转到步骤14 | |
55 | 71 | * 如果没有,转到步骤13 | |
@@ -78,3 +94,5 @@ New-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 -S | |||
78 | 94 | ```powershell | |
79 | 95 | $msitUpgradingBe = gcam -ShowAll -Filter "DeployRing -eq 'MSIT' -and DesiredMachineDefinition -eq 'BE' -and DesiredVersion -like '15.20.7091.*' -and AutopilotMode -eq 'ApClient'" | |
80 | 96 | ``` | |
97 | + | ||
98 | + | > 结束 |
anduin revised this gist . Go to revision
1 file changed, 30 insertions, 15 deletions
Fix.md
@@ -1,8 +1,11 @@ | |||
1 | 1 | 1. 准备工作区:立刻打开两个DMS两个OSP | |
2 | + | ||
2 | 3 | 2. 识别:识别有故障的范围,是版本还是Ring。在OSP检查此Ring趋势图。检查Substrate版本历史,确认其版本类型(Dogfood、Daily)。 | |
4 | + | ||
3 | 5 | 3. 检查Override:在OSP Overrides页面搜索这个范围的信息,检查是否被Halt,以及相关Override的修改时间。检查相关Incident | |
4 | - | 如果有相关Override,找到正确责任组。结束 | |
5 | - | 如果没有相关Override,转到步骤4 | |
6 | + | ||
7 | + | * 如果有相关Override,找到正确责任组。结束 | |
8 | + | * 如果没有相关Override,转到步骤4 | |
6 | 9 | ||
7 | 10 | 4. 进一步识别+验证:在DMS里使用gcam命令检查这个版本是否真的没有被部署。 | |
8 | 11 | ||
@@ -12,8 +15,7 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'FE' } | Group-Object | |||
12 | 15 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'AD' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
13 | 16 | ``` | |
14 | 17 | ||
15 | - | 在这一步: | |
16 | - | 确定不能部署的机器的Role | |
18 | + | * 在这一步:确定不能部署的机器的Role | |
17 | 19 | ||
18 | 20 | 5. 检查期待性:在DMS里将机器按DesiredVersion Group,检查是否有机器试图部署这个版本。 | |
19 | 21 | ||
@@ -21,24 +23,37 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'AD' } | Group-Object | |||
21 | 23 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object DesiredVersion | Sort-Object { $_.Name } | |
22 | 24 | ``` | |
23 | 25 | ||
24 | - | 如果有机器,证明机器正在Deploy但是失败了,前往步骤6。 | |
25 | - | 如果没有机器,证明机器根本就没打算部署这个版本,前往步骤9。 | |
26 | + | * 如果有机器,证明机器正在Deploy但是失败了,前往步骤6。 | |
27 | + | * 如果没有机器,证明机器根本就没打算部署这个版本,前往步骤9。 | |
28 | + | ||
26 | 29 | 6. 检查机器错误情况。抽样几台。检查其最近Workitem,观察错误 | |
30 | + | ||
27 | 31 | 7. 使用Dots App交叉验证6。找到除了无法BeginMM以外最多的错误。 | |
32 | + | ||
28 | 33 | 8. 找到错误的信息,检查日志,找到正确的责任人。 | |
29 | 34 | ||
30 | 35 | (注意:CAMgt3 的机器天生不跑 FastTrain,只装 Dogfood,就不再管了,而且只有Reimage能成功) | |
31 | - | 结束 | |
32 | - | 9. 如果整个Ring都有这个问题,则在Email中搜索Ringbot相关的告警,检查是否Ringbot工作异常:(TODO:这里要讨论并非整个Ring有问题的情况) | |
33 | - | 如果有,检查Ringbot的异常:Get-ScheduledWorkflow ringbot* | ft name, lastoperationid, isenabled 或 Invoke-RingbotValidateProdRings.ps1 | |
34 | - | 如果没有,继续 | |
36 | + | ||
37 | + | >结束 | |
38 | + | ||
39 | + | 9. 如果整个Ring都有这个问题,则在Email中搜索 Ringbot \ Stagebot 相关的告警,检查是否 Ringbot \ Stagebot 工作异常:(TODO:这里要讨论并非整个Ring有问题的情况) | |
40 | + | ||
41 | + | ||
42 | + | * 如果有,检查Ringbot的异常:Get-ScheduledWorkflow ringbot* | ft name, lastoperationid, isenabled 或 Invoke-RingbotValidateProdRings.ps1 | |
43 | + | * 如果没有,继续 | |
44 | + | ||
35 | 45 | 10. 打开OSP的Ring Promo信息,观察是否这个版本被Promo | |
36 | - | 如果有Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
37 | - | 如果没有Ring Promo,转到步骤11 | |
46 | + | ||
47 | + | * 如果有Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
48 | + | * 如果没有Ring Promo,转到步骤11 | |
49 | + | ||
38 | 50 | 11. 使用DMS See-Version,检查相关的deployment config workitem, deployment config version, deployment config approved version, config prerequisite versions是否完整 | |
51 | + | ||
39 | 52 | 12. 检查其前一个Ring有没有 config version 创建出来 | |
40 | - | 如果有,转到步骤14 | |
41 | - | 如果没有,转到步骤13 | |
53 | + | ||
54 | + | * 如果有,转到步骤14 | |
55 | + | * 如果没有,转到步骤13 | |
56 | + | ||
42 | 57 | 13. 考虑手工创建前一个Ring的Config Version,然后手工创建当前 Ring的 Config Workitem | |
43 | 58 | ||
44 | 59 | ```powershell | |
@@ -48,7 +63,7 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object | |||
48 | 63 | For: DeploymentEngine, SeedComponents, Saturation, BuildComponentList, PrepareAD, SeedPavcComponents, WorkflowPairing | |
49 | 64 | New-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 -ServerRole BE -HandlerType DeploymentEngine -DeploymentTrainType RegularTrain | |
50 | 65 | ||
51 | - | 然后等待大约20分钟,重新执行此检查单 | |
66 | + | * 然后等待大约20分钟,重新执行此检查单 | |
52 | 67 | ||
53 | 68 | 14. 检查相关的Deployment Config Workitem 是否执行完整 | |
54 | 69 |
anduin revised this gist . Go to revision
1 file changed, 11 insertions, 4 deletions
Fix.md
@@ -6,16 +6,20 @@ | |||
6 | 6 | ||
7 | 7 | 4. 进一步识别+验证:在DMS里使用gcam命令检查这个版本是否真的没有被部署。 | |
8 | 8 | ||
9 | + | ```powershell | |
9 | 10 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
10 | 11 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'FE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
11 | 12 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'AD' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
13 | + | ``` | |
12 | 14 | ||
13 | 15 | 在这一步: | |
14 | 16 | 确定不能部署的机器的Role | |
15 | 17 | ||
16 | 18 | 5. 检查期待性:在DMS里将机器按DesiredVersion Group,检查是否有机器试图部署这个版本。 | |
17 | 19 | ||
20 | + | ```powershell | |
18 | 21 | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object DesiredVersion | Sort-Object { $_.Name } | |
22 | + | ``` | |
19 | 23 | ||
20 | 24 | 如果有机器,证明机器正在Deploy但是失败了,前往步骤6。 | |
21 | 25 | 如果没有机器,证明机器根本就没打算部署这个版本,前往步骤9。 | |
@@ -37,9 +41,9 @@ $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object | |||
37 | 41 | 如果没有,转到步骤13 | |
38 | 42 | 13. 考虑手工创建前一个Ring的Config Version,然后手工创建当前 Ring的 Config Workitem | |
39 | 43 | ||
40 | - | ||
44 | + | ```powershell | |
41 | 45 | Get-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 | ft -a | |
42 | - | ||
46 | + | ``` | |
43 | 47 | ||
44 | 48 | For: DeploymentEngine, SeedComponents, Saturation, BuildComponentList, PrepareAD, SeedPavcComponents, WorkflowPairing | |
45 | 49 | New-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 -ServerRole BE -HandlerType DeploymentEngine -DeploymentTrainType RegularTrain | |
@@ -48,11 +52,14 @@ New-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 -S | |||
48 | 52 | ||
49 | 53 | 14. 检查相关的Deployment Config Workitem 是否执行完整 | |
50 | 54 | ||
55 | + | ```powershell | |
51 | 56 | Get-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 | ft -a | |
52 | - | ||
57 | + | ``` | |
53 | 58 | ||
54 | 59 | 15. 找到几台示例机器,检查APSPrioritizerLog,观察Message得知为何机器明明可以Deploy这个版本却为何不Deploy这个版本 | |
55 | 60 | ||
56 | 61 | 在完成检查单后,使用下面的命令以检查是否有机器开始部署了: | |
57 | 62 | ||
58 | - | $msitUpgradingBe = gcam -ShowAll -Filter "DeployRing -eq 'MSIT' -and DesiredMachineDefinition -eq 'BE' -and DesiredVersion -like '15.20.7091.*' -and AutopilotMode -eq 'ApClient'" | |
63 | + | ```powershell | |
64 | + | $msitUpgradingBe = gcam -ShowAll -Filter "DeployRing -eq 'MSIT' -and DesiredMachineDefinition -eq 'BE' -and DesiredVersion -like '15.20.7091.*' -and AutopilotMode -eq 'ApClient'" | |
65 | + | ``` |
anduin revised this gist . Go to revision
1 file changed, 58 insertions
Fix.md(file created)
@@ -0,0 +1,58 @@ | |||
1 | + | 1. 准备工作区:立刻打开两个DMS两个OSP | |
2 | + | 2. 识别:识别有故障的范围,是版本还是Ring。在OSP检查此Ring趋势图。检查Substrate版本历史,确认其版本类型(Dogfood、Daily)。 | |
3 | + | 3. 检查Override:在OSP Overrides页面搜索这个范围的信息,检查是否被Halt,以及相关Override的修改时间。检查相关Incident | |
4 | + | 如果有相关Override,找到正确责任组。结束 | |
5 | + | 如果没有相关Override,转到步骤4 | |
6 | + | ||
7 | + | 4. 进一步识别+验证:在DMS里使用gcam命令检查这个版本是否真的没有被部署。 | |
8 | + | ||
9 | + | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
10 | + | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'FE' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
11 | + | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'AD' } | Group-Object ActualVersion | Sort-Object { $_.Name } | |
12 | + | ||
13 | + | 在这一步: | |
14 | + | 确定不能部署的机器的Role | |
15 | + | ||
16 | + | 5. 检查期待性:在DMS里将机器按DesiredVersion Group,检查是否有机器试图部署这个版本。 | |
17 | + | ||
18 | + | $machines | Where-Object { $_.DesiredMachineDefinition -eq 'BE' } | Group-Object DesiredVersion | Sort-Object { $_.Name } | |
19 | + | ||
20 | + | 如果有机器,证明机器正在Deploy但是失败了,前往步骤6。 | |
21 | + | 如果没有机器,证明机器根本就没打算部署这个版本,前往步骤9。 | |
22 | + | 6. 检查机器错误情况。抽样几台。检查其最近Workitem,观察错误 | |
23 | + | 7. 使用Dots App交叉验证6。找到除了无法BeginMM以外最多的错误。 | |
24 | + | 8. 找到错误的信息,检查日志,找到正确的责任人。 | |
25 | + | ||
26 | + | (注意:CAMgt3 的机器天生不跑 FastTrain,只装 Dogfood,就不再管了,而且只有Reimage能成功) | |
27 | + | 结束 | |
28 | + | 9. 如果整个Ring都有这个问题,则在Email中搜索Ringbot相关的告警,检查是否Ringbot工作异常:(TODO:这里要讨论并非整个Ring有问题的情况) | |
29 | + | 如果有,检查Ringbot的异常:Get-ScheduledWorkflow ringbot* | ft name, lastoperationid, isenabled 或 Invoke-RingbotValidateProdRings.ps1 | |
30 | + | 如果没有,继续 | |
31 | + | 10. 打开OSP的Ring Promo信息,观察是否这个版本被Promo | |
32 | + | 如果有Ring Promo,检查其欠缺的条件。如果有欠缺,则诊断欠缺的条件。如果全部满足,前往步骤14。 | |
33 | + | 如果没有Ring Promo,转到步骤11 | |
34 | + | 11. 使用DMS See-Version,检查相关的deployment config workitem, deployment config version, deployment config approved version, config prerequisite versions是否完整 | |
35 | + | 12. 检查其前一个Ring有没有 config version 创建出来 | |
36 | + | 如果有,转到步骤14 | |
37 | + | 如果没有,转到步骤13 | |
38 | + | 13. 考虑手工创建前一个Ring的Config Version,然后手工创建当前 Ring的 Config Workitem | |
39 | + | ||
40 | + | ||
41 | + | Get-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 | ft -a | |
42 | + | ||
43 | + | ||
44 | + | For: DeploymentEngine, SeedComponents, Saturation, BuildComponentList, PrepareAD, SeedPavcComponents, WorkflowPairing | |
45 | + | New-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 -ServerRole BE -HandlerType DeploymentEngine -DeploymentTrainType RegularTrain | |
46 | + | ||
47 | + | 然后等待大约20分钟,重新执行此检查单 | |
48 | + | ||
49 | + | 14. 检查相关的Deployment Config Workitem 是否执行完整 | |
50 | + | ||
51 | + | Get-DeploymentConfigWorkItem -DeployRing MSIT -ApprovedVersion 15.20.7091.005 | ft -a | |
52 | + | ||
53 | + | ||
54 | + | 15. 找到几台示例机器,检查APSPrioritizerLog,观察Message得知为何机器明明可以Deploy这个版本却为何不Deploy这个版本 | |
55 | + | ||
56 | + | 在完成检查单后,使用下面的命令以检查是否有机器开始部署了: | |
57 | + | ||
58 | + | $msitUpgradingBe = gcam -ShowAll -Filter "DeployRing -eq 'MSIT' -and DesiredMachineDefinition -eq 'BE' -and DesiredVersion -like '15.20.7091.*' -and AutopilotMode -eq 'ApClient'" |