运维编排系列场景--跨账号跨地域实例操作系统补丁修复

本文涉及的产品
系统运维管理,不限时长
简介: 运维编排(OOS) 简介什么是OOSOperation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更

运维编排(OOS) 简介

什么是OOS

Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于OOS更详细的介绍请查阅 运维编排服务

场景介绍

对于规模比较大的企业,不同部门的ECS实例可能会分布在多个账号中。多个账号中ECS实例的补丁的集中管理成为摆在企业资产管理者面前的重要问题。本文将介绍如何通过补丁管理功能跨账号跨地域的集中修复ECS实例操作系统补丁。

实现原理

在跨账号补丁修复的场景中,阿里云账号分为两个角色。

  1. 管理账号
  2. 资源账号

其中资源账号可以有一个或者多个,管理账号本身也可以是一个资源账号。

通过在所有资源账号下创建管理账号可以扮演的RAM角色的方式,授权补丁修复所需要的相关权限。从而可以达到在管理账号内跨账号跨地域集中修复补丁的效果。

前置条件

如果需要设置自定义的补丁基线,可以通过 ROS或者 Terraform统一管理所有资源账号下的自定义补丁基线。

操作步骤

在资源账号中创建RAM角色

需要在所有资源账号中都创建用于补丁管理的RAM角色,并授权管理账号扮演。步骤如下:

  1. 单击  公共模板,选择  创建角色并授予自定义权限策略
  2. 单击  创建执行
  3. 单击  设置参数
    1. 新建角色名称。可自定义角色名称,例如 PatchRole。
    2. 角色信任的云账号。填写管理账号的阿里云id,默认 { { ACS::AccountId }} 是授权给本账号。
    3. 新建并授予的自定义权限策略名称。可自定义权限策略名称,例如 PatchPolicy。
    4. 授权的自定义权限策略脚本。应该填入
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:DescribeInvocationResults",
        "ecs:DescribeInstances",
        "ecs:RunCommand",
        "ecs:RebootInstance",
        "ecs:DescribeCloudAssistantStatus",
        "ecs:DescribeInvocations"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "oos:ListInstancePatchStates"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

  1. 单击 确定,单击 创建执行。等待执行完成。

补丁修复

  1. 使用 附录中的模板创建跨账号执行模板来跨账号跨地域补丁修复。  
  2. 执行模板。
    1. accountRoleAndRegions。分别在资源账号下上海和北京地域运行补丁修复操作。
[
  {
    "OOSAssumeRole": "|${资源账号uid}/PatchRole",  
    "RegionId": "cn-shanghai"
  },
  {
    "OOSAssumeRole": "|${资源账号uid}/PatchRole",
    "RegionId": "cn-beijing"
  }
]
  1. templateName。选择  ACS-ECS-BulkyApplyPatchBaseline
  2. templateParameters。模板参数参考《 立即修复》,可以如下设置。
{
  "regionId": "{
  
  { regionId }}",
  "targets": {
    "Type": "All",
    "RegionId": "{
  
  { regionId }}",
    "Parameters": {
      "RegionId": "{
  
  { regionId }}",
      "Status": "Running"
    }
  },
  "action": "install",
  "rebootIfNeed": true,
  "rateControl": {
    "Mode": "Concurrency",
    "MaxErrors": 0,
    "Concurrency": 10
  },
  "OOSAssumeRole": "",
  "timeout": 86400
}

  1. 单击  确定,单击  创建执行
  2. 创建执行成功后,您可单击该执行的 详情,查看 执行日志,实时了解执行的进度和状态。

附录

跨账号跨地域执行模板

FormatVersion: OOS-2019-06-01
Description:
  en: Multi account to execute specified template
  zh-cn: 跨账号执行指定模板
  name-en: MultiAccountToExecuteTemplate
  name-zh-cn: 跨账号执行指定模板
Parameters:
  accountRoleAndRegions:
    Type: Json
  templateName:
    Type: String
    AssociationProperty: TemplateName
  templateParameters:
    Description:
      en: Template paremeters to execute with.
      zh-cn: 触发执行模板的参数。
    Type: Json
    AssociationProperty: TemplateParameter
    AssociationPropertyMetadata:
      TemplateName: $templateName
  rateControl:
    Description:
      en: Concurrency ratio of task execution.
      zh-cn: 任务执行的并发比率。
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Description:
      en: The RAM role to be assumed by OOS.
      zh-cn: OOS扮演的RAM角色。
    Type: String
    Default: OOSServiceRole
RamRole: '{
  
  { OOSAssumeRole }}'
Tasks:
  - Name: executeTemplate
    Action: 'ACS::Template'
    Description:
      en: Execute template.
      zh-cn: 执行模板。
    Properties:
      TemplateName: '{
  
  { templateName }}'
      Parameters:
        'Fn::MergeMap':
          - '{
  
  { templateParameters }}'
          - regionId:
              'Fn::Select':
                - RegionId
                - '{
  
  {ACS::TaskLoopItem}}'
          - OOSAssumeRole:
              'Fn::Select':
                - OOSAssumeRole
                - '{
  
  {ACS::TaskLoopItem}}'
    Loop:
      RateControl: '{
  
  { rateControl }}'
      Items: '{
  
  { accountRoleAndRegions }}'

相关文章
|
18天前
|
人工智能 弹性计算 运维
操作系统控制台,让运维更简单!
操作系统控制台初体验,运维智能666!
110 37
操作系统控制台,让运维更简单!
|
19天前
|
运维 自然语言处理 Ubuntu
解锁高效运维新姿势!操作系统智能助手OS Copilot新功能实战测评
阿里云OS Copilot经过多轮迭代,现已支持多端操作系统(包括Ubuntu、CentOS、Anolis OS等)及aarch64架构,极大扩展了其适用范围。新特性包括阿里云CLI调用、系统运维及调优工具的直接调用、Agent模式实装以及复杂任务处理能力。这些更新显著提升了用户体验和效率,特别是在处理紧急情况时,OS Copilot能快速查找并执行命令,节省大量时间和精力。此外,通过自然语言交互,用户可以轻松完成如系统健康检查、文件操作及日志分析等任务。总之,OS Copilot已从内测时的辅助工具进化为合格的贴身管家,极大地简化了日常运维工作。
|
16天前
|
人工智能 运维 监控
用操作系统控制台,让运维更简单!评测报告
我选择了一个实例进行诊断,系统迅速生成了详细的诊断报告。报告中不仅列出了潜在的问题,还提供了具体的解决建议。这对我快速定位和解决系统问题非常有帮助
|
18天前
|
存储 运维 安全
深入解析操作系统控制台:阿里云Alibaba Cloud Linux(Alinux)的运维利器
本文将详细介绍阿里云的Alibaba Cloud Linux操作系统控制台的功能和优势。
41 5
|
2月前
|
人工智能 运维 自然语言处理
今晚围观—>安全运维工程师现场直播用通义灵码发现和修复代码漏洞
12 月 18 日晚 19:30 分,阿里云中小企业直播间「AI 编码助手一年养成记:从“打酱油”到企业开发“真正助手”」见。
|
4月前
|
运维 自然语言处理 开发者
作为一名运维人员,使用通义灵码个人版处理日常工作中的代码相关任务,极大地提升了我的工作效率。以下是我使用通义灵码的具体实践场景、效果和心得,以及相应的截图。
作为一名运维人员,我使用通义灵码处理日常工作中的代码任务,效率提升了30%。通义灵码帮助我快速理解复杂代码、生成准确的代码注释,并能从自然语言生成代码示例,大幅减少了代码编写和理解的时间。
117 3
|
4月前
|
弹性计算 开发框架 .NET
阿里云服务器购买教程及云服务器地域、实例、操作系统、带宽等参数选择指南
对于初次购买阿里云服务器的用户来说,想使用阿里云服务器搭建网站或者运行APP、小程序等项目,第一步就是要先购买阿里云服务器,下面小编以图文形式给大家介绍一下阿里云服务器的购买流程,以及购买过程中如何云服务器地域、实例、带宽等关键配置和选择这些参数的一些注意事项,以供参考。
|
5月前
|
机器学习/深度学习 人工智能 运维
|
6月前
|
存储 弹性计算 负载均衡
阿里云服务器地域、实例、带宽与操作系统等配置选择指南参考
在数字化时代,无论是个人博客、企业官网、APP后端支持,还是小程序运行或者其他项目,云服务器都扮演着至关重要的角色,考虑产品质量、服务和价格等因素,大家现在都喜欢选择阿里云服务器。然而,对于初次接触云服务的新手来说,可能并不是很清楚应该如何选阿里云服务器的地域、实例、带宽与操作系统等配置。本文将从地域选择、实例规格、操作系统、云盘配置、购买时长以及带宽选择等六个方面,为新手用户提供详细的选购指南,以供参考。
阿里云服务器地域、实例、带宽与操作系统等配置选择指南参考
|
5月前
|
弹性计算 JSON 运维
阿里云ECS实例运维属性-如何控制实例的宕机表现
介绍如何通过运维属性指定阿里云ECS的宕机运维表现等