動態

詳情 返回 返回

資源編排ROS之模塊:實現模板代碼複用(基礎篇) - 動態 詳情

背景

資源編排服務(Resource Orchestration Service, 簡稱ROS)是阿里雲提供的一項簡化雲計算資源管理的服務。您可以遵循ROS定義的模板規範編寫資源棧模板,在模板中定義所需的雲計算資源(例如ECS實例、RDS數據庫實例)、資源間的依賴關係等。ROS的編排引擎將根據模板自動完成所有資源的創建和配置,實現自動化部署及運維。

模塊是一種以透明、易管理和可重複的方式打包資源配置,以便跨資源棧模板實現包含的方法。模塊可以將常見服務配置和最佳實踐封裝為模塊化、可自定義的構建基塊,供您包含在資源棧模板中。

例如:網絡領域專家可以創建一個包含遵守安全準則的內置安全組和入口、出口規則的模塊。然後您可以將該模塊納入到模板中,以便在資源棧中預配置安全的網絡基礎架構,而無需花費時間瞭解清楚VPC、子網、安全組和網關的工作方式。此外,由於模塊具有版本控制,如果安全指南隨時間而發生變化,模塊創建者可以創建包含這些更改的新版本模塊。

模塊簡介

模塊特點

  • 可預測性:模塊必須在ROS中創建後才能使用,您將模塊納入到模板中時,可以瞭解該模塊能解析到哪些資源。
  • 可重用性:您可以在多個模板和賬號中使用同一模塊。
  • 可追溯性:ROS會跟蹤資源棧中的哪些資源是從模塊創建而成的。資源棧的資源、偏差、更改集中包含相關信息。
  • 可管理性:創建模塊後,您可以通過ROS對其進行管理,例如版本控制。

模塊分類

  • 公共模塊:公共模塊是資源編排為您提供的可直接使用的模塊。更多信息,請參見查看公共模塊。
  • 自定義模塊:自定義模塊是通過控制枱手動創建的模塊。更多信息,請參見管理自定義模塊。

    • 共享模塊是一種特殊的自定義模塊。其他用户可以查看和使用您的共享模塊,但無法修改和刪除它。

使用示例

下方示例會把安全組的定義封裝在一個模塊裏,然後在創建資源棧使用這個模塊。

創建模塊

登錄資源編排控制枱。在左側導航欄,選擇資源 > 我的模塊。在我的模塊頁面,單擊創建模塊。
image.png
在創建模塊頁面,輸入下方內容。
這個模塊包含一個安全組的定義。
模塊編寫方式與模板基本一致,更多信息可參見模塊開發。

ROSTemplateFormatVersion: '2015-09-01'
Description: 全網安全組配置
Parameters:
  SecurityGroupName:
    Type: String
  VpcId:
    Type: String
Resources:
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupIngress:
        - PortRange: 22/22
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: 80/80
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: 443/443
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: 3389/3389
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: tcp
        - PortRange: '-1/-1'
          SourceCidrIp: 0.0.0.0/0
          IpProtocol: icmp
      SecurityGroupName:
        Ref: SecurityGroupName
      SecurityGroupType: normal
      VpcId:
        Ref: VpcId

在創建模塊頁面右上角,選擇導入/保存模塊 > 保存為新模塊。在保存為新模塊對話框,輸入模塊名稱和模塊描述。單擊確定。
image.png
在我的模塊頁面查看模塊。
image.png

使用模塊

創建資源棧在左側導航欄,單擊資源棧。在資源棧列表頁面,單擊創建資源棧,然後在下拉列表中選擇使用ROS。
image.png
在創建資源棧頁面,輸入下方內容。
這個模板創建了一個VPC,並使用剛才創建的模塊在這個VPC下創建了一個安全組。
模塊使用方式與資源基本一致,更多信息可參見使用模塊。

ROSTemplateFormatVersion: "2015-09-01"
Resources:
  Vpc:
    Type: ALIYUN::ECS::VPC
    Properties:
      VpcName: "test-vpc"
      CidrBlock: 192.168.0.0/24
  Sg:
    Type: MODULE::MyOrg::MyApp::SecurityGroup
    Version: v1
    Properties:
      SecurityGroupName: "test-sg"
      VpcId:
        Ref: Vpc
Outputs:
  VpcId:
    Value:
      Ref: Vpc
  SecurityGroupId:
    Value:
      Ref: Sg.SecurityGroup

單擊下一步。單擊創建。查看資源棧。
image.png

user avatar aipaobudezuoyeben 頭像 reqingdetiangua 頭像 tonyyoung 頭像 beiyouzhiyu 頭像 zhifou_5cf8bb7bcc249 頭像 rongyunrongcloud 頭像 kunaodehuluobo 頭像 shenjingwa_6545efd9181d1 頭像
點贊 8 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.