Skip to content

필사 모드: Ansible-Runner (Python 에서 ansible 실행)

한국어
0%
정확도 0%
💡 왼쪽 원문을 읽으면서 오른쪽에 따라 써보세요. Tab 키로 힌트를 받을 수 있습니다.
원문 렌더가 준비되기 전까지 텍스트 가이드로 표시합니다.

Overview

Python코드로 실행하는 Django에서 동적 인벤토리, 동적 변수를 사용하고 싶었는데, 다행히 [ansiblerunner](https://ansible-runner.readthedocs.io/en/stable/) 라는 module을 찾게되었다.Ansible Runner는 Python 에서 Ansible 을 실행할 수 있도록 도와주는 파이썬 모듈이다. 사용해보니 실행되는 ansible version에 상관없이 같은 실행결과를 보장하는 기능도 있고, event callback을 등록해 실시간으로 output을 출력할 때도 편리했다.[공식홈페이지](https://ansible-runner.readthedocs.io/en/stable/)에 자세한 설명이 나와있다.

실행방법

아래와 같이 ansible_runner를 import한 뒤, run을 호출하면서, 인자로 `private_data_dir`, `playbook`, `inventory` 를 넣어주면 ansible playbook을 실행가능하다.

물론 ansible-runner를 실행하는 서버에 ansible이 설치되어 있어야한다. 나는 다음과 같은 pip를 사용해 설치하였다. `pip install ansible`

def event_callback(event_data):

do something every event

print(event_data)

def finished_callback(runner):

#do something after finishing

print runner

return

r = ansible_runner.run(

private_data_dir=os.path.join(

settings.BASE_DIR,"private_directory"

),

playbook=os.path.join(

settings.BASE_DIR,"playbook_directory",

"setup.yml"

),

event_handler=event_callback,

finished_callback=finished_callback,

quiet=True,

)

ansible에서 실행가능한 play-book이라면 `ansible_runner` 에서도 실행이 가능하다.

현재 단락 (1/21)

Python코드로 실행하는 Django에서 동적 인벤토리, 동적 변수를 사용하고 싶었는데, 다행히 [ansiblerunner](https://ansible-runner.readth...

작성 글자: 0원문 글자: 979작성 단락: 0/21