第5章 Ansible を使用した自動化

Ansible では、netconf または cli などのプロトコルを使用して、さまざまな物理ネットワーク機能と仮想ネットワーク機能の自動化メカニズムを簡単に実装できます。Ansible は現在、APPC アーキテクチャーで ONAP を使用しており、VNF 管理フレームワークを提供するため、体系化された形で CLI のようなツールを使用できます。また、エージェントレスなため、ターゲットの VNF では追加のソフトウェアが必要ありません。このコンストラクトは、標準インターフェイスや netconf などのプロトコルをサポートするかどうかにかかわらず、一貫性を持って VNF を管理できます。アクションは、Playbook (または 複数の Playbook) を構築して、SSH 経由で VNF 上の Ansible が Playbook を実行することで、VNF で実行できます。

APP-C の Ansible 拡張は、以下のアーキテクチャーで VNF を管理できます。

  • Ansible 有向グラフ (DG): Ansible の有向グラフは、LCM アクションに合わせて、Ansible にある Playbook (および、Ansible では VNF アクションが Playbook にマッピングされるため APP-C アクション) を呼び出すのに使用可能な Ansible の汎用有向グラフです。
  • APP-C Ansible アダプター: Ansible アダプターは、APP-C Karaf コンテナー内の OSGI バンドルで、Ansible サーバーと対話します。これは、2 つのアクションを実行する REST 呼び出しのセットです。これは最初に Playbook の実行リクエストの送信を行い、必要な場合は実行後に Playbook の結果を取得します (同期モードの場合)。
  • APP-C/Ansible サーバーインターフェイス: Ansible ライブラリーは Python で記述されているため、 APP-C Karaf コンテナー内からネイティブで実行できません。代わりに、この設計では、Ansible Playbook を実行して、APP-C の要件に準拠する REST インターフェイスを公開できる Ansible サーバーを呼び出します。これらの要件は、準拠する Ansible サーバーによりサポートする必要があるサーバー API インターフェイスとして、文書にまとめられています。Ansible サーバーの実装はオープンのままで、サーバーがインターフェイスを使用している限り APP-C 操作への影響はありません。評価目的では、この APP-C/Ansible サーバーインターフェイスを実装する参照 Web サーバーが開発されており、コードは appc-adapters/appc-ansible-adapter/appc-ansible-example-server パスの App-C ONAP リポジトリーから入手できます。

アプリケーションコントローラーがイベントを受け取ったときのワークフロー例については、APPC Ansible Adapter のページを参照してください。