top 36 most important chef interview questions
このチュートリアルでは、最も重要なシェフのインタビューの質問とその回答を説明とともに提供しました。
すべての組織にはITサポートシステムがあり、システム管理者は、障害が発生したシステム、サーバー、およびネットワークサービスのインストール、構成、およびトラブルシューティングを担当します。複数のシステムに障害が発生した場合、システム管理者はこれらのシステムを優先的に修復および修正する必要があります。
sqlデータベースインタビューの質問と回答
Chefのような構成自動化ツールをインストールすると、システム管理者が複数の障害のあるシステムを修正するのを助け、保護します。 Chefを使用すると、システム管理者は、障害が発生したシステムの構成を実行中の安定した段階にリセットするスクリプトまたはコードを作成できます。
学習内容:
Chefソフトウェアとは
Chefは、ドメイン固有言語とRubyを使用してシステム構成スクリプトを作成する自動化ツールです。これは、プログラム可能なインフラストラクチャの設計、アプリケーションの展開、およびオンプレミスまたはパブリッククラウド上に展開されたインフラストラクチャのネットワーク全体の構成の管理に役立ちます。
これは、複数のインフラストラクチャを正しく構成するスクリプトを自動的に実行することにより、物理サーバー、仮想マシン、クラウドなどのインフラストラクチャを管理する自動化されたスクリプトです。複数のシステムに障害が発生した場合、スクリプトが実行され、障害が発生したシステムがリセットされます。正常で実行中のシステムの構成に戻します。
システム構成のセットアップは、Ruby言語で記述されたスクリプトで記述されています。これらのスクリプトはChefRecipeと呼ばれます。レシピのコレクションはクックブックに保存されます。 Chefサーバーは、これらのクックブックとクックブックのレシピを保存し、chef-clientの新しいノードに構成方法を指示します。
最もよくあるシェフのインタビューの質問
システムとサーバーのメンテナンスおよび管理の役割の分野でよりやりがいのあるポジションに移動できるように、Chefインフラストラクチャ構成ツールで最もよく寄せられるインタビューの質問と回答を用意しました。
Q#1)DevOpsのライフサイクルについて説明してください。
回答: DevOpsライフサイクルは、継続的な開発、統合、テスト、展開、監視などの段階で構成されています。以下の段階について説明します。
継続的開発
このフェーズは、プロジェクトの計画とコーディングによるアプリケーションの開発で構成されます。システム設計チームは計画に関与しています。プロジェクト計画には、どのテクノロジー、IDE、プログラミング言語、フレームワークがアプリケーションに適しているか、アプリケーションのタイプ(デスクトップ、Web、またはモバイル)、リソースの可用性、問題点、およびモジュールを統合する障害を決定することが含まれます。
コーディングには、設計、単体テスト、展開、および統合プログラムが含まれ、要件ドキュメントで期待される機能を開発します。 Git、SVN、JIRAなどのバージョン管理ツールが使用され、さまざまなビルドとバージョンを追跡し、コードベースを維持します。 Javaベースのプロジェクトを構築するためにAntやMavenなどのコード構築ツールを使用します。
継続的インテグレーション
開発者は、ソースコードを1週間または1日に複数回コミットします。バージョン管理ツールで収集されたコードベースは、コードを統合し、統合後にビルドの不一致をテストし、ビルドをデプロイするJenkinsを使用して継続的に統合されます。
継続的テスト
次に、ビルドはテストサーバーにデプロイされ、統合または変更要求が原因で発生する機能と欠陥をテストします。回帰テストは、Webベースのアプリケーションの場合はSeleniumで、デスクトップアプリケーションの場合はUFTで実行され、TestNGを使用してテストステータスを報告します。欠陥は、JIRAバグ追跡ツールで報告されます。
継続的デプロイ
この段階では、コードは本番サーバーにデプロイされ、Jenkinsは継続的に統合、ビルド、コードベースのテストを行い、クライアントのオンプレミスサーバーまたはクラウドサーバーにデプロイします。この構成中、Chef、Ansible、 傀儡 継続的デプロイの実現に役立ちます。
継続的な監視
アプリケーションを運用サーバーにデプロイした後、運用チームは、デプロイされたアプリケーションが、使用可能なインフラストラクチャ(ハードウェア構成)、接続、またはネットワークの問題があれば、最小限のダウンタイムで対応して解決する必要があるサーバーでどのように実行されるかを監視する必要があります。
Nagiosなどの継続的な監視ツールを使用して、さまざまなユーザーアクティビティ、機能の使用状況、負荷状態での不適切なシステム動作を監視および分析できます。
推奨読書=> DevOpsの究極のガイド
Q#2)組織内のシステム管理者の責任は何ですか?
回答: システム管理者は、ITインフラストラクチャを効果的に計画、インストール、構成、および最適化して、高可用性とパフォーマンスを実現する責任があります。
Q#3)ITインフラストラクチャとはどういう意味ですか?
回答: ITインフラストラクチャには、システム、サーバー、ネットワークシステム、スイッチ、ルーターなどのすべての物理ハードウェア、データセンター、データストレージ、その取得などのレガシーインターフェイスと機能、およびデータと情報を安全に管理および使用するために使用されるすべての要素が含まれます。組織のビジネス目標を保護します。
Q#4)構成管理とは何ですか?
回答: 構成管理は、サーバー、ストレージ、ネットワーク、ソフトウェアなどのインフラストラクチャをシステムにとって望ましい状態に維持します。これは、対象のシステムとソフトウェアの望ましい状態を維持する責任がある自動化ソフトウェアを提供します。
構成管理の一貫性と正確性を提供します。時間のかかる手動構成プロセスを自動化し、少ないリソースで効率と精度を向上させます。構成管理用の一般的な自動化ツールは、Red Hat Ansible、Chef、およびPuppetです。
Q#5)ChefとPuppetを比較していただけますか?
回答: ChefとPuppetはどちらも、オンプレミスおよびクラウドベースのインフラストラクチャの構成管理のためのDevOpsツールです。どちらもRuby言語に精通している必要があります。 2つの違いは、以下の表に記載されています。
チーフ | 傀儡 |
---|---|
ナイフ-vSphere | 「knifevsphere」サブコマンドは、VMwarevSphereを使用してシステムをプロビジョニングするためのものです。 |
可用性の面では、Chefのプライマリサーバーが何らかの理由で停止した場合に備えて、バックアップサーバーが操作を引き継ぎます。 | Puppetには複数のマスターアーキテクチャがあります。 Puppetのアクティブなマスターが停止した場合に備えて、スタンバイマスターが操作を処理します。 |
シェフは、インフラストラクチャを構成するためにレシピとクックブックを使用します。 | Puppetは、システムとサーバーの構成を管理するためにマニフェストとモジュールを使用します。 |
Chefは、ワークステーション、サーバー、およびノードを主要コンポーネントとして構成されています | Puppetは、サーバーをマスターマシンとして使用し、クライアントマシンをエージェントとして使用します。 |
Chefは、構成管理にRubyDSL言語を必要とします。 | Puppetは、構成を自動化およびリセットするために、独自のPuppetDSL言語を使用します。 |
Chefはコード駆動型であり、構成管理において開発者により多くの柔軟性と制御を提供します。 | Puppetには、ユーザーインターフェイスとレポート機能があります。 |
Chefの「ナイフ」ツールはインストールの問題を軽減します。 | Puppetはコマンドライン言語であり、 |
Q#6)DevOps操作のためにChefが提供する製品をリストしてください。
回答: 提供される製品は次のとおりです。
- Chefデスクトップ
- Chefコンプライアンス
- ヘッドインフラ
- 生息地の長
- Chef Inspec
- チーフオートマトン
Q#7)ChefDesktopについて説明してください
回答: ラップトップ、デスクトップ、キオスクワークステーションなどのITリソースを一元化された場所からリモートで制御するのに役立ちます。展開、管理を自動化し、ITリソースの保守を保護します。ポリシー主導の構成の実装などのタスクを自動化し、時間のかかる手動のプロセスを排除します。
Q#8)Chef Complianceの機能は何ですか?
回答: Chef Complianceは、コンプライアンスの実施と維持を支援し、異種の不動産全体で標準の監査および修復コンテンツを使用してセキュリティインシデントを防止し、ハイブリッド環境とマルチクラウド環境全体で可視性と制御を提供します。
Q#9)インフラストラクチャ管理のDevOpsチームはChef Infraをどのように使用していますか?
回答: Chef Infraはインフラストラクチャの構成を自動化し、一貫性があり、正しく、柔軟性があり、テスト可能で、バージョン管理可能で、人間が読める構成ポリシーを保証します。構成の変更は、インフラストラクチャ全体に普遍的に適用されます。
Q#10)シェフハビタットの特徴を説明してください。
回答: デプロイメントプラットフォームやオペレーティングシステムに関係なく、アプリケーションの定義、パッケージ化、およびあらゆる環境への配信を自動化します。リファクタリングや書き換えを行わずに、仮想マシンまたはコンテナーのデプロイ可能なアーティファクトを作成します。また、運用と開発全体でアジャイルデリバリープラクティスの採用を拡大するのにも役立ちます。
Q#11)自動化に準拠したChefInspecの重要性を説明してください。
回答: Chef Inspecは、セキュリティエンジニア、運用、およびソフトウェア開発者全体にセキュリティとコンプライアンスのルールを提供します。サーバー、コンテナー、クラウドAPI全体でコンプライアンス、セキュリティ、その他のポリシー要件の自動テストを実行することにより、管理環境と開発の各段階で一貫した標準を適用します。
Q#12)Chef Automateはどのように利用されていますか?
回答: Chef Automateは、開発者、運用、セキュリティ担当者向けの分析ダッシュボードを1か所で提供し、インフラストラクチャとアプリケーションの変更を提供します。また、複数のデータセンターとクラウドプロバイダーにわたるパフォーマンスとスケーリングに関する実用的な洞察も提供します。
Q#13)Chefコンポーネントについて説明してください。
回答: Chefは主に3つのコンポーネントで構成されています。 つまり。 Chefワークステーション、Chefサーバー、およびChefノード。
- Chefワークステーション: ローカルマシンにインストールされ、アドホックリモート実行、スキャン、構成タスク、クックブックを作成するためのツールなどの機能があります。 ChefDKの代わりとなるワークステーションには、Chef Infra Client、InSpec、Test Kitchen、ChefSpec、Cookstyleなどのテストツール、ChefおよびKnifeコマンドラインツールが含まれています。
- Chefサーバー: これは、クックブックで定義された構成ポリシーと各ノードの検索可能な管理されたメタデータが保存される保管場所です。 Chefによって管理されているノードは、ローカル構成を最新の状態に保つために、ChefServerに定期的にチェックインします。
- チーフノード: これには、ChefServerに保存されているJSONファイルに記述されているrun-list属性とnode属性が含まれています。 Chefクライアントは、Chefクライアントの実行ごとにノードオブジェクトのコピーを取得します。これにより、Chefクライアントの実行の最後にChefサーバーの更新されたコピーが置き換えられます。
Q#14)Chefのリソースについて説明してください。
回答: Chefのリソースは、構成ポリシーに関するドキュメントです。
- 構成アイテムに必要な状態を指定します。
- このアイテムを目的の状態にするために必要な手順を示します。
- パッケージ、テンプレート、サービスなどのリソースタイプの概要を示します。
- 必要なリソースプロパティを表示します。
- リソースは、レシピにグループ化された作業構成です。
Ruby for resourcesの構文は、以下に示すように、タイプ、名前、1つ以上のプロパティ、および対応する値を持つ1つ以上のアクションの4つのコンポーネントで構成されています。
Q#15)シェフでのレシピの使用について説明してください。
回答: レシピは、ノードのポリシーまたは構成を決定するリソースのコレクションです。レシピを実行するには、レシピがノードの実行リストに存在する必要があります。これらはRubyを使用して作成され、Chef Clientのノードで実行、更新、または作成するために必要なすべての手順が含まれています。
Q#16)ノードはChefで何を表しますか?
回答: ノードは、Chef Infraによって管理される任意のデバイス、物理、仮想、クラウド、またはネットワークデバイスにすることができます。
- 物理ノード オンプレミスサーバーまたはネットワークに接続された仮想マシンのいずれかであり、インターネットを介して情報を送信、受信、および転送できます。
- 仮想ノード ソフトウェア実装として実行される物理マシンです。
- クラウドベースのノード は、Amazon Webサービス、Google Cloud Platform、またはMicrosoftAzureでホストされる外部のクラウドベースのサービスです。 Chef Infraクライアントは、ナイフツールを使用してプラグインで作成されたこれらのインスタンスをデプロイ、保守、または構成するためにインストールされます。
- Network node Chefが一般的なネットワーク構成を自動化するための、物理または論理イーサネットおよびVLANに接続されたスイッチ、ルーターなどのネットワークデバイスです。
Q#17)シェフにおけるOHAIの役割は何ですか?
回答: OHAIは、Chef Infraが実行し、クックブック内で使用されるシステム構成データを収集するツールです。組み込みのプラグインを使用して、一般的な構成の詳細を検出します。また、オペレーティングシステム、ネットワーク、メモリ、ディスク、CPU、カーネル、ホスト名、およびクラウドプロバイダーのメタデータから属性を収集します。
Q#18)シェフでのナイフの使用について説明してください。
回答: Knifeは、ChefWorkstationとChefServerの間のインターフェイスとして機能するコマンドラインツールであり、ChefWorkstationがchef-repoディレクトリのコンテンツをChefServerと通信するのに役立ちます。 Chef-Workstationには、クックブック、ロール、データバッグ、および環境が保存されているchef-repoディレクトリが含まれています。
Knifeコマンドを使用すると、ユーザーはKnifeプラグインを使用して、ノード、ロール、JSONデータストレージ、環境、クックブックとレシピ、クラウドリソースを管理(作成、削除、編集、一覧表示、表示)できます。
Q#19)dpkg_packageリソースについて説明してください。
回答: dpkgプラットフォームのパッケージを管理するために、ノード上で、Debianパッケージのdpkgプログラムが、.debパッケージに関する情報のインストール、削除、および取得に適用されます。 Debianパッケージの管理には、dpkg_packageリソースの:install、:nothing、:removeなどのさまざまなアクションが使用されます。
Q#20)Chefでmetadata.rbについて説明してください。
回答: metadata.rbファイルには、Chef Infraクライアントとサーバーがクックブックを各ノードにデプロイするためのガイド情報が含まれています。このファイルは、クックブックのディレクトリにあります。 CookbookがChefInfra Serverにアップロードされるか、コマンドナイフクックブックメタデータが実行されると、metadata.rbファイルがコンパイルされ、JSONデータとしてクックブックに保存されます。
Q#21)クラウドホスティングプラットフォームで利用可能なKnifeプラグインサブコマンドを一覧表示しますか?
回答: 次の表に、クラウドホスティングプラットフォームで使用できるknifeプラグインのサブコマンドを示します。
サブコマンド | 説明 |
---|---|
ナイフ紺碧 | 「knifeazure」サブコマンドは、MicrosoftAzureによってホストされているAPI駆動型クラウドサーバーを管理するために使用されます。 |
ナイフ-ec2 | 「knifeec2」サブコマンドは、AmazonEC2によってホストされるAPI駆動型クラウドサーバーを管理するために使用されます。 |
ナイフ-グーグル | 「knifegoogle」サブコマンドは、GoogleのComputeEngineによってホストされるAPI駆動型クラウドサーバーを管理するために使用されます。 |
ナイフ-openstack | 「knifeopenstack」サブコマンドは、OpenStackによってホストされるAPI駆動型クラウドサーバーを管理するために使用されます。 |
ナイフラックスペース | 「kniferackspace」サブコマンドは、RackspaceからAPI駆動型クラウドサーバーを管理するために使用されます。 |
ナイフ-vCenter | 「knifevcenter」サブコマンドは、VMwarevCenterを使用してシステムをプロビジョニングするためのものです |
Q#22)Chefのハンドラーのタイプを一覧表示します。
回答: 「chef_handler」リソースは、すべてのハンドラーが有効になっていて、Chef InfraClientの実行に使用できることを確認します。 Chefハンドラーには3つのタイプがあります。
これらは以下のとおりです。
配列のコピーを作成する
- 例外ハンドラ
- レポートハンドラー
- ハンドラーの開始
Q#23)Chefの例外ハンドラーについて説明してください。
回答: Chef Infraクライアントの実行中に障害が発生した場合、このハンドラーはChef Infra Clientの実行時に使用でき、Chefハンドラーリソースを含むレシピがノードの実行リストに追加されます。例外ハンドラーはrun_statusオブジェクトで実行され、「failed?」のプロパティ値をtrueとして返します。
Q#24)Chefのレポートハンドラーについて説明してください。
回答: Chef Infra Clientが正常に実行され、この実行に関するレポートが送信されると、このハンドラーを使用できます。 chefハンドラーリソースを含むレシピは、ノードのリストを実行するために使用されます。レポートハンドラーは、run_statusオブジェクトで実行され、「success?」のプロパティ値をtrueとして返します。
Q#25)ChefのStartハンドラーについて説明してください。
回答: 名前が示すように、これらのハンドラーは、Chef Infra Clientの起動時にclient.rb設定で適用され、イベントを実行するか、chef-clientクックブックレシピで使用可能なgemリソースを適用します。
Q#26)ChefのハンドラDSLについて説明してください。
回答: Chef Infra Clientの実行に失敗したときの電子メールの送信、Chef Infra Clientの実行中のリソースに関する集計統計のStatsDへの更新などのイベントでは、ハンドラDSLを使用してそのようなイベントにコールバックを添付します。
Q#27)Chefでリソースのアクションを指定するのを忘れた場合はどうなりますか?
回答: アクションプロパティ(属性)とその値がChefのリソースに含まれていない場合、Chefはデフォルトのアクションを適用します。リソースのデフォルトのアクションは作成です。
例えば、
Q#28)これら2つのシェフのレシピは同じですか?
1つのパッケージ「httpd」
2サービス「httpd」
3アクション(:enable、:start)
4エンド
&&
1つのサービス「httpd」
2アクション(:enable、:start)
3終了
4パッケージ「httpd」
回答: いいえ、レシピファイルは書き込まれた順序で実行されます。最初のレシピでは、httpdパッケージがインストールされ、サービスが構成されます。一方、2番目のレシピでは、サービスを構成してからhttpdパッケージをインストールします。
Q#29)Chef-applyとChef-clientの違いを説明してください。
回答:違いは以下のとおりです。
シェフ-適用 | チーフクライアント |
---|---|
Chef-applyは、シェフを実行してローカルデスクトップマシンに単一のレシピを収束させ、ローカルシステムを構成する実行可能プログラムです。 | chef-clientは、1つの特定のクックブックを実行する実行可能なコマンドラインコードです。 |
chef-applyは、chefに関する基本的な理解を提供し、chefリソースの学習と探索に最適です。 | chef-clientは、単一または複数のクックブックに適用され、制作目的に最適です。 |
Q#30)Chefの実行リストについて説明してください。
回答: Run-listには、Chefがノードを目的の状態に構成するために必要な情報が含まれています。実行リストには、役割、レシピ、またはその両方のリストがあり、リストされている順序で実行されます。これらはノードオブジェクトの一部としてChefServerに保存され、Chefワークステーションからアップロードされたナイフを使用して維持されます。実行リスト形式は、完全修飾、クックブック、またはデフォルトです。
例: 「role (role_name)」または「recipe (COOKBOOK :: RECIPE_NAME)」
Q#31)Chefでノードをブートストラップするために必要な詳細は何ですか。
回答: 以下は必須要件です。
- 特定のノードへのログイン資格情報としてのユーザー名とパスワード。
- ノードのパブリックIPアドレスまたはホスト名。
- ユーザー名とパスワードの資格情報の代わりに、キーベースの認証。
Q#32)Chefで更新されたクックブックをノードに適用する方法を説明してください。
回答: 更新されたクックブックをChefのノードに適用する方法は3つあります。
これらは:
- ワークステーションからSSHコマンドを呼び出すためにknifesshサブコマンドを実行します。
- Chef-clientコマンドを実行して、ssh接続をサーバーに転送します。
- Chefサーバーを定期的に確認するためにChef-clientをデーモンまたはサービスとして実行する。
Q#33)テストキッチンとは何ですか?
回答: テストキッチンは、本番環境を変更する可能性のある潜在的な欠陥について、隔離された環境でレシピ(インフラストラクチャを構成するコード)をテストする組み込みツールです。これにより、テストコードでChefInspecを使用して任意のプラットフォームまたはオペレーティングシステムでインフラストラクチャを構成できます。
Test Kitchenを使用すると、プラットフォームとテストスイートの任意の組み合わせでクックブックデータを検証でき、kitchen.ymlファイルが作成されます。このymlファイルを使用して複数のキッチンインスタンスを作成できます。
Q#34)構成管理のためにChefをインストールすることで、組織はどのようなメリットを得られますか?
回答: 組織には次のようなメリットがあります。
- Chefの助けを借りた自動構成による新しくインストールされたシステムとサーバーの管理。
- 構成をデフォルトの実行状態に自動的にリセットすることにより、ダウンタイムを排除し、障害が発生したシステムの可用性を向上させます。
- chefを使用したハードウェアとネットワークインフラストラクチャの自動インストールと構成により、ソフトウェアの配信が改善され、障害状態からの迅速な回復が実現します。
- 迅速に発見された誤動作または脆弱なシステムを修正することにより、リスク管理を改善します。
Q#35)ChefにSSL証明書をインストールすることはどのくらい重要ですか?
回答: SSL証明書は、Webサイトのデジタル署名または認証であり、暗号化された接続を提供します。これにより、機密データにアクセスすることを目的としたハッカーの攻撃からWebサイトを保護します。秘密鍵の作成に役立ち、ChefサーバーとChefクライアント間の安全なデータ転送を保証します。
Q#36)構成管理システムにChefをインストールしている会社をリストしてください。
回答: 以下は、インフラストラクチャの構成設定をリセットするコードを実行する自動ツールをChefにインストールしている企業のリストです。
- IBM
- アラスカ
- フェイスブック
- ノードストローム
- SAP
- 特定する
- ウォルマートIRL
- Carfax
- ヘブンテック
- 楽天
- キャピタルワン
- ダンスケ銀行
結論
大規模な顧客ベースを持つ企業は、オンプレミスまたはクラウド上でシステムとサーバーで構成されるインフラストラクチャを維持する必要があります。新しいシステムとサーバーを管理および構成し、既存のインフラストラクチャを維持してそれらを良好な状態に保つには、構成管理の自動化ツール、つまりChefをインストールする必要があります。
.epsファイルを表示する方法
Chefは、オンプレミスまたはクラウドプラットフォームにデプロイする前に、継続的デプロイを支援し、インフラストラクチャから欠陥を特定して削除します。
面接で頑張ってね!