Cisco IntersightにおけるInfrastructure as Code

この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2021 (2枚目）の 18日目の記事です。

2021年版 1枚目: https://qiita.com/advent-calendar/2021/cisco
2021年版 2枚目: https://qiita.com/advent-calendar/2021/cisco2

今年も**Cisco Intersight**について紹介していきます。

## はじめに

Cisco Intersightとはシスコ社が提供しているSaaSプラットフォームで、様々なインフラストラクチャを運用するためのサービスを提供してます。本稿では、ハイブリッドクラウド環境での**Infrastructure as Code（以下、略称 IaC）**を実現できるSaaSサービスについて紹介いたします。


## Infrastructure as Codeの必要性
### インフラ構築・運用レビューにはコード化が必須
実際のインフラ運用では手順書をベースにしたマニュアルオペレーションが必須で手順書のレビューなど工数かかります。特にGUIによる設定が必要な運用環境では、設定がユーザが意図した反映されているか確認するための手順が必要です。一方、GUI操作を「Copy&Paste」したEXCEL手順書は設定のレビューが非常に難しいという課題があります。そのため、運用手順書がコード化されていると、運用レビューをしやすく、Git Hubなどでコード管理システムを用いたインフラ定義ファイルの確認を行えばよいので、工数を削減することができます。

### AWSにおけるIaC技術
クラウド環境ではIaCが広く利用され、AWSではCloudFormationが標準的に利用するのが一般的です。AWS CloudFormationを利用することで、複雑なクラウドの設定を自動化するだけでなく、クラウド内の構成管理も含めてツールで管理することができます。
このようなツールを用いることで、運用管理やレビューが容易になり、変化の激しいクラウド環境ではオペレーションを必須の技術といえます。しかし、オンプレミスハードウェアがある環境や複数のクラウドを利用するユーザにはIaCには、どのような選択肢があるでしょうか。

<center>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/6bafef81-8f4a-afa3-5144-e966065a7e9c.png" width=70%>
</center>

## Infrastructure as Code技術とベストプラクティス

### HashiCorp Terrafrom 
クラウドユーザであれば、聞き馴染みのツールであると思いますが、**マルチクラウド環境**でのIaC デファクトスタンダードはTerrafromです。Terraformを用いることで、IaCツールを統合化することができます。AWS CloudFormation、Azure Resource Managerに相当するツールが一つになり、統合的なワークフローにより、マルチクラウドインフラ環境をIaC化することが一つのツールで実現することができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/1676b0dd-8756-c5d8-536c-e18bb1bc9809.png" width=60%>

HashiCorp Terraformを用いることで、自動化をしたインフラの状態は、状態ファイル(State File) として保持することができ、そのファイルをバージョン管理を可能にすることができます。
Terraformの興味深いポイントは既存のインフラ構成から、リソースファイルをimportする機能を持っている点です。その機能を応用したオープンソースとツールして、「**[Terraformer](https://github.com/GoogleCloudPlatform/terraformer)**」があげられます。

既存のクラウドからTerraform Resourceファイルを生成している例です。

https://asciinema.org/a/243961

コードを書かずに、インフラを定義ファイルをimportして構成管理を行えるのも一つ興味深いポイントです。これからIaCを初めるクラウドユーザにとっては興味深いツールです。このようなIaCツールを活用することで、導入の敷居をさげることができます。


### RedHat Ansible

VMware環境・ミドルウェア展開やアプリケーションの構成管理といえば、Ansibleが有名です。Ciscoネットワーク・インフラの構成管理でも、Ansibleの適用できます。
クラウドでもオンプレミスでも、どの環境でも自動化の構成管理を行うことができる点も興味深いです。Ansibleの利用例は幅広く、もう一つのIaCデファクトスタンダードとなっているツールです。このツールの魅了的な部分は、多くのモジュールをサポートしている点です。商用版のツールも用意されており、RedHat社から「Ansible Tower」を提供しており、エンタプライズ向けのサポートも提供されてます。
コミュニティドキュメントも豊富で、直感的な手順で、IaCを実現することができるので、はじめて導入する方もコードの書きやすいです。また、サーバ管理でもファイル・プロセス・サービスという単位で、IaC化することができ、ユーザにとって魅力的なツールとなります。

https://www.ansible.com/#

### AnsibleとTerraformを組み合わせたベストプラクティス

Microsoft社が提供しているAzure上でのSAP自動化のベストプラクティスをご紹介したい。TerraformモジュールからAnsibleモジュールをたたいたデプロイの例で、なぜ、この２つのツールを組み合わせた利用を推進しているのでしょうか。構成管理はTerraformで管理しながらもOS・ミドルウェアのレイヤではAnsibleを使うというシナリオになっています。これはクラウド環境におけるTerraformの導入のしやすさ、また、Ansibleを用いたミドルウェア管理の容易さを象徴した例となっており、１つのベストプラクティスのシナリオではないかと思います。
一つのツールでIaCするのではなく、IaCツールの利点を組み合わせによってインフラ運用を簡素化できます。複数のIaCツールの利点を活かしたベストプラクティスとなるでしょう。

https://azure.microsoft.com/ja-jp/blog/automating-sap-deployments-in-microsoft-azure-using-terraform-and-ansible/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/849b4eef-3675-6fd9-1a3c-0e062f08ce83.png)

一方、RedHatが提供しているドキュメントもあります。Terraform からansible playbook実行する例を示しています。このドキュメントからも、同時に利用使うことを想定した設計も対応できることがわかります。

https://www.redhat.com/en/resources/hashicorp-terraform-ansible-infrastructure-as-code-overview

## Cisco Intersight サービスについて
シスコは業界的にはネットワークというイメージを持たれている方が多いと思いますが、１０年間に様々なサーバ製品を提供しており、システムベンダーとして立ち位置を築いております。
その中でも興味深いのは、今年６月に発表したHashiCorpとの連携ソリューション**「Intersight Service for HashiCorp Terrafrom」**詳細については、下記ページをご覧ください。
　　　
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/5f5a97ee-fcb1-ad8a-2259-f75c7a3c98aa.png)


https://www.cisco.com/c/ja_jp/products/collateral/cloud-systems-management/intersight/nb-06-intersight-terraf-ser-aag-cte-en.html


Intersightでは様々なサービスがリリースされており、商用ハードウェアに依存していないサービスを提供しております。下記サービスは、ハードウェアに依存がないIntersightサービスとなる。Cisco Intersightは必ずしもCiscoハードウェアを準備する必要はないという項目がポイントです。

1. **Intersight Service for HashiCorp Terraform - Terraform Cloud Businessの管理**
2. **Intersight Cloud Orchestrator - オーケストレーション機能の自動化**
3. **Intersight Kubernets Service Kubernetesプラットフォーム管理**
4. **Intersgiht Workload Optimizer - アプリケーションリソースの最適化** 


Intersight Cloud Orchestratorにフォーカスしてご紹介すると、以下の機能を提供可能です。

1. SaaSを用いたワークフローデザイン機能
2. 業界標準のオープンソースを活用したIaC
3. パブリック・プライベートクラウドのワークフロータスク実行

SaaSプラットフォームで提供する標準ワークフロー定義、タスク定義を使うことができ、週次で追加アップデートされているプラットフォームのサービスとなります。
まずは下記ページをご確認ください。様々な機能拡張がされていることがわかります。Intersight サービスも日々アップデートされており、SaaSで提供できるため、ユーザとして
何かソフトウェアアップデートのための追加作業は不要であることも面白いポイントです。

https://www.intersight.com/help/saas/whats_new/2021

IaCツールは仮想化されたインフラ環境を対象にしているため、ハードウェアを含めた自動化オペレーションをしようとすると、オーケストレーションの運用管理は別製品ということになります。
しかしながら、IaC化する部分と商用ハードウェア運用の自動化を統合するアプローチはどでしょうか。
Intersight Cloud Orchesratorでは、Cisco UCSサーバ、VMware、日立ストレージなど様々な自動化機能を標準でサポートしています。（**注意：商用ハードウェアなしでもIntersight Cloud Orchesratorは利用可能です。**）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/564f4e8d-47c9-6d10-32b4-00e989bdb050.png)


 日立ストレージと聞くと、ミッションクリティカルなストレージ環境をイメージするが、Intersightを利用して自動化を提供することも可能になっています。Intersightを用いた遠隔地のDRのユースケース・仮想環境の構築できるオーケストレーションを提供しています。日立製作所にて実施された検証結果にも注目していただきたいです。

https://www.hitachi.co.jp/products/it/storage-solutions/techsupport/whitepaper/index.html

インフラ構築を行うのには様々なツールがあるが、そのツールを統合化することのメリットについても議論されています。日立製作所のエンタプライズストレージ 「Hitachi VSP」を活用した運用の自動化も対応している点です。ホワイトペーパーの中では管理ツールが１つになったことで、運用工数を削減に寄与できるという検証結果を示しております。


### IaCコントロールポイントの統合（オンプレミス・クラウド環境を組み合わせたIaCの実現）

パブリッククラウド環境も含む複数拠点におけるインフラ統合運用で重要なのは、ポータルが一元管理可能で、コントロールポイントがSaaSになっていることです。
オーケストレーション機能を用いることで、様々なインフラ運用課題を解決できることを想定することができます。ただし、一般的な自動化ツールはオンプレミス環境にコントロールポイントがあるため、さまざまな拠点にあるインフラを統合管理するにも限界があります。
たとえば、オンプレミスを対象にした複数のデータセンタのインフラを統合管理しようとすると、拠点内にコントロールポイントを置いた状態で複数拠点をネットワークで接続しなければなりません。
また、そのコントロールポイントを管理する手間がかかります。 一方で、パブリッククラウドにコントロールポイントを置くという解決策はあるものの、オンプレミス環境の統合という課題が残ります。そこで、Intersightサービスを活用することができます。

下記の図をご確認ください。オンプレミスの基盤のIaC環境とクラウドでのIaC環境を統合することで、SaaSによるIaCのコントロールポイントを統合しています。ユーザの視点に立つと、オンプレミス・クラウド環境を選択しながら、適切にインフラを用意することが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/b71fdfc1-fc87-e420-1aae-55d8e669d4ac.png)

**Intersight Cloud Orchestrator**は、Intersightサービスの１つで、**HashiCorp Terraform、Ansible、PowerShellなど様々なツール**のワークフロータスクを作成することができます。AnsibleとTerraformを組み合わせて、ハイブリッドクラウド環境のIaC環境を統合したいというニーズはクラウド利用しているユーザは日々持っていると思います。開発環境はクラウドが中心で、開発したアプリケーションはオンプレミスのハードウェアを使って稼働させたいなどのニーズです。そこで、Intersight Cloud Orchestratorを用いることでハイブリッドクラウドを統合的に運用管理することができます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/64257/5c5c46ac-78f6-91bc-ccc7-0bc85bf4720e.png)


## さいごに
クラウドファースト時代なので、クラウドで開発されたマイクロサービスのアーキテクチャを主流とするアプリケーションの展開先も検討することもでてくるかもしれません。したがって、クラウド環境に近いオンプレミスの運用も要求される可能性があります。これから、オンプレミス・クラウド環境 IaCの統合を検討しているユーザはハイブリッド環境の統合という視点でIntersightを検討してみるのもよいかもしれません。最後まで読んでくださいまして、ありがとうございました！


## 免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、私の所属する組織の意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、私の所属する組織や他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任から私の所属する組織を免責することに同意したものとします。