問題タブ [inspec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rspec - Chef InSpec のネストされたリソース
Chef InSpec の他のリソース内で 1 つのリソースを使用することは可能ですか?
例:
次のようなエラーがスローされます。
実際にやりたいことは、他のユーザーにインストールされているユーティリティを実行する必要があり、そのセッションから返された出力を確認して検証する必要があることです。例 :
- Java をsrijavaユーザーとしてインストールしました
- Inspec で、Java バージョンをテストするコマンドを作成しました ( root
java -version
としてではなく、そのユーザーでのみ実行されると仮定します)。 - を使用する
su srijava
と、出力がルート セッションに返されず、テストが失敗します。 - なしで実行すると、ユーティリティはユーザーがSriJava
su srijava
ではないというエラーをスローします
コードsu
:
なしのコードsu
:
どうやってやるの?
ruby - ファイルを削除する前に Chef InSpec リソースを使用する
コマンドの出力とファイルのコンテンツを照合する Chef InSpec コマンド リソースを実行しています。次に、次のリソースを使用した後、そのファイルを削除しています。しかし、次のコマンドは戻り""
、テストは失敗します。
しかし、ファイルを削除しないと、上記のコマンドは期待される出力を返します。InSpec リソースとファイルの削除に問題はありますか?
chef-infra - InSpec コマンドは、Windows では遅すぎます。手順がありませんか?
インフラストラクチャを検証するために、Serverspec と InSpec の両方をチェックしています。Windows 2012 R2 サーバーで Serverspec を実行していましたが、目に見えるパフォーマンスの問題はなく動作していました。しかし、InSpec を実行していたとき、長い間結果が表示されず、何かミスをしたと思い、キャンセルしました。その後、再度実行しましたが、実行に非常に時間がかかりました (スクリプトには記述が 1 つしかありません)。これは InSpec で予想される動作ですか、それとも何か特別なことをする必要がありますか?
私のInSpecスクリプトは次のとおりです。
ruby - nil:NilClass のメソッド 'scan' が未定義です (NoMethodError)
このレイアウトはシェフの仕様テスト用ですが、ルビーを利用してファイルの内容を取得します。ただし、このテストでは、実際にはファイルに対してテストしていないため、それを説明する方法を理解しようとしています。コードは次のとおりです。
これが私に問題を引き起こしている行です
ruby - Chef Inspec が Rspec 非推奨エラーをスローする
Jenkins ジョブで Chef Inspec exec プロファイルを実行していますが、Rspec 非推奨の警告が返されます。問題は、これらの警告が inspec exec コマンドが作成する json 出力に含まれていることです。sed/awk を試して、開始パターンと終了パターン /{/ 、 /}/ を使用して json オブジェクトの外側のすべての文字を削除しましたが、何も機能していません、テキストがまだファイルにあるたびに。両方の構文を許可するために、spec_helper.rb ファイルに rspec 例外を追加しましたが、それでも警告が表示されます。次を含むファイルが残っています:
Inspec 0.30.0、Ruby 2.0.0p645、Rspec 3.5.2 を使用。
ssh を介してローカルターゲットで inspec プロファイルを実行するために使用しているコマンドは次のとおりです。
Jenkins ジョブ出力のスニペットを次に示します。
:should & :expect syntax include を追加した spec_helper.rb のスニペットを次に示します。
構文警告を生成しているテストは次のとおりです: \
ruby - Linux マシン上のすべてのホーム ディレクトリにあるすべてのファイルを取得するための Ruby ループ (Inspec/Chef の作業)
Linuxコマンドを利用して、ルビーで書かれたInspecテストとして、Linuxマシンのすべてのホームディレクトリにあるすべてのファイルのファイル所有権をチェックしようとしています。ownerArray と呼ばれるホーム ディレクトリ所有者の配列 (bin、root、daemon などのユーザーを含む) があり、Dir.glob クラスを使用して、ディレクトリに含まれるすべての所有者のすべてのディレクトリ内のすべてのファイルを取得しようとしています。配列ですが、コードを実行すると、bin をループするだけです。/etc/passwd からループしたい所有者が約 15 人いますが、次は bin のみをチェックします (ループ時に各ファイルの名前を出力するとわかります)。これはアクセス許可の問題ですか、それとも、Dir.glob を使用してマシン上のホーム ディレクトリのすべての所有者のすべてのファイルを取得する別の方法がありますか。お時間をいただき、ありがとうございました。
上記で追加された ownerArray を参照してください。/etc/passwd からユーザーを取得しているだけです。出力については、それらのファイルを所有するグループがホーム ディレクトリの所有者がメンバーであるグループではないホーム ディレクトリにファイルが存在するたびに、テストが失敗することを期待しています。ホーム ディレクトリの所有者が、ユーザーのホーム ディレクトリ内の特定のファイルを所有するグループのメンバーでない場合、grep は 0 を返します。
ruby - ユーザーに only_if を使用する Chef + InSpec
ユーザーのリストを調べて、それらがロックされた状態にあるかどうかを判断する必要があります。これは問題なく実行できますが、リストに存在しないユーザーを inspec で無視する方法がわからないという問題があります。オペレーティング システム上。only_if(以下を含む)を使用していくつかの異なる方法を試しましたが、うまくいきませんでした。
以下は私のコードです:
ruby - コマンドから複数の stdout を取得してそれらを記述する Inspec/Serverspec
/boot/grub/grub.conf のカーネルで始まる (空白を無視する) すべての行を検索し、すべての行をチェックして行のどこかに「nousb」があるかどうかを確認する inspec コントロールを作成しようとしています。nousb が見つからない場合は失敗を返したいと思います。
私の問題は、複数の行がカーネルで始まる場合に、grep から複数の stdout を取得/説明する方法を理解できないことです。.each を使用して達成できることはありますか? これが私のコードです:
明確にするために編集します。
conf ファイルにこれらの行があるとします。
複数のカーネル行にnousb要件がないにもかかわらず、最初のものが探していたものと一致したため、テストは合格と見なします。