'Programming'에 해당되는 글 2건

  1. 2017.06.27 Programmability for Networker : Part 24(ACI Cobra Installation)
  2. 2016.01.22 Continuous Integration 개요
DevOps/Programmability2017.06.27 02:09

Today Keys : cisco, aci, apic, python, package, sdk, cobra, programming, programmable, automation, installation 


이번 포스팅은 Cisco ACI의 Python SDK인 cobra를 위한 기본 설치 과정에 대한 내용입니다. 
ACI의 경우에는 기본적으로 APIC Gui를 통해서 설정을 진행하고 있지만, 
설정해야 하는 부분이 많아지게 되면, GUI로는 어려운 면이 없지 않아 있습니다. 
그럴 때, 사용될 수 있는 부분이 XML이나 JSON을 이용한 POST로 파일을 직접 올려서 설정하는 방법도 있지만
해당 기능이 모든 설정에 대해서 지원하지는 않습니다. 

APIC Python SDK를 사용하여, POST로 지원되지 않는 설정을 GUI가 아닌 Code로써 손쉽게 설정할 수 있습니다.
(물론 코드를 작성해야 한다는 부담은 있지만, GUI를 통한 대량의 Click보다는 나은 선택이 아닐까 싶습니다)


Cisco APIC Python SDK은 'cobra'라고 합니다. 

cobra를 이용한 프로그래밍을 하기 위해서는 다음의 2개 패키지를 설치해야 합니다. 


acicobra (SDK) 

acimodel (ACI MIT Model Package)

 

이 2개이 패키지는 APIC에서 아래의 URL을 통해서 다운로드 받을 수 있습니다. 


  http[s]://APIC Address/cobra/_downloads/ 




이 디렉토리 내에는 다음의 2개의 .egg file들이 존해아며, 파일 이름에는 APIC과 Python 버전 정보가 함께 표기되어 있습니다.

따라서, APIC 버전에 따라서 다음의 파일명은 조금 다를 수 있습니다. 

 

 위의 패키지 2개를 다운로드 받은 이후에는 설치해야 하는 데, 

이를 설치하기 위해서는 다음의 패키지가 사전에 반드시 설치 되어 있어야 합니다. 

 Python 2.7, easy_install , pip , virtualenv 

 위의 사전 설치 패키지를 모두 설치하고 나면, APIC에서 다운 받은 파일을 설치를 진행해야 하는 데, 

 이 때 다음의 2가지 사항에 유의해야 합니다. 


   acicobra SDK와 acimodel Package를 설치는 반드시, acicobra SDK를 먼저 설치 후에 acimodel을 설치

  ◇ 기존에 설치된 acicobra SDK가 있다면, 설치 전에 먼저 Uninstall 을 한 이후에 재 설치. 


APIC SDK 설치는 Windows와 Linux 환경 모두 설치가 가능하며, 

이번 포스팅에서는 Windows 환경에서의 설치를 살펴보겠습니다.



 Windows에 SDK 설치하기

1. Windows 환경 변수의 Path에 Python 경로와 Python scripts 경로를 추가

2. easy_install 명령을 이용하여 acicobra SDK egg 파일을 설치 

      easy_install -Z acicobra-X.X-pyX.X.egg

 Windows에 ACI Model Package 설치하기

1. easy_install 명령을 이용하여 acicobra SDK egg 파일을 설치 

      easy_install -Z acimodel-X.X-pyX.X.egg


 ACI SDK, Model Package 설치 확인

pip show 명령어를 사용하여, 정상적으로 SDK와 Package가 설치되었는지를 확인합니다.



* 관련 링크 : https://developer.cisco.com/media/apicDcPythonAPI_v0.1/install.html




Posted by 네떡지기
DevOps2016.01.22 10:52
Today key : Continuous, Integration, CI, 지속적, 통합, DevOps, Agile, 애자일, XP, eXtream, Programming, 방법론, Practice



Continuous Integration (지속적 통합)

소프트웨어 개발에서 Build/Test 프로세스를 지속적으로 수행하는 . (Daily Build 라고도 했었음)

지속적으로 개발된 Unit 코드에 대한 Integration 작업을 수행하여, 항상 최신의 상태를 유지

Agile 개발 방법론/프로세스 중의 하나인 XP(eXtream Programming) Practice 중의 하나

 




 

Continuous Integration의 특징 장점

항상 최신의 상태를 유지하기 위해 공통의 프로젝트 버전 관리 시스템을 이용하여 코드베이스의 복사본을 이용하여 개발 작업을

  거치고, 이를 다시 검증 후에 다시 업데이트.

개발 시점과 Integration 시점이 멀어질 경우에, Integration 후의 발생하는 다양한 문제를 해결하는 많은 시간이 소요되는 반해,

  이러한 통합 과정을 초기부터 지속적으로 수행하여 보다 빠르고 쉽게 문제점을 해결하여, 소프트웨어 품질과 생산성을 향상.

시작 단계부터 지속적인 통합을 통해서 'integration Hell'이라고 불리는 개발 종료 후의 통합 시에 발생한 문제를 예방하여,

   재작업에 필요한 비용 감소 시간 단축

지속적인 버전관리를 통해서 발생하는 버그, 에러 등에 대해서 빠르게 확인 수정 가능

 

Continuous Integration에 필요한

CI 도구(CI Server)

    - 전체 Build 프로세스를 관리

    - Ex) Jenkins

버전 관리 시스템(SCM)

    - 항상 동일한 최신의 베이스라인 코드를 가지고 작업 필요.

    - Ex) Git, SVN

빌드 도구(Build Tool)

    - 개발된 코드를 컴파일 과정을 거쳐서 서비스 가능한 형태로 만드는 빌드 과정을 수행 도구

    - Ex) Maven, Ant

테스트 도구(Test Tool)

    - 단위테스트, 통합테스트, 사용자 테스트, 회귀 테스트 등을 자동으로 수행 있는 도구

    - Ex) Junit

 

 

 

 

Practices of Continuous Integration - [ Martinfowler CI 대한 포스팅 중의 CI 수행하기 위한 방법 ]

Maintain a Single Source Repository.

Automate the Build

Make Your Build Self-Testing

Everyone Commits To the Mainline Every Day

Every Commit Should Build the Mainline on an Integration Machine

Fix Broken Builds Immediately

Keep the Build Fast

Test in a Clone of the Production Environment

Make it Easy for Anyone to Get the Latest Executable

Everyone can see what's happening

Automate Deployment

 

Martinfowle

    영국 출신의 객체지향 프로그래밍 전문가이자, 컨설턴트이며, 리팩토링의 리더 중의 .


Posted by 네떡지기

티스토리 툴바