YAML_Corporate_Training_Course .pptx

>100 Views

July 18, 26

スライド概要

profile-image

はじめまして、yukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

うさうさ研修工房 CORPORATE IT TRAINING SERIES ゼロからの YAML実践講座 設定ファイルを正しく書き、正しく読むための実務講座 基本構文から、Docker Compose・GitHub Actions・Kubernetesでの実践、よくある落とし穴まで server: host: 0.0.0.0 port: 8080 tls: true 対象:IT研修受講者/新任エンジニア/インフラ・DevOps入門者 所要時間:約90〜120分(演習含む) 2026 # 設定はコードで書く時代へ

2.

ABOUT THIS COURSE この講座について 前提知識 テキストエディタの基本操作ができること。プログラミング経験は必須で はない。 この講座で身につくこと YAMLは、Kubernetes・Docker Compose・GitHub Actions・Ansibleな ど、現代のIT基盤を支える設定ファイル形式の事実上の標準です。本 講座では、YAMLの基本構文から、実務で頻出するつまずきポイントま でを体系的に学びます。 学習の進め方 各章は説明→コード例→演習の順で構成。実際に手を動かしながら進 めることを推奨。 「なんとなく書けるが、なぜそう書くのか説明できない」状態から、「構文 を理解し、他人の YAMLを正確に読み解ける」状態を目指します。 到達目標 業務で使われる設定ファイルを自力で読み書きできるレベル。 この講座について ゼロからのYAML実践講座 02

3.

COURSE OUTLINE 目次 目次 01 YAMLとは何か 05 アンカー・エイリアス 02 基本構文とインデント 06 実践編:主要ツールでの活用 03 リストとネスト構造 07 よくある間違いと検証 04 複数行文字列とコメント 08 まとめと演習問題 ゼロからのYAML実践講座 03

4.

CHAPTER 01 YAMLとは何か 主な利用シーン Kubernetes Pod・Service等のマニフェスト定義 YAML(ヤムル/ヤメル) Docker Compose “YAML Ain’t Markup Language” の再帰的頭字語。当初は “Yet Another 複数コンテナの構成定義 Markup Language” の略とされたが、データ構造を表すための言語であ り、マークアップ言語ではないことを強調してこの名称に改められた。 人間にとって読み書きしやすいことを重視して設計されたデータ直列化(シ リアライズ)形式で、設定ファイルやデータ交換に広く使われている。 拡張子は .yaml または .yml。 YAMLとは何か GitHub Actions / CI ワークフロー・パイプライン定義 Ansible サーバー構成の Playbook定義 ゼロからのYAML実践講座 04

5.

CHAPTER 01 なぜYAMLなのか ― JSON・XMLとの比較 YAML 1.2はJSONの上位互換(ほぼすべての有効なJSONは有効なYAMLとして読み込める)。人が書く設定ファイルにはYAML、プログラム間のデータ交換 にはJSONが好まれる傾向がある。 観点 YAML JSON XML 可読性(人間にとって) ◎ 高い ○ 普通 △ 冗長 コメントの記述 ○ 可能(#) × 不可 ○ 可能 構造の表現方法 インデント 波かっこ { } タグ < > 主な用途 設定ファイル API・データ交換 文書・レガシー連携 学習コスト △ インデント要注意 ○ 低い △ 冗長で読みにくい なぜYAMLなのか ゼロからのYAML実践講座 05

6.

CHAPTER 02 基本構文:キーと値 name: 田中太郎 最も基本の形は「キー : 値」。 age: 28 コロンの直後には必ず半角スペースを 1つ入れる。これを忘れる department: インフラ部 と、YAMLパーサーはキーと値を正しく区別できない。 キー・値のペアを複数並べることで、ひとつの「マッピング(連想配 列)」を表現する。 注意:コロンの後にスペースがないと動作しない name:田中太郎 のようにスペースを省略すると、多くのパーサーは “name:田中太郎” を1つの文字列として扱うか、エラーになる。 基本構文:キーと値 ゼロからのYAML実践講座 06

7.

CHAPTER 02 データ型(スカラー) YAMLの値(スカラー)には主に4つの基本型がある。多くの場合、クォートなしでも自動的に型が推定される。 文字列 (string) title: "はじめてのYAML" 数値 (number) 真偽値 (boolean) port: 8080 enabled: true null(値なし) middle_name: null null は ~ という記号や、値を書かずに空欄のままにする方法でも表せる(例:middle_name: )。 データ型(スカラー) ゼロからのYAML実践講座 07

8.

CHAPTER 02 インデントのルール ― 最重要ポイント YAMLは構造をインデント(字下げ)だけで表現する。この3つのルールを外すと、ほぼ確実にエラーになる。 ● タブ文字は使用禁止。半角スペースのみを使う。 ● 同じ階層の要素は、インデント幅を完全に揃える。 ● インデント幅に厳密な決まりはないが、2スペースで統一するのが一般的。 正しい例 server: host: localhost port: 8080 インデントのルール 誤った例(インデントが不揃い) server: host: localhost port: 8080 ゼロからのYAML実践講座 08

9.

CHAPTER 03 リスト(配列)の書き方 各項目の先頭に「 - 」(ハイフン+半角スペース)を付けて並べる。 同じ内容を、JSONのような角かっこで1行に書く「フロースタイル」でも表現できる。 ブロックスタイル(推奨) fruits: フロースタイル( JSON風) fruits: [apple, banana, orange] - apple - banana - orange リスト(配列)の書き方 ゼロからのYAML実践講座 09

10.

CHAPTER 03 ネストしたリストとマップ 実務のYAMLでは、リストの中にマップを入れたり、マップの値がさらにマップになったりする「入れ子構造」が頻出する。 servers: - name: web1 ip: 192.168.1.10 roles: [frontend] - name: web2 ip: 192.168.1.11 roles: [frontend, cache] database: host: localhost credentials: user: admin password: ${DB_PASSWORD} ネストしたリストとマップ ゼロからのYAML実践講座 10

11.

CHAPTER 04 複数行文字列: | と > 長い文字列は、 2つの特殊記号で複数行にわたって書ける。 |(パイプ):改行を保持 message: | >(山かっこ):改行をスペースに変換 message: > 1行目です。 1行目です。 2行目です。 2行目もつながって 改行がそのまま保持されます。 1つの文になります。 使い分けの目安:ログメッセージや整形済みテキストは | 、説明文や長い一文は > を使うと読みやすい。 複数行文字列 ゼロからのYAML実践講座 11

12.

CHAPTER 04 コメントと複数ドキュメント # ユーザー設定ファイル name: sample-app # サービス名 version: 1 コメント --- # から行末までがコメントとして扱われる。行の先頭でも、値の後ろでも書 name: sample-app-staging ける。 version: 2 ... 複数ドキュメント 1つのファイルに、--- で区切って複数のYAMLドキュメントを収めることが できる。ドキュメントの終わりは ... で明示できる(省略も可)。 コメントと複数ドキュメント ゼロからのYAML実践講座 12

13.

CHAPTER 05 アンカー・エイリアス・マージキー 同じ内容を繰り返さないための仕組み & でアンカー(目印)を付け、* でその内容を再利用(エイリアス)できる。<< はマージキーと呼ばれ、アンカーの内容を展開しつつ、個別の項目を追加・上書き できる。 共通設定を複数の環境で使い回す場面などで威力を発揮する。 defaults: &defaults adapter: postgres host: localhost development: <<: *defaults database: dev_db test: <<: *defaults database: test_db アンカー・エイリアス・マージキー ゼロからのYAML実践講座 13

14.

CHAPTER 06 ― HANDS-ON 実践編: Docker Compose version: "3.9" services: web: image: nginx:latest ports: - "80:80" depends_on : - api api: build: ./api environment : - NODE_ENV=production 実践編:Docker Compose ゼロからのYAML実践講座 14

15.

CHAPTER 06 ― HANDS-ON 実践編: GitHub Actions name: CI on: push: branches : [main] jobs: build: runs-on : ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install dependencies run : npm install - name: Run tests run : npm test 実践編:GitHub Actions ゼロからのYAML実践講座 15

16.

CHAPTER 06 ― HANDS-ON 実践編: Kubernetes マニフェスト apiVersion: apps/v1 kind: Deployment metadata: name: web-app spec: replicas: 3 selector: matchLabels: app: web template: spec: containers: - name: web image: myapp:1.0 ports: - containerPort: 8080 実践編:Kubernetes ゼロからのYAML実践講座 16

17.

CHAPTER 07 よくある間違いトップ 5 1 タブ文字の使用 YAMLの構造インデントにタブは使えない。エディタの設定で「タブをスペースに自動変換」を有効に する。 2 コロンの後のスペース忘れ key:value ではなく key: value 。半角スペース1つが必須。 3 インデントの不揃い 同じ階層の要素は、スペースの数を1つも違えず揃える必要がある。 4 Norway Problem(意図しない型変換) no や yes 、on/off を含む文字列が真偽値と解釈されることがある。国名コード NO(ノルウェー)な どが罠になりやすい。 5 数値と誤認される文字列 バージョン番号 1.10 などをクォートなしで書くと数値と解釈され、末尾の 0 が消えることがある。 クォートで囲んで防ぐ。 よくある間違いトップ5 ゼロからのYAML実践講座 17

18.

CHAPTER 07 検証ツールとベストプラクティス 推奨ツール ベストプラクティス yamllint コマンドラインで構文・スタイルを検証するデファクトスタンダード VS Code “YAML” 拡張機能 リアルタイムの構文チェックとスキーマ補完 各ツールのスキーマ検証 ● インデント幅をチーム内で統一する(2スペース推奨) ● 曖昧になりうる値(バージョン番号、yes/no等)は明示的にクォートする ● 共通設定はアンカー・エイリアスで重複を避ける ● CIパイプラインにyamllint等の検証を組み込む ● 1ファイルを肥大化させず、責務ごとに分割する kubeval(Kubernetes)など、用途別の専用バリデータ 検証ツールとベストプラクティス ゼロからのYAML実践講座 18

19.

CHAPTER 08 まとめと演習問題 講座のまとめ 演習問題 演習1:自分のプロフィール(名前・年齢・スキル一覧)を YAMLで書いてみる ● YAMLはインデントで構造を表す、人間に読みやすいデータ形式 ● キー: 値、リスト(- )、ネストが基本の 3要素 ● | と > で複数行文字列を、 & * << で重複を防げる ● 曖昧な値は必ずクォートし、 CIでの検証を習慣化する 演習2:本講座の docker-compose.yml に、新しいサービス db を追加する 演習3:意図的に壊れた YAMLファイルを渡すので、原因を特定して修正する まとめと演習問題 ゼロからのYAML実践講座 19

20.

APPENDIX 参考リソース YAML公式仕様 yaml.org — YAML 1.2 の正式な言語仕様書 yamllint 公式ドキュメント yamllint.readthedocs.io — 構文・スタイル検証ツール Docker Compose ファイルリファレンス docs.docker.com/compose — compose.yml の全項目リファレンス GitHub Actions ワークフロー構文 docs.github.com/actions — ワークフローYAMLの公式リファレンス Kubernetes ドキュメント kubernetes.io/docs — マニフェストの書き方とAPIリファレンス 本講座の内容は一般的な国語辞典・技術文書レベルの説明に基づき、うさうさ研修工房が独自にまとめたものです。 参考リソース ゼロからのYAML実践講座 20