NBM2

natural born minority

「Certified Jenkins Engineer (CJE) Study Guide」の訳

「Jenkinsの資格がある!」って聞いたのですが、日本語情報っぽいのがここしかないので、本家のガイドを探しだして「超絶テキトウ翻訳」してみました。


認定Jenkinsエンジニア(CJE) - 2017 認定試験学習ガイド

CloudBees社はJenkinsエンジニアに2つの認定を提供します

  • 認定Jenkinsエンジニア(CJE)試験は、(オープンソースの)Jenkins知識に関する60の複数選択問題で出題します
  • 認定CloudBeesJenkinsエンジニア(CCJPE)試験は、90の問題: 60の(オープンソースの)Jenkins知識に関する問題と、30のCloudBeesのJenkinsプラットフォームに関する問題 を出題します

イントロダクション

この学習ガイドは、認定Jenkinsエンジニア(CJE)試験のためのものです。 認定CloudBeesJenkinsプラットフォームエンジニア(CCJPE)試験についてはこちらを参照ください。

このガイドであなたは、試験の出題トピック、外部参照のリンク、そして例題を得ることができます。

新着情報

NOTE: 2016年から2017年へのすべての変更は、このドキュメント中の [new] 記号で表示しています。

認定試験で2016年から2017年での主な変更は:

  • open-source Jenkinsに関する問題は Jenkins 2.19.4 に基づく
  • パイプラインに関する問題は、 Pipeline plugin version2.4最新の構文 に更新
  • 試験対象にされているプラグインは、「suggested(推奨)」セットのプラグインのみ(詳細は下記参照)
  • CJPに関する問題は、現在CJP 2.7.20.2に基づく
  • CJPの問題にCloudBees保証プログラムに関するセクションを追加
  • Docker及び構成管理に関する問題を削除

構成

試験は、4つの章に集約されます:

  1. CI/CD/Jenkinsのコンセプト
  2. Jenkinsの使用方法
  3. 継続的デリバリー(CD)パイプラインの構築
  4. CD-as-codeのベストプラクティス

すべての出題は、Jenkins coreのバージョン 2.19.4 [new] を元にします。

すべての問題は、既定の推奨プラグインセットがインストールされたJenkins(以下 “base” Jenkinsと呼称)の標準インストール(以下”Suggested plugins”と呼称)に基づいています。 詳細は、「プラグイン」を参照してください。

NOTE: 試験では、ランダムな順序で出題され、セクションはありません。

プラグイン群

セクション1〜4の質問は、主にJenkinsの「base」インストールに関する質問をカバーしていますが、 「suggested(提案)」プラグインの知識もカバーされます。

受験者には、これらのプラグインの機能/用途を知ることが期待されますが、詳細な使用法についてはテストされません。

[new] 「suggested(推奨)」プラグインは、新しいJenkinsインストールで「セットアップウィザード」によってインストールされるデフォルトのプラグインです。

このリンクをたどり、Jenkinsの固定バージョンに紐付いた完全なリストを見つけることができます: Jenkins 2.19.4 suggested plugin list

[new] 「Pipeline Plugin」は、それ自体、パイプラインと関連機能を実装するプラグインの集合体です。

以下の機能が含まれています:

用語

次の点にも注意してください:

  • SCM は、特に指定しない限り “source code management” を指します
  • Pipeline は、一般名詞として使用されている場合やパイプライン名(「CD pipelines」など)を除いて、Pipelineプラグイン(以前は「Workflow plugin」と呼ばれていました)によって作成されたジョブタイプを指します
  • JenkinsのさまざまなUI要素は、次の用語を使用して参照されます

※訳者注. 4〜5ページの画像は割愛。 (本家ドキュメント参照)

1. CI/CD/Jenkinsのコンセプト

このトピックは、試験の約27%を構成します。 質問には次のトピックが含まれます:

  • 継続的デリバリー(CD)/継続的インテグレーション(CI) コンセプト
    • 継続的インテグレーション、継続的デリバリー、継続的デプロイの定義
    • CI、CDという段階
    • 継続的デリバリー 対 継続的デプロイ
  • ジョブ
    • Jenkinsにおけるジョブとは?
    • ジョブのタイプ
    • ジョブの範囲(Scope)
  • ビルド
    • Jenkinsにおけるビルドとは?
    • ビルドステップ、トリガー、成果物(artifacts)、リポジトリとは?
    • ビルドツールの設定
  • ソースコード管理
    • ソースコード管理システムとはどういうもので、どういう用途に買われているか?
    • クラウドベースSCM(Cloud-based SCMs)
    • Jenkins変更ログ(changelogs)
    • インフラストラクチャ アズ コード(Infrastracture-as-Code)
    • ブランチとマージ戦略
  • テスト(Testing)
    • Jenkinsを使ってテストを行うことの利点
    • ユニットテスト、スモークテスト、受け入れ(Acceptance)テスト、自動的検証(automated verification)、機能テスト
  • 通知(Notifications)
    • Jenkinsにおける通知の種類
    • 通知の重要性
  • 分散ビルド(Distributed Builds)
    • 分散ビルドとは?
    • マスターとエージェントの機能
  • プラグイン(Plugins)
    • プラグインとは?
    • プラグインマネージャー(plugin manager)とは?
  • Jenkins Rest API
    • 接続・応答の方法
    • なぜこれを使うのか?
  • セキュリティ
    • 承認(authentication) 対 認証(authorization)
    • マトリクスセキュリティ(Matrix security/行列で扱える機能認可)
    • 監査の定義、資格情報、およびその他の重要なセキュリティの概念
  • 指紋(Fingerprints)
    • 指紋とは?
    • 指紋はどのように機能する?
  • 成果物(Artifacts)
    • Jenkinsにおける成果物はどのように機能する?
    • 容量の大きい成果物(訳者注:Strong Artifactsなのだけれど、こういう意味か?)
  • サードパーティ製ツールの使用
    • どのようにサードパーティ製ツールを使うか
  • インストール・ウィザード [new]
    • Jenkinsインストールウィザードとは何か?
    • ウィザードはどのように使う?
    • どの構成がインストールウィザードの対象?

下記のオンラインリソースは、上記のトピックを理解するためのエントリーポイントを提供します:

2. Jenkinsの使い方(機能と特長)

  • ジョブ
    • Jenkinsでのジョブの整理
    • パラメータ化ジョブ
    • フリースタイル/パイプライン/マトリックスジョブの使用方法
  • ビルド
    • ビルドステップとトリガーの設定
    • ビルドツールの設定
    • ビルドステップの一部としてのスクリプト実行
  • ソースコード管理
    • ポーリングによるソースコード管理
    • フックの作成
    • バージョン管理タグとバージョン情報のインクルード
  • テスト(Testing)
    • コードカバレッジのためのテスト
    • Jenkinsにおけるテストレポート
    • テスト結果の表示
    • テスt自動化ツールとの統合
    • ビルドの中断
  • 通知(Notifications)
    • セットアップと使用法
    • 電子メール通知、インスタントメッセージ
    • 通知時のアラーム
  • 分散ビルド(Distributed Builds)
    • 並行実行のセットアップと実行法
    • SSHエージェント、JNLPエージェント、Cloudエージェントのセットアップと使い方
    • ノードの監視
  • プラグイン(Plugins)
    • プラグインマネージャーのセットアップと使い方
    • 必要なプラグインの検索と設定
  • CI/CD
    • Pipeline(以前は”Workflow”と呼ばれていたもの)の使い方
    • 自動デプロイの統合
    • リリース管理プロセス
    • パイプラインの”Stage”の振る舞い
  • Jenkins Rest API
    • REST APIを使用した遠隔ジョブトリガー、ジョブ状態の確認、ジョブの作成/削除
  • セキュリティ
    • セキュリティレルム(realms,訳註:認証ポリシーの適用範囲)の設定と使い方
    • ユーザデータベース、プロジェクトセキュリティ、マトリックスセキュリティ
    • 監査(auditing)のセットアップと使い方
    • 資格情報(Credentials)のセットアップと使い方
  • 指紋(Fingerprints)
    • 指紋(Fingerprints)ジョブの共有またはジョブ間でのコピー
  • 成果物(Artifacts)
    • 成果物のコピー
    • Jenkinsにおける成果物の使い方
    • 成果物の保持ポリシー
  • アラート
    • ジョブとビルドスクリプトの基本的な更新方法
    • ビルドとテストの失敗アラートからの問題のトラブルシューティング

以下のオンラインリソースは、上記のトピックを理解するためのエントリーポイントを提供します:

3. 継続的デリバリー(CD)パイプラインの構築

このトピックは、試験の約16%を構成します。 質問には以下の内容が含まれます:

  • パイプラインの概念(コンセプト)
    • CDパイプラインのバリューストリームマッピング
    • なぜパイプラインを作成するのか?
    • CDパイプライン内のゲート(Gates)
    • 複数のグループが同じツールを使用する場合の、集中パイプラインの保護(protect)方法
    • バイナリ再利用、自動デプロイメント、複数環境の定義
    • 理想的なCI/CDパイプライン・ツールの要素
    • スクリプト構築における重要な概念(セキュリティ/パスワード、環境情報などを含む)
  • アップストリーム(上流)とダウンストリーム(下流)
    • 他のジョブからのジョブトリガー
    • Parameterized Trigger pluginのセットアップ
    • アップストリーム(上流)とダウンストリーム(下流)ジョブ
  • トリガ(Triggering)
    • コード変更によるJenkinsトリガー
    • プッシュとプルの違い
    • 使うタイミング プッシュ vs プル
  • Pipeline(以前は”Workflow”と呼ばれていたもの)
    • パイプライン vs リンクされたジョブ の利点
    • パイプラインで提供される機能
    • パイプラインの使い方
    • Pipeline stage view [new]
  • フォルダ(Folders)
    • Jenkinsのフォルダにあるアイテムへのアクセス制御する方法
    • フォルダ内のジョブの参照
  • パラメータ(Parameters)
    • アップロードされた実行ファイルに対してJenkinsのテスト自動化の設定
    • ジョブ間でのパラメータ渡し
    • パラメータの特定と使用方法:ファイルパラメータ、文字列パラメータ
    • JenkinsCLIパラメータ
  • プロモーション(Promotions/促進)
    • 仕事の促進
    • なぜジョブを促進するのか?
    • Promoted Builds Pluginの使用方法
  • 通知(Notifications)
    • CDパイプラインの情報をチームに発信する方法
  • パイプライン・マルチブランチとリポジトリスキャン
    • マルチブランチジョブの使用方法
    • Github/BitBucketのOrganizationスキャン
    • 基本的なSCMリポジトリのスキャン
  • パイプライン・グローバル・ライブラリ
    • パイプライン間でコードを共有する方法
    • 共有ライブラリの使用
    • フォルダとの相互作用とリポジトリスキャン
    • セキュリティとGroovyサンドボックス

以下のオンラインリソースは、上記のトピックを理解するためのエントリーポイントを提供します:

4. CD-as-Codeのベストプラクティス

このトピックは、試験の約16%を構成します。 質問には以下の内容が含まれます:

  • 分散ビルドアーキテクチャ
  • 置換(交換)可能なエージェント
  • マスターエージェントのコネクタとプロトコル
  • エージェント上のツールのインストール
  • クラウドエージェント
  • トレーサビリティ
  • 高可用性

以下のオンラインリソースは、上記のトピックを理解するためのエントリーポイントを提供します:

サンプル問題

1.定義上、継続的デリバリーパイプラインは何から成り立っていますか?

訳註:構成要素を聞いていると思われる

  • A. バックログ項目(Backlog items)
  • B. 成果物(Artifacts)
  • C. ステージ(Stages)
  • D. チケット(Tickets)
  • E. コミット(Commitments)

2.Linuxエージェントを起動する直前に、シェルスクリプト( /usr/bin/prepare-env )を実行する必要があります。どうやったらできますか?

  • A. エージェント構成で「Suffix Start Agent Command」構成オプションを使用します。
  • B. エージェント設定で「Prefix Start Agent Command」設定オプションを使用します。
  • C. OSユーザーのホームディレクトリにある /usr/bin/prepare-env への呼び出しを含む、エージェントプロセスを実行する .profile ファイルを構成します。
  • D. シェルスクリプトを実行するには、このエージェントに関連付けられている各ジョブにシェルステップを追加します。

3.Jenkins Remote APIを使用して、スクリプトまたはHTTPクライアントからフォルダ(myFolder)のconfig.xmlを取得するように求められたとします。フォルダ(上記でのmyFolderだと思われる)は、Jenkinsマスターのルートに存在します。この設定ファイルを取得するために正しいURLパターンはどれですか?

  • A. root/job/myFolder/config.xml
  • B. root/folder/myFolder/config.xml
  • C. root/myFolder/config.xml
  • D. root/myFolder?param=config.xml
  • E. root/api/getConfig?source=myFolder

4.スケーラブルなJenkins環境のためにJenkins Cookbookが推奨するアーキテクチャーは?

  • A. 分散ビルドアーキテクチャ
  • B. 中央マスタアーキテクチャ
  • C. 自動ビルドアーキテクチャ
  • D. 手動ポーリングアーキテクチャ
  • E. ワンショットビルド(One-Shot Build)のアーキテクチャ

5.クラスタ運用のジョブにおいて、以下のステップのうち、クライアントマスタ(Client Master)に可能な操作を、3つ選びなさい

  • A. Jenkinsインストール
  • B. Jenkinsアップグレード
  • C. 全プラグインアップグレード
  • D. プラグインインストール
  • E. Jenkinsアンインストール

サンプル問題の答え。

  1. C
  2. B
  3. A
  4. A
  5. B, C, D
blog comments powered by Disqus