Cisco ACI は 2014 年のリリースから、サービスプロバイダを含む数多くのユーザ様でご利用頂いております。
ACI 自体のバージョンが上がるにつれて、GUI 画面も洗練されより簡単に操作できるようになってきております。
しかしながら、同じような設定の繰り返しや大量の設定投入が必要となった場合は、より効率的な設定作業、運用をするためにも自動化の需要は高まっております。
自動化の手段としては、Cisco Network Services Orchestrator(NSO) をはじめとして Ansible,Terraform 等々ありますが、本記事では Ansible を使った ACI 自動化をご紹介していきます。
Ansible で ACI を操作するためには、各機能毎に用意された ACI モジュールを利用するか、APIC の RESTAPI を直接操作する aci_rest モジュールを使う必要があります。aci_rest モジュールは APIC の REST API の仕様を確認しながら設定していく必要がありますが、各 ACI モジュールで用意されていない機能を実現することができます。
Ansible 2.9 では 65 を超える ACI モジュールと 30 を超える Multi-Site Orchestrator (MSO) モジュールが用意されております。詳細については、Ansible のサイトをご確認ください。
次に、APIC の REST API の基本をご紹介いたします。API へアクセスする方法は大きく2つあり、
①Class へアクセスする方法
②Object へアクセスする方法があります。
Class へのアクセス
主に Class 単位の情報をまとめて取得する際に利用します。
http|https://APIC_IP[:port]/api/class/ClassName.(json|xml) の形式で利用されます。
下記例では、Tenant 全てに対してアクセスしていることを指します。
Object へのアクセス
主に各オブジェクト個別にアクセスしたい場合に利用されます。
http|https://APIC_IP[:port]/api/mo/uni/DN.(json|xml) の形式で利用されます。
DN: Distinguished name オブジェクトのユニークな名前を示します。
下記例では、Tenant の Jaguar へアクセスしていることを指します。
その他詳細な情報につきましては、ACI REST_API Configuration Guide をご参考ください。
以上、今回は ACI の RESTAPI へのアクセス方法の基本についてご紹介いたしました。
次回以降は、実際に Ansible の api_rest モジュールを利用して、API へアクセスしてみたいと思います。