目錄

簡介

必要條件

需求

採用元件

如何在AWS雲中新增資源放置指令碼？

簡介

本文檔介紹如何在適用於CloudCenter 4.8.2的Amazon Web Services(AWS)雲中新增使用者資源放置指令碼。

必要條件

需求

思科建議您瞭解以下主題：

- Linux

- AWS EC2雲

- 外殼指令碼

採用元件

本檔案中的資訊是根據以下軟體版本：

- CloudCenter 4.8.2版

- CCO(CiscoCloud Orchestrator)

- CCM(CiscoCloud Manager)

- Redhat7或Centos7

- 用於儲存callout指令碼的儲存庫

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

如何在AWS雲中新增資源放置指令碼？

CloudCenter支援根據使用者設定放置資源的雲有很多。本文檔重點介紹如何在AWS雲中設定資源放置callout指令碼。

請按照以下步驟放置callout指令碼進行資源放置

步驟1.登入儲存庫/Linux VM，可以在其中建立用於放置資源的bash指令碼。如果在任何Linux虛擬機器中建立指令碼，請確保將這些檔案複製到儲存庫中，以便可以訪問該檔案來部署應用程式。

步驟2. vi callout.sh，並在指令碼中輸入內容。

#!/bin/bash

. /utils.sh

print_log "$eNV_imageName"

print_log "$Cloud_Setting_CloudFamily"

print_log "$eNV_parentJobName"

content="{\"vpcId\":\"vpc-31e88948\",

\"subnetId\":\"subnet-44f8bb0c\",

\"securityGroupList\":\"sg-0f05b97b\",

\"vmTagsList\":\"Name:RP_001,PayProfile:Dev,User:AdminUser\",

\"assignPublicIp\":\"true\",

\"nodeInfo\":\"VpcID:vpc-31ee2948, subnetId: subnet-44ftb40c,securityGroupList:sg-0f04b97b \"}"

print_ext_service_result "$content"

附註：用您的資訊替換VPC ID、子網、安全組、vmTagList、node-info。

所有資訊均可從AWS EC2例項獲取

步驟3.將bash指令碼儲存在儲存庫中，並將許可權更改為755。

步驟4. #chmod 755 callout.sh

步驟5.建立指令碼後，您需要從CloudCenter Manager啟用資源放置指令碼。

a.登入到CloudCenter Manager GUI > Environment > New Environment。

b.按一下DEFINE DEFAULTS CLOUD SETTINGS頁籤。

c.選擇要部署環境使用的例項型別和啟用資源放置，如下圖所示。

d.按一下Enable Resource Placement後，將獲得一個用於設定Resource Placement Config檔案的選項，如下圖所示。

附註：提供callout.sh的位置，即您上傳到儲存庫的檔案，然後按一下完成頁籤兩次以退出「部署環境」頁面。

步驟6.使用新建立的部署環境部署新例項。使用您建立的資源放置指令碼成功部署了虛擬機器。

提示：您可以從CCO檢查gateway.log檔案，以驗證指令碼是否成功執行。

這是日誌檔案中顯示的輸出。

2018-01-09 15:16:14,917 INFO  service.LifecycleClusterStartAction [RxCachedThreadScheduler-6]  - DeploymentJobID=37 requestNodeCount = 1 , minNodeCount=1 , createdCount = 1

2018-01-09 15:16:16,121 INFO  strategy.DockerBaseCallout [threadPoolExecutor-21]  - Output from Callout

CLIQR_EXTERNAL_SERVICE_LOG_MSG_START^M

Executing service resourcePlacement action with command: "/opt/remoteFiles/cliqr_local_file/callout.sh" from directory: ^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_END^M

CLOUD_CENTER_SCRIPT_OUTPUT^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_START^M

Executing script/command: /opt/remoteFiles/cliqr_local_file/callout.sh.^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_END^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_START^M

Ubuntu 14.04^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_END^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_START^M

^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_END^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_START^M

docker_cluster^M

CLIQR_EXTERNAL_SERVICE_LOG_MSG_END^M

CLIQR_EXTERNAL_SERVICE_RESULT_START^M

{"vpcId":" vpc-31e88948",^M

"subnetId":" subnet-44f8bb0c ",^M

"securityGroupList":" sg-0f05b97b ",^M

"vmTagsList":"Name:RP_001,PayProfile:Dev,User:AdminUser",^M

"assignPublicIp":"true",^M

"nodeInfo":"VpcID: vpc-31e88948, subnetId: subnet-44f8bb0c,securityGroupList: sg-0f05b97b "}^M

CLIQR_EXTERNAL_SERVICE_RESULT_END^M