この記事は、Jenkins Configuration as Codeに関する6回シリーズの第5回です。
Jenkins configuration as codeを使用すると、Jenkinsマスターの設定を簡潔で宣言的なYAMLファイルとして作成し、コードとして管理できます。ところでこのYAMLファイルはどう書けばよいのでしょうか?
YAML設定ファイルの書き方
フォーマットを推測しながら書くのでしょうか?実際、それが可能です。JCasCはJenkinsコンポーネントの内部データモデルを使用しますが、これは多くの場合、設定に使用するWebユーザーインターフェイス(UI)のフォーム要素とまったく同じです。下のサンプルを見てください。
Jenkins: systemMessage: "Jenkins managed by Configuration as Code" securityRealm: ldap: configurations: - server: ldap.acme.com cache: size: 100 ttl: 10 userIdStrategy: CaseInsensitive groupIdStrategy: CaseSensitive
これを手動で設定する場合のWeb UIと比較してみてください。
見覚えがありますか?そのとおりです。私たちは、Web UIは一種の自然なドキュメントであると考えています。そのため、長いリファレンスドキュメントを調べなくても、 Jenkins configuration as codeを使い始めることができます。
それでもドキュメントが欲しい!
分かりました。できるだけYAMLの構文がWeb UIを反映するようにしていますが、それでも何かのときや、疑問が生じたときに参照できるよう、リファレンスや網羅的なドキュメントを作成したいと思います。
Jenkins configuration as codeはYAMLの構文に関する詳細なドキュメントを生成します。このドキュメントは、すべてのYAML要素の利用可能な属性、可能な値、制約、および説明をリストしたものです。使用可能な要素はインストールされているプラグインに依存するため、このドキュメントは実際のJenkinsインスタンスから動的に生成されます。
また、IDEやお気に入りのYAMLエディターでこの設定を記述するときに役立つように、 JSONスキーマも生成します。
今後は、Jenkinsマスターに設定を適用する前に、その設定が有効であることをチェックしたり、IDEサポートによる編集を支援するために、より多くのツールが提供される予定です。当面は、Jenkins configuration as codeのチェック用REST APIを使用してマスターに適用する前に設定ファイルを模擬実行します。
では、この次は?
Jenkins Configuration as Codeプラグインの詳細については、プロジェクトのGitHubリポジトリをご覧ください。 コミュニティやコントリビューターとチャットするには、私たちのgitterチャネルに参加してください。
また、Jenkins configuration as codeの次回の投稿もお見逃しなく!
シリーズの他の回
Jenkins Configuration as Code:最初の一歩(ママ見て、すごいでしょ)
Jenkins Configuration as Code:機密データの扱い
Jenkins Configuration as Code:プラグインをどう扱うか
Jenkins Configuration as Code:もっとスピードを!
(この記事は、CloudBees社 Blog 「Jenkins Configuration as Code: Documentation」2018年9月12日 Nicolas De Loof 投稿の翻訳記事です。)