취소
다음에 대한 결과 표시 
다음에 대한 검색 
다음을 의미합니까? 
cancel
327
VIEWS
0
Helpful
0
의견
socui
Cisco Employee
Cisco Employee
 
1.  Python 인터랙티브 인터페이스로 접속하는 방법
1.jpg
2.jpg
 
2.  자주 사용되는 내장 모듈:
(1) cli
    CLI 명령을 사용하기 전에 먼저 CLI 패키지를 import 해야 합니다.
    >>> from cli import *
    여러 개의 명령어를 실행할 때는 세미콜론으로 구분해야 합니다.
    >>> cli (configure terminal ; interface loopback 0 ; shut”)
    >>> cli (show version)

'Cisco Nexus Operating System (NX-OS) Software\nTAC support: http://www.cisco.com/tac\nCopyright (C) 2002-2023, Cisco and/or its affiliates.\nAll rights reserved.\nThe copyrights to certain works contained in this software are\nowned by other third parties and used and distributed under their own\nlicenses, such as open source.
 
(2) clid
    >>>clid (“show version”)
    clid 및 cli 와 많이 유사하지만 가장 큰 차이점은JSON 형식으로 출력됩니다.

'{"header_str": "Cisco Nexus Operating System (NX-OS) Software\\nTAC support: http://www.cisco.com/tac\\nCopyright (C) 2002-2023, Cisco and/or its affiliates.\\nAll rights reserved.\\nThe copyrights to certain works contained in this software are\\nowned by other third parties and used and distributed under their own\\nlicenses, such as open source. }'

Tip:  “clid”는  JSON 형식으로 출력되기 때문에 “show” 명령어의 결과를 표시할 때 매우 유용합니다.

 

3.jpg
(3) system
    다음 명령어를 사용하여 cisco.system 모듈을 import합니다.
    >>> import cisco
    >>> from cisco.system import *
    (3-1) banner를 보기
    >>> sys.get_banner()
    'User Access Verification'
    (3-2)스위치 이름 설정
    >>> sys.set_hostname('TEST')
    True
    >>> sys.get_hostname()
    'TEST'
    (3-3)management interface IP 주소 설정
    >>> sys.set_mgmt0_ip('10.XX.XX.XX/XX')
    True
    >>> sys.get_mgmt0_ip()
    '10.XX.XX.XX/XX '
    (3-4)사용자 이름과 비밀번호 설정
    >>> sys.set_password(username="guest", password="ciscoXXX")
    True
    TEST(config-if)# show run
    snmp-server user guest network-operator auth md5 XXXXXXXX priv aes-128 X XXXXXXXX localizedV2key
 
3. python 스크립트 실행
다음 명령어를 사용하여 스크립를 실행할 수 있습니다.
TEST# source testplan.py   또는    TEST# python bootflash:///scripts/ testplan.py
마찬가지로 scheduler를 사용하여 스크립트 실행 시간을 제어할 수도 있습니다.

switch(config)# feature scheduler
switch(config)# scheduler job name testplan
switch(config-job)# python bootflash:///scripts/test.py
switch(config-job)# exit
switch(config)# scheduler schedule name testplan
switch(config-schedule)# job name testplan
switch(config-schedule)# time start now repeat 0:0:4
switch(config-schedule)# end
 
4.  Nexus API 관련 부분
 
NX-API는 HTTP/HTTPS를 사용하여 스위치 외부에서도 이러한 CLI를 사용할 수 있도록 향상되어 있고 NX-API는 show 명령어, 컨피그 및 Linux Bash를 지원합니다.

NX-API Sandbox 관련 부분
NX-API Sandbox는 Cisco Nexus 9000 시리즈 플랫폼에서 HTTP/HTTPS를 사용하여 명령, 명령 유형 및 출력 유형을 입력하는 데 사용되는 웹 기반 사용자 인터페이스입니다. 요청을 게시한 후 출력 응답이 표시됩니다.
NX-API는 디폴트로 비활성화 상태입니다. 스위치에서 feature manager CLI 명령을 사용하여 NX-API를 활성화한 후 ‘nxapi sandbox’ 명령을 사용하여 NX-API를 활성화합니다. 다음 브라우저를 사용하여 NX-API sandbox에 접속할 수 있습니다.
switch# conf tswitch(config)# feature nxapi
switch(config)# nxapi sandbox
4.jpg
 
예를 들어, 스위치에 등록된 것처럼 원하는 컨피그를 입력할 수 있습니다.
5.jpg
 
Method:
시스코 NX-API NX-OS CLI 또는 bash 명령을 XML 또는 JSON payload로 전달하기 위한 proprietary 프로토콜입니다.
NXAPI-REST:
시스코 NX-API는 내부 NX-OS 데이터 관리 엔진(DME) 모델에서 관리 객체(MO) 및 그들의 속성을 조작하고 읽기 위한 독자적인 프로토콜입니다. NXAPI-REST(DME) 프로토콜은 다음 방법들 중 선택할 수 있는 드롭다운 목록을 표시합니다:
  • POST
  • GET
  • PUT
  • DELETE
 
REST calls는 다양한 방법으로 보낼 수 있습니다. 가장 일반적인 사용:
Chrome 브라우저에서 POSTMAN 사용: 이 인기 있는 툴 http://www.getpostman.com/은 REST call를 매우 쉽게 보낼 수 있습니다.
 
Python 스크립트:대규모 구성을 신속하게 생성할 수 있고 POSTMAN이나 cURL을 사용하여 개별적인 테스트에도 사용 가능합니다.
스크립트 및 Automation 툴도 많이 사용됩니다.
Automation for Cloud (IAC)과 같은 Automation툴도 사용할 수 있습니다.
예: Postman을 사용하여 interface-vlan 기능을 활성화합니다.
POST https://xx.xx.xx.xx/api/mo/sys.json

6.jpg

 

7.jpg
{
  "topSystem": {
    "children": [
      {
        "fmEntity": {
          "children": [
            {
              "fmInterfaceVlan": {
                "attributes": {
                  "adminSt": "enabled"
                }
              }
            }
          ]
        }
      }
    ]
  }
}
 
스위치에 interface-vlan 기능이 입력되었음을 확인할 수 있습니다.
switch(config)# show run | in feature
feature interface-vlan

참고: 컨피그를 적용하기 위해 POST를 보내기 전에 인증이 필요합니다.
XML payload에서는 <aaaUser name='username' pwd= 'password'/> 형식으로 https://<IP of Nexus switch>/api/aaaLogin.xml을 호출합니다.
이 호출은 다음 호출에 사용할 브라우저 쿠키 값을 출력합니다.
 
RESTCONF(Yang):
컨피그 및 상태 데이터를 위한 YANG("Yet Another Next Generation") 데이터 모델링 언어입니다.
RESTCONF(Yang) 프로토콜은 다음 방법 중 선택할 수 있는 드롭다운 목록을 표시합니다:
  • POST
  • GET
  • PUT
  • PATCH
  • DELETE
 
메시지 포멧:
xml — XML 포멧으로 출력을 지정합니다.
json — JSON 포멧으로 출력을 지정합니다.
json-rpc — JSON-RPC 포멧으로 출력을 지정합니다.
 
커맨드 타입:
cli():control/special 문자를 포함한 CLI 명령의 원시 출력을 리턴 합니다.
clid():명령에 대한 XML 지원이 있는 경우 cli-command에 대한 JSON 출력을 리턴하고, 그렇지 않으면 예외가 발생합니다.
clip():CLI 명령의 출력을 stdout에 직접 프린트되고 Python에 아무것도 리턴 하지 않습니다.
 
참고 문서:
Cisco Nexus 9000 Series NX-OS Programmability Guide, Release 10.4(x)
https://www.cisco.com/c/en/us/td/docs/dcn/nx-os/nexus9000/104x/programmability/cisco-nexus-9000-series-nx-os-programmability-guide-104x/m-n9k-nx-api-developer-sandbox-101x.html
Cisco Nexus 3000 and 9000 Series NX-API REST SDK User Guide and API Reference, Release 10.4(x)
https://developer.cisco.com/docs/cisco-nexus-3000-and-9000-series-nx-api-rest-sdk-user-guide-and-api-reference-release-10-4-x/cisco-nexus-3000-and-9000-series-nx-api-rest-sdk-user-guide-and-api-reference-release-10-4x/#cisco-nexus-3000-and-9000-serie...
Open NX-OS Programmability
https://developer.cisco.com/docs/nx-os/introduction/
시작하기

상단의 검색창에 키워드, 문구, 또는 질문을 입력하여 궁금한 내용을 찾아보세요.

이곳에서의 여러분의 여정이 훌륭하기를 바랍니다! 시스코 커뮤니티에 빠르게 익숙해지는 데 도움이 되는 몇 가지 링크를 준비했습니다.

빠른 링크