最終更新 1742359572

anduin's Avatar anduin revised this gist 1712985593. 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's Avatar anduin revised this gist 1712900469. 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's Avatar anduin revised this gist 1712899725. 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's Avatar anduin revised this gist 1712899622. 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's Avatar anduin revised this gist 1712899503. 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's Avatar anduin revised this gist 1712899205. 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's Avatar anduin revised this gist 1712898932. 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's Avatar anduin revised this gist 1712898712. 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's Avatar anduin revised this gist 1712898622. 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's Avatar anduin revised this gist 1712898589. 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'"
Newer Older