시작하기
일반적으로 SoftLayer API를 호출하기 위해서는 인증을 위한 API Key 가 있어야 합니다.
하지만 유일한 예외가 있습니다. 그것은 인스턴스 자기 자신의 메타 데이터 정보 를 호출 할 때입니다.
SoftLayer_Resource_Metadata 라는 Service는 어디에서 호출되었는지 만 중요하고, 사전에 API Key를 얻는 필요는 없습니다.
만약 slcli 명령을 사용하더라도 API Key없이 사용할 수 있습니다.
http://sldn.softlayer.com/reference/services/SoftLayer_Resource_Metadata
사용 조건
사용 조건은 다음과 같습니다.
- 실제로 SoftLayer에서 실행되는 서버에서 실행
- Private 통해 API 액세스 할 수 있는 서버에서 실행 (Public을 통해서는 동작하지 않습니다.)
예를 들어 관리 콘솔 등의 권한이 없어도 자신의 서버가 어떤 데이터 센터에서 움직이고 있는지 알 수 있습니다.
사용 방법(curl)
기본적으로 json 포맷으로 반환됩니다. (값만 반환)
하지만 .xml 확장자를 주면 xml 형식으로 반환됩니다.
또는 .json 처럼 명시적으로 .json을 붙여도 됩니다.
즉, getID인경우 getID.json 또는 getID.xml 로 쓸수도 있습니다.
DeviceID (Baremetal이라면 HardwareId VM라면 VirtualGuestId)
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getId
호스트 이름, 도메인 이름, FQDN
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getHostname
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDomain
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFullyQualifiedDomainName
Public/Private PrimaryIPAddress
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryIpAddress
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getPrimaryBackendIpAddress
Public/Private MACAddress
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getFrontendMacAddresses
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getBackendMacAddresses
라우터 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getRouter/06:5c:99:52:1a:60
VLAN 정보 (상기 방법으로 얻은 MAC 주소를 파라미터로 끝에 넣어 주어야 합니다)
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlanIds/06:5c:99:52:1a:60
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getVlans/06:5c:99:52:1a:60
데이터 센터 정보
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenterId
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getDatacenter
프로비저닝 상태
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getProvisionState
태그 정보
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getTags
UserData 정보
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getUserMetadata
서비스 자원 정보
# curl -s https://api.service.softlayer.com/rest/v3.1/SoftLayer_Resource_Metadata/getServiceResources
사용 방법 - slcli 사용
다시말하지만, slcli 명령을 사용하여도 metadata 정보의 취득에 관해서는 사전에 API Key의 설치는 필요하지 않습니다.
명령 예시
# slcli metadata -h
Usage: slcli metadata [OPTIONS] PROP
Find details about this machine
PROP Choices
*backend_ip
*backend_mac
*datacenter
*datacenter_id
*fqdn
*frontend_mac
*id
*ip
*network
*provision_state
*tags
*user_data
Examples :
slcli metadata backend_ip
slcli metadata backend_mac
slcli metadata datacenter
slcli metadata datacenter_id
slcli metadata fqdn
slcli metadata frontend_mac
slcli metadata id
slcli metadata ip
slcli metadata network
slcli metadata provision_state
slcli metadata tags
slcli metadata user_data
Options:
-h, --help Show this message and exit.
These commands only work on devices on the backend SoftLayer network. This
allows for self-discovery for newly provisioned resources.
network 정보 확인
# slcli metadata network
:...............:...................:
: name : value :
:...............:...................:
: mac addresses : 06:90:31:e4:0c:90 :
: router : fcr01.sng01 :
: vlans : xxxx :
: vlan ids : xxxxxx :
:...............:...................:
:...............:...................:
: name : value :
:...............:...................:
: mac addresses : 06:18:10:e0:91:17 :
: router : bcr01.sng01 :
: vlans : xxxx :
: vlan ids : xxxxxx :
:...............:...................:
https://softlayer.github.io/reference/services/SoftLayer_Resource_Metadata/ 참고
getDatacenterThe name for the datacenter which the resource is in getRouterThe router associated with a network component getTagsObtain tags associated with the resource getVlanIdsA list of VLAN ids for a network component getVlansA list of VLAN numbers for a network component |