Skip to content

필사 모드: Ansible-Runner(PythonからAnsibleを実行する)

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

Overview

Pythonコードで動作するDjangoで動的インベントリ、動的変数を使いたかったが、幸いにも[ansible-runner](https://ansible-runner.readthedocs.io/en/stable/)というモジュールを見つけることができた。Ansible RunnerはPythonからAnsibleを実行できるようにするPythonモジュールだ。使ってみると、実行されるansibleのバージョンに関係なく同じ実行結果を保証する機能もあり、イベントコールバックを登録してリアルタイムで出力を表示する時にも便利だった。[公式サイト](https://ansible-runner.readthedocs.io/en/stable/)に詳しい説明が記載されている。

実行方法

以下のようにansible_runnerをインポートした後、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で実行可能なplaybookであれば`ansible_runner`でも実行が可能だ。

クイズ

PythonからAnsibleを実行できるようにするAnsible Runnerモジュールについて学ぶ。

以下のようにansible_runnerをインポートした後、runを呼び出しながら引数としてprivate_data_dir、playbook、inventoryを渡せばansible

playbookを実行できる。

もちろんansible-runnerを実行するサーバーにansibleがインストールされている必要がある。私は次のようにpipを使ってインストールした。pip

install ansible ansibleで実行可能なplaybookであればansible_runnerでも実行が可能だ。

현재 단락 (1/26)

Pythonコードで動作するDjangoで動的インベントリ、動的変数を使いたかったが、幸いにも[ansible-runner](https://ansible-runner.readthedocs.i...

작성 글자: 0원문 글자: 1,311작성 단락: 0/26