InSpec でインフラ構築自動化を【完成】させる

https://www.chef.io/products/chef-inspec

”Chef InSpec”とは、インフラの構成/設定のテストを自動化するためのフレームワークです。
Serverspecの上位互換にあたり、AnsibleやChefにより構築されたインフラの正常性確認やセキュリティ監査を行うためのツールです。

Serverspecの[開発者 宮下 剛輔氏](https://eh-career.com/engineerhub/entry/2018/01/31/110000)は、インフラテストツールの必要性について次のようにコメントしています。

”構築は自動化したが、テストは手動、だから Serverspecが必要だった”

--

日本IBMなど多くの企業でAnsibleやChefなどのIaaSツールとChef InSpecを連携させ、自動化をで完成させている。

https://www.imagazine.co.jp/feature-ansible-2-automation/

Chefを販売するProgress社も、Chef InSpecとAnsibleの連携させる動画を出している。

https://youtu.be/jtLWpwWm0YM

---

# __InSpecの優位性__:Serverspecとの比較

###### - 開発者 (Reliability)
コミュニティ依存のServerspecは、開発やメンテナンスが停滞しているのに対して、
Chef InSpec は、Chef を買収した[Progress社](https://www.progress.com)による開発が活発に行なわれている。

> Progress Softwareは、世界中に100以上の拠点を持ち、10,000人以上の従業員を擁している。主要な顧客には、Fortune 500企業をはじめ、政府機関、金融機関、医療機関など、さまざまな業界の企業が含まれる。


###### - 豊富なテスト項目 (Usability)
Serverspecのリソース数(テスト可能項目)が、[50(Github)](https://github.com/mizzy/serverspec/tree/master/lib/serverspec/type) と限られているのに対して、
Chef InSpec は[1000+(docs.chef.io)](https://docs.chef.io/inspec/resources/)のリソースが用意されている。ここ数年Serverspecのリソースにほぼ変化が見られない中、Chef InSpecの開発とメンテナンスは[Progress社](https://www.progress.com)により活発に行われている。


###### - マルチプラットフォーム対応 (Scalability)
Serverspecが主にLinuxマシンをターゲットにしているのに対して、
Chef InSpecは一般的なOSやアプリケーションのほぼすべてに対応している。
AIXなどを含むLinux系のすべてのDistroに加えて、Windowsに対しても強力に動作する。
OSやアプリケーションに加えて、AWSGCP、Azureのクラウドアカウントのテスト(CSPM)も高い粒度で行うことができる。

###### - 可視化と視認性 (Visibility)
Serverspecが出力するテスト結果は視認性に課題があるのに対して、Chef InSpecは視認性に優れている。
[Chef InSpec出力例]![capture 2023-07-13 22.35.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352042/545f103e-8870-4feb-2b29-df63763c2102.png)
さらに[Chef Automate UI](https://www.chef.io/products/chef-automate)でインフラ全体の状態をリアルタイムに可視化することができる。テストの失敗を検知しSlack,ServiceNowなどへ通知することが可能になる。
![capture 2023-07-13 22.40.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/352042/ae267657-d586-5b08-226a-b929d9993bf3.png)

###### - セキュリティとコンプライアンス (DevSecOps)
CISベンチマークやSTIGに準拠したテストコードが用意されており、InSpecテストを実行することで対象のノードがそれらのセキュリティ基準をどの程度満たしているかをテストすることができる。AnsibleやChefなどのインフラ構築の構成・設定テストを行うと同時にセキュリティとコンプライアンスのテストも実施し、インフラ構築の完全自動化を【完成】させることができる。


###### - Chefとの統合 
Compliance Phaseと呼ばれてるChefの新機能により、インフラ構成管理(IaC)としてChefを使用している場合、Chefの実行の最後にInSpecテストをシームレスに実行することができる。

https://docs.chef.io/chef_compliance_phase/

---

”Chef InSpec”ダウンロードリンク:https://www.chef.io/downloads/tools/inspec

Chef InSpecは、Chefと同様に2019年に無償の商用利用が出来なっています。 

https://www.creationline.com/tech-blog/30958

日本国内での販売代理店は下記の1社のみ。[ライセンス取得用問い合わせ](https://www.creationline.com/contact?utm_content=chef_hlink)

https://www.progress.com/partners/partner-locator/details/creationline?partnerId=0014Q00002Xe2oSQAR