IBM Cloud: VPC의 VSI를 IP 주소 지정으로 프로비저닝하는 방법
1. 소개
본 기사 집필 시점(2020년 8월)에서는, IBM Cloud Portal로부터 VPC판의 VSI를 프로비저닝할 때에, subnet의 지정은 할 수 있지만 IP 주소의 지정을 GUI 화면에서 실시할 수 없다.
그러나, CLI나 API로, primary_ipv4_address
필드를 지정하면, IP 주소의 지정은 할 수 있다. 참고 API 자료는 여기 .
CLI에서도 ibmcloud is instance-create
커맨드 등으로 실행할 수 있지만, 그 때에 일일이 각종 ID 정보를 취득해 오는 것이 귀찮다. 그래서 이번에는 (아마 가장 쉬운 방법이라고 생각된다) API를 사용한 방법을 소개한다.
(2020/09/18 추가)
VSI 주문 후 두 번째 이후 vNIC에 IP 주소를 명시적으로 지정하는 방법은 여기을 참조하십시오.
(2022/03/31 추가)
앞으로는 이쪽을 사용하는 것이 좋을 것 같습니다.
IBM Cloud : VPC의 VSI를 IP 주소 지정 (reserved IP 사용)으로 프로비저닝하는 방법
2. 구성 생성 및 Sample API call 생성
IBM Cloud Portal에서 VPC 버전의 VSI 주문 화면에서 최종적으로 프로비저닝하고 싶은 구성을 일단 GUI 베이스로 만든 후, Get sample API call
를 누르.
그러면 아래와 같은 sample API call이 출력되므로 이 코드를 복사하여 스크립트(예: vsi.sh)로 저장한다.
3. sample API call 수정
vsi.sh(수정 전)(省略)
"primary_network_interface": {
"name": "eth0",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
같은 곳을 수정하고 "primary_ipv4_address": "10.0.0.5",
처럼 IP 주소를 명시적으로 추가 지정한다.
vsi.sh(수정 후)(省略)
"primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.5",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
또한, 지정하는 IP 주소는 여기 에 기재되어 있는 대로 예약이 끝난 주소를 피할 필요가 있는 것에 주의.
예를 들면, 10.0.0.0/24
라고 하는 subnet에서는 이하가 예약이 끝나고 유저가 이용할 수 없다.10.0.0.0: Network address
10.0.0.1: Gateway address
10.0.0.2: reserved by IBM
10.0.0.3: reserved by IBM for future use
10.0.0.254: Broadcast address
4. IAM 토큰 획득 및 스크립트 실행
위의 스크립트를 실행하기 위해서는 $iam_token
라는 변수명으로 IAM의 토큰이 설정되어 있을 필요가 있으므로, 이하에서 iam_token 취득한 후, 쉘을 실행해 VSI를 프로비저닝한다. (덧붙여 IAM_TOKEN의 취득 방법에 대해서는 여기 도 참고)$ export iam_token=`ibmcloud iam oauth-tokens | awk '{printf $4}'`
$ sh vsi.sh
5. 결과 확인
지정한 구성으로 작성되었다(이번 예에서는 10.0.0.5
를 지정했지만, 확실히 그와 같은 구성으로 되어 있다!)
# (참고) 두 번째 이후의 인터페이스에서 IP 주소를 지정할 때.
첫 번째 인터페이스에서 지정한 것처럼 "primary_ipv4_address"
를 사용하면됩니다.
설정 예(발췌) "primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
"network_interfaces": [
{
"name": "eth1",
"primary_ipv4_address": "10.4.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-b50228c7-2431-4854-ad4c-b68f6c7382a7"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
}
],
프로비저닝 후 상태
Reference
이 문제에 관하여(IBM Cloud: VPC의 VSI를 IP 주소 지정으로 프로비저닝하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/testnin2/items/337bc02892024fb684a3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
IBM Cloud Portal에서 VPC 버전의 VSI 주문 화면에서 최종적으로 프로비저닝하고 싶은 구성을 일단 GUI 베이스로 만든 후,
Get sample API call
를 누르.그러면 아래와 같은 sample API call이 출력되므로 이 코드를 복사하여 스크립트(예: vsi.sh)로 저장한다.
3. sample API call 수정
vsi.sh(수정 전)(省略)
"primary_network_interface": {
"name": "eth0",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
같은 곳을 수정하고 "primary_ipv4_address": "10.0.0.5",
처럼 IP 주소를 명시적으로 추가 지정한다.
vsi.sh(수정 후)(省略)
"primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.5",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
또한, 지정하는 IP 주소는 여기 에 기재되어 있는 대로 예약이 끝난 주소를 피할 필요가 있는 것에 주의.
예를 들면, 10.0.0.0/24
라고 하는 subnet에서는 이하가 예약이 끝나고 유저가 이용할 수 없다.10.0.0.0: Network address
10.0.0.1: Gateway address
10.0.0.2: reserved by IBM
10.0.0.3: reserved by IBM for future use
10.0.0.254: Broadcast address
4. IAM 토큰 획득 및 스크립트 실행
위의 스크립트를 실행하기 위해서는 $iam_token
라는 변수명으로 IAM의 토큰이 설정되어 있을 필요가 있으므로, 이하에서 iam_token 취득한 후, 쉘을 실행해 VSI를 프로비저닝한다. (덧붙여 IAM_TOKEN의 취득 방법에 대해서는 여기 도 참고)$ export iam_token=`ibmcloud iam oauth-tokens | awk '{printf $4}'`
$ sh vsi.sh
5. 결과 확인
지정한 구성으로 작성되었다(이번 예에서는 10.0.0.5
를 지정했지만, 확실히 그와 같은 구성으로 되어 있다!)
# (참고) 두 번째 이후의 인터페이스에서 IP 주소를 지정할 때.
첫 번째 인터페이스에서 지정한 것처럼 "primary_ipv4_address"
를 사용하면됩니다.
설정 예(발췌) "primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
"network_interfaces": [
{
"name": "eth1",
"primary_ipv4_address": "10.4.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-b50228c7-2431-4854-ad4c-b68f6c7382a7"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
}
],
프로비저닝 후 상태
Reference
이 문제에 관하여(IBM Cloud: VPC의 VSI를 IP 주소 지정으로 프로비저닝하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/testnin2/items/337bc02892024fb684a3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(省略)
"primary_network_interface": {
"name": "eth0",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
(省略)
"primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.5",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
(省略)
10.0.0.0: Network address
10.0.0.1: Gateway address
10.0.0.2: reserved by IBM
10.0.0.3: reserved by IBM for future use
10.0.0.254: Broadcast address
위의 스크립트를 실행하기 위해서는
$iam_token
라는 변수명으로 IAM의 토큰이 설정되어 있을 필요가 있으므로, 이하에서 iam_token 취득한 후, 쉘을 실행해 VSI를 프로비저닝한다. (덧붙여 IAM_TOKEN의 취득 방법에 대해서는 여기 도 참고)$ export iam_token=`ibmcloud iam oauth-tokens | awk '{printf $4}'`
$ sh vsi.sh
5. 결과 확인
지정한 구성으로 작성되었다(이번 예에서는 10.0.0.5
를 지정했지만, 확실히 그와 같은 구성으로 되어 있다!)
# (참고) 두 번째 이후의 인터페이스에서 IP 주소를 지정할 때.
첫 번째 인터페이스에서 지정한 것처럼 "primary_ipv4_address"
를 사용하면됩니다.
설정 예(발췌) "primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
"network_interfaces": [
{
"name": "eth1",
"primary_ipv4_address": "10.4.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-b50228c7-2431-4854-ad4c-b68f6c7382a7"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
}
],
프로비저닝 후 상태
Reference
이 문제에 관하여(IBM Cloud: VPC의 VSI를 IP 주소 지정으로 프로비저닝하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/testnin2/items/337bc02892024fb684a3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
"primary_network_interface": {
"name": "eth0",
"primary_ipv4_address": "10.0.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-ff96ff2a-fa27-4d88-b855-98fb85112636"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
},
"network_interfaces": [
{
"name": "eth1",
"primary_ipv4_address": "10.4.0.100",
"allow_ip_spoofing": false,
"subnet": {
"id": "02e7-b50228c7-2431-4854-ad4c-b68f6c7382a7"
},
"security_groups": [
{
"id": "r022-1a2bb9f2-7647-4332-8a1b-eb925fb6e160"
}
]
}
],
Reference
이 문제에 관하여(IBM Cloud: VPC의 VSI를 IP 주소 지정으로 프로비저닝하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/testnin2/items/337bc02892024fb684a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)