[Donationsのために書く]の一部として寄付を受け取りましたプログラム。[InSpec]は、システムをテストおよび監査して、統合、セキュリティ、およびその他のポリシー要件の遵守を確認するための、オープンソースの自動テストフレームワークです。開発者は、InSpecコードを使用して、インフラストラクチャとアプリケーションの実際の状態をターゲット状態に対してテストできます。テストするポリシー要件を指定するために、InSpectionには監査コントロールが含まれています。従来、開発者はポリシー要件を手動で適用し、多くの場合、実稼働環境に変更を展開する直前にこれを行います。InSpecを使用すると、開発者は製品開発のすべての段階でコンプライアンスを継続的に評価できるため、開発プロセスの初期段階で問題を解決できます。DSL(ドメイン固有言語)は、Rubyで作成されたDSLテストツールであるhttp://rspec.info/[RSpec]上に構築され、構文を指定します。監査コントロールの作成に使用されます。[resources]のコレクションも含まれており、システムの特定の部分の構成を支援し、監査制御の作成を簡素化します。使用できない特定のソリューションを定義する必要がある場合、独自のカスタムリソースを作成する機能があります。matchersを使用すると、すべてのInSpecテストでリソース値を期待値と比較できます。18.04を実行しているサーバーにInSpecをインストールします。サーバーのオペレーティングシステムファミリを検証するテストを作成することから始めます。次に、ゼロからPostgreSQL監査プロファイルを作成します。この監査プロファイルは、サーバーにPostgreSQLがインストールされていること、およびそのサービスが実行されていることを確認することから始まります。次に、テストを追加して、PostgreSQLサービスが正しいポート、アドレス、プロトコル、およびユーザーで実行されていることを確認します。次に、特定のPostgreSQL構成パラメーターをテストし、最後にクライアント認証構成を監査します。前提条件このチュートリアルを実行する前に、次のものが必要です。-rootユーザーとファイアウォール。ステップ1-環境の準備この手順では、InSpecの最新の安定バージョンをダウンロードしてホームディレクトリに解凍します。[downloads]ページでインストール可能なバイナリを提供します。ホームディレクトリに移動します。+`でバイナリをダウンロードします。+`コマンドを使用して、ダウンロードしたファイルのチェックサムを生成します。これは、ダウンロードしたファイルの整合性と信頼性を検証するためです。sha256sum各バイナリのチェックサムはhttps://downloads.chef.io/inspec[InSpecダウンロードページ]にリストされているため、ダウンロードページにアクセスして、このコマンドの出力と比較してください。inspec_3.7.11-1_amd64.debチェックサムが異なる場合は、ダウンロードしたファイルを削除して、ダウンロードプロセスを繰り返します。次に、ダウンロードしたバイナリをインストールします。`コマンドを使用します。これは、デフォルトでUbuntuなどのすべてのDebianベースのシステムに付属しています。+`フラグは、パッケージファイルをインストールするようにdpkgコマンドにプロンプ​​トを出します。-iエラーがない場合は、InSpecが正常にインストールされたことを意味します。インストールを確認するには、次のコマンドを入力します。versionインストールしたInSpecのバージョンを示す出力が表示されます。Outputバージョン番号が表示されない場合は、手順1をもう一度実行します。この後、パッケージをインストールしたときに不要になったため、「++」を削除できます。rmサーバーにInSpecが正常にインストールされました。次のステップでは、サーバーのオペレーティングシステムファミリを検証するテストを作成します。+`であることをテストする最初のInSpecテストを完了します。+]リソースを使用します。これは組み込みのInSpec監査リソースであり、システムが実行されているプラ​​ットフォームをテストします。」マッチャーも使用します。+`マッチャーは、2つの値の正確な等価性をテストする汎用マッチャーです。describe」ブロックで構成されます。各ステートメントは、システムの特定の状態の予想を_assertions_として記述します。+」で、それぞれ条件がtrueとfalseであることをアサートします。+`というファイルを作成してテストを保持し、テキストエディターで開きます。nano以下をファイルに追加します。debian`であることを確認します。+`リソースドキュメント]にあります。ファイルを保存して終了します。次に、次のコマンドでテストを実行します。execテストに合格すると、次のような出力が表示されます。`には実行したばかりのプロファイルの名前が含まれています。`からデフォルトのプロファイル名を生成します。InSpecプロファイルの作成を開始します。+`として表示します。`フィールドは、テストが実行されるターゲットシステムを指定します。`を介したリモートシステムです。+`を示すように、ローカルシステムでテストを実行しました。便利なことに、出力には、実行されたテストの左側にチェックマーク記号(✔)が表示され、テストが成功したことが示されます。テストに失敗すると、出力に十字記号(✘)が表示されます。最後に、テストの概要には、成功、失敗、およびスキップされたテストの数に関する全体的な詳細が示されます。この例では、1つのテストが成功しました。これで、失敗したテストの出力がどのように見えるかがわかります。この後のファイルの内容は次のとおりです。''}endファイルを保存して終了します。次に、次のコマンドで更新されたテストを実行します。exec次のような出力が得られます。skipped予想どおり、テストは失敗しました。`プロパティに一致しないことを示しています。+`マッチャーがこの結果を得るために2つの値の文字列比較を実行したことを示しています。この手順では、サーバーのオペレーティングシステムファミリを検証する成功したテストを作成しました。失敗したテストのInSpec出力がどのようになるかを確認するために、失敗したテストを作成しました。次のステップでは、PostgreSQLインストールをテストするための監査プロファイルの構築を開始します。次に、PostgreSQLインストールを監査します。PostgreSQLがインストールされており、そのサービスが正しく実行されていることを確認します。最後に、PostgreSQLシステムのポートとプロセスを監査します。profile`内にさまざまなInSpecコントロールを作成します。_control_は、関連するテストの高レベルのグループ化です。+`ブロックと、影響レベル、タイトル、説明、タグなどのテストを説明するメタデータを持つことができます。InSpecプロファイルは、依存関係の管理とコードの再利用をサポートするためにコントロールを編成し、どちらもテストの複雑さの管理に役立ちます。Supermarket]を介してテストをパッケージ化し、一般の人々と共有するのにも役立ちます。プロファイルを使用して、通常のRubyクラスとして実装するカスタムリソースを定義できます。`コマンドを使用します。次のコマンドを入力して、「+」プロファイルを作成します。profileこれにより、プロファイルと同じ名前(この場合は++)で新しいディレクトリにプロファイルが作成されます。次に、新しいディレクトリに移動します。/ディレクトリ構造は次のようになります。+`フォルダーが存在するかどうかをテストするサンプルコントロールが含まれています。これはサンプルとしてのみ存在し、独自のテストに置き換えます。+`サービスがインストール、有効化、実行されていることを確認することです。controls/postgresql.rb次に、テキストエディターでファイルを開きます。controls/postgresql.rbファイルの内容を次のものに置き換えます。endend前のコードブロックでは、名前とメタデータを使用してコントロールを定義することから始めます。`+`をリソース引数として渡します。