IBM Cloud Load Balancer에 IBM Cloud CLI로 멤버 추가
6090 단어 loadbalanceribmcloud
목적
IBM Cloud Load Balancer(이하 ICLB)는 IBM Cloud의 LBaaS입니다. ICLB는 기본 설정은 포털의 웹 UI에서 가능하지만 웹 UI에서 설정할 수 없는 것도 있습니다. 예를 들어, ICLB의 구성원은 웹 UI에서 가상 서버의 기본 IP만 선택할 수 있습니다. 휴대용 IP를 지정하려면 API를 사용해야 합니다.
API를 이용하려면 API 문서를 읽고 열심히 curl하는 라이브러리를 사용하여 Python 등으로 쓰는 slcli를 이용하는 방법 등이 있지만 IBM Cloud, 특히 구 SoftLayer 시대의 문서는 매우 이해하기 어렵다. 입니다. 파이썬을 사용한 샘플은 많이 공개되어 있지만 파이썬을 실행하는 환경이 필요합니다.
그래서 이번에는 IBM Cloud 사용자라면 반드시 설치하고 있는 IBM Cloud CLI를 사용하여 멤버를 추가해 보겠습니다.
절차
ICLB 주문
API도 가능합니다만 이번은 할애해, 벌써 포털로부터 주문되고 있는 것으로 합니다.
멤버(서버 인스턴스)는 비워 둡니다.
인스턴스의 UUID 확인
인스턴스의 UUID를 확인합니다. IBM Cloud CLI를 활용합니다.
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getAllObjects
[
{
"accountId": ******,
"address": "lb-tok04-******-tok04.clb.appdomain.cloud",
"createDate": "2020-06-08T10:48:23+09:00",
"id": ******,
"isDataLogEnabled": 1,
"isPublic": 0,
"locationId": 2344395,
"modifyDate": "2020-06-21T10:56:37+09:00",
"name": "lb-tok04",
"operatingStatus": "ONLINE",
"provisioningStatus": "ACTIVE",
"type": 0,
"useSystemPublicIpPool": 1,
"uuid": "*******-****-****-****-************",
"datacenter": {
"id": 2344395,
"longName": "Tokyo 4",
"name": "tok04",
"statusId": 2
}
}
]
이 때의 uuid
를 삼가해 둡니다.
멤버 정의 JSON 만들기
다음 형식으로 JSON 파일을 준비합니다. 배열의 첫 번째로 앞서 둔 UUID를 지정합니다. 두 번째로 멤버를 배열로 지정합니다. 대상이 Public IP인 경우publicIpAddress
로 설정합니다. 이번은 privateIpAddress
로 합니다.
members.json[
"${uuid}",
[
{
"privateIpAddress": "${メンバー1のIP}"
},
{
"privateIpAddress": "${メンバー2のIP}"
}
]
]
회원 추가
다음과 같이 CLI를 실행합니다.
$ ibmcloud sl call-api Network_LBaaS_Member addLoadBalancerMembers --parameters "$(cat members.json)"
{
"accountId": ******,
"address": "lb-tok04-******-tok04.clb.appdomain.cloud",
"createDate": "2020-06-08T10:48:23+09:00",
"id": ******,
"isDataLogEnabled": 1,
"isPublic": 0,
"locationId": 2344395,
"modifyDate": "2020-06-21T11:08:35+09:00",
"name": "lb-tok04",
"operatingStatus": "ONLINE",
"provisioningStatus": "UPDATE_PENDING",
"type": 0,
"useSystemPublicIpPool": 1,
"uuid": "*******-****-****-****-************"
}
오류가 없으면 OK입니다.
확인
포털에서 확인합니다.
덧붙여서 목적지에 휴대용 IP를 지정했을 경우는 Server Name와 타입은 不明
가 되어 기분 나쁘지만, 신경쓰지 말아 좋을 것입니다.
CLI에서 확인합니다. 방금 전에 UUID를 사용했지만 이 경우 ID를 사용합니다.
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getAllObjects --mask id
[
{
"id": ******
}
]
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getMembers --init ${id}
[
{
"address": "*.*.*.*",
"createDate": "2020-06-21T11:08:35+09:00",
"id": *******,
"modifyDate": "2020-06-21T11:08:42+09:00",
"provisioningStatus": "ACTIVE",
"uuid": "********-****-****-****-************",
"weight": null
},
{
"address": "*.*.*.*",
"createDate": "2020-06-21T11:08:35+09:00",
"id": *******,
"modifyDate": "2020-06-21T11:08:42+09:00",
"provisioningStatus": "ACTIVE",
"uuid": "********-****-****-****-************",
"weight": null
}
]
"weight": null
는 "weight": 50
와 같은 의미입니다. 명시하고 싶은 경우는 방금전의 JSON로 지정하는 것도 가능합니다.
이상입니다.
참고
ICLB 주문
API도 가능합니다만 이번은 할애해, 벌써 포털로부터 주문되고 있는 것으로 합니다.
멤버(서버 인스턴스)는 비워 둡니다.
인스턴스의 UUID 확인
인스턴스의 UUID를 확인합니다. IBM Cloud CLI를 활용합니다.
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getAllObjects
[
{
"accountId": ******,
"address": "lb-tok04-******-tok04.clb.appdomain.cloud",
"createDate": "2020-06-08T10:48:23+09:00",
"id": ******,
"isDataLogEnabled": 1,
"isPublic": 0,
"locationId": 2344395,
"modifyDate": "2020-06-21T10:56:37+09:00",
"name": "lb-tok04",
"operatingStatus": "ONLINE",
"provisioningStatus": "ACTIVE",
"type": 0,
"useSystemPublicIpPool": 1,
"uuid": "*******-****-****-****-************",
"datacenter": {
"id": 2344395,
"longName": "Tokyo 4",
"name": "tok04",
"statusId": 2
}
}
]
이 때의
uuid
를 삼가해 둡니다.멤버 정의 JSON 만들기
다음 형식으로 JSON 파일을 준비합니다. 배열의 첫 번째로 앞서 둔 UUID를 지정합니다. 두 번째로 멤버를 배열로 지정합니다. 대상이 Public IP인 경우
publicIpAddress
로 설정합니다. 이번은 privateIpAddress
로 합니다.members.json
[
"${uuid}",
[
{
"privateIpAddress": "${メンバー1のIP}"
},
{
"privateIpAddress": "${メンバー2のIP}"
}
]
]
회원 추가
다음과 같이 CLI를 실행합니다.
$ ibmcloud sl call-api Network_LBaaS_Member addLoadBalancerMembers --parameters "$(cat members.json)"
{
"accountId": ******,
"address": "lb-tok04-******-tok04.clb.appdomain.cloud",
"createDate": "2020-06-08T10:48:23+09:00",
"id": ******,
"isDataLogEnabled": 1,
"isPublic": 0,
"locationId": 2344395,
"modifyDate": "2020-06-21T11:08:35+09:00",
"name": "lb-tok04",
"operatingStatus": "ONLINE",
"provisioningStatus": "UPDATE_PENDING",
"type": 0,
"useSystemPublicIpPool": 1,
"uuid": "*******-****-****-****-************"
}
오류가 없으면 OK입니다.
확인
포털에서 확인합니다.
덧붙여서 목적지에 휴대용 IP를 지정했을 경우는 Server Name와 타입은
不明
가 되어 기분 나쁘지만, 신경쓰지 말아 좋을 것입니다.CLI에서 확인합니다. 방금 전에 UUID를 사용했지만 이 경우 ID를 사용합니다.
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getAllObjects --mask id
[
{
"id": ******
}
]
$ ibmcloud sl call-api Network_LBaaS_LoadBalancer getMembers --init ${id}
[
{
"address": "*.*.*.*",
"createDate": "2020-06-21T11:08:35+09:00",
"id": *******,
"modifyDate": "2020-06-21T11:08:42+09:00",
"provisioningStatus": "ACTIVE",
"uuid": "********-****-****-****-************",
"weight": null
},
{
"address": "*.*.*.*",
"createDate": "2020-06-21T11:08:35+09:00",
"id": *******,
"modifyDate": "2020-06-21T11:08:42+09:00",
"provisioningStatus": "ACTIVE",
"uuid": "********-****-****-****-************",
"weight": null
}
]
"weight": null
는 "weight": 50
와 같은 의미입니다. 명시하고 싶은 경우는 방금전의 JSON로 지정하는 것도 가능합니다.이상입니다.
참고
Reference
이 문제에 관하여(IBM Cloud Load Balancer에 IBM Cloud CLI로 멤버 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teruq/items/4be6c188de6810f83727텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)