Ansible Arista vEOS eAPI : Today key
Automation for Networker의 8번째이자, Ansible의 6번째 포스팅입니다.
이번 포스팅은 Ansbile을 사용하여 Arista 장비의 상태 값을 가져오는 예제입니다.
지난 번에 간단한 테스트까지만 해두고 놔두었다가, 오늘 지인의 물음에 의해서 다시 점심시간에... 후다닥..
다시 테스트하고... 간단하게 나마.. 포스팅해봅니다.
Automation Tool인 Ansible을 활용한 Arista 상태 값 확인
지난 번에는 Ansible에서 eAPI Library를 활용한 Arista 장비를 제어하는 것을 몇 가지 알아보았습니다.
이번에는 동일하게 Library를 사용하여 Arista 장비의 상태 값을 확인하는 예제를 다뤄봅니다.
전체 예제는 Ansible 관리 서버와 Arista VM 1대를 이용하여 진행을 하게 되며, 개인 PC에서도 동일하게 구성하여 테스트가 가능합니다.
예제1) Version 정보 확인
[ YML 작성하기 ]
- YML의 기본 작성 형식에 따라서 이름과, 적용할 Hosts에 대해서 지정한다.
- eAPI에서 JSON을 사용한 eos_command를 적용하기 위해, eos_command를 라이브러리를 사용한다.
- 적용하고자 하는 command를 vars에 지정한다. 아래의 예제에서는 1개의 명령어만 있지만, 여러개를 지정할 수 있다.
- register를 사용하여, Command한 결과 값을 변수처럼 저장하여 사용할 수 있다.
이렇게 저장된 값은 template, action, statements에서 사용하게 된다.
- 그리고, Playbook 실행 시에 결과 값을 볼 수 있도록 debug에 해당 결과 값을 출력하게 하였다.
- 마지막으로 결과 값을 템플릿을 사용하여 파일로 생성할 수 도 있다.
※ 마지막의 action 항목은 Ansible 0.8 이후부터는 anction 대신에 다음과 같이 사용해도 된다. (결과 값은 동일)
template: src=my.j2 dest=./result1 |
[ Template ]
- Playbook에서 사용된 결과 값에 대해 파일로 저장하기 위해서 사용한 Template 파일을 보면 아래와 같다.
- result에서의 'output'에 대한 값만을 결과값 내용으로 취한다.
무슨 내용인지는 아래의 실행 결과와 생성된 파일의 내용을 보면 보다 이해하기 쉽다.
[ YML(Playbook) 실행하기 ]
- 위에서 작성한, Playbook을 실행하면 아래와 같이 정상적으로 작성이 성공한 것을 볼 수 있다.
- Debug에서 보면, show version에 대한 결과 값을 확인할 수 있다.
결과 값은 eapi의 json을 사용하여 나온 결과 값으로 출력되게 된다.
- 결과 값에서서 보면 result안에 output이라는 항목이 이고, 실제 이 output이 원하는 show version에 대한 내용이다.
위에서 본 template에서 result안의 output라고 지정한 이유는 이 때문이다. 실제 아래 생성된 결과 파일의 내용을 보면
Debug에서 볼 수 있는 전체 결과가 아닌 output에 대한 결과값만 저장되었음을 볼 수 있다.
[ 생성된 결과 파일 확인하기 ]
- 위의 결과 값 중에 output에 대한 내역에 대해서만 결과 파일로 저장된 것을 확인할 수 있다.