0Pricing
DevOps Bootcamp · レッスン

OS ファミリーの Fact による分岐

Debian と RedHat で異なる手順を実行します。

「OS ファミリーの Fact による分岐」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

1つのPlaybookで複数のディストリビューションに対応

Debianではapt、RedHatではdnfを使います。ファクトとwhenを使えば、1つのplaybookで各オペレーティングシステムに対応できます。🐧

os_familyファクト

Ansibleはansible_os_familyを収集します。これはDebianやRedHatのように、関連するディストリビューションをまとめる大まかな分類です。

when: ansible_facts["os_family"] == "Debian"

ファミリーとディストリビューションの違い

os_familyは大まかな分類で、ansible_distributionは具体的なディストリビューションを表します。UbuntuとDebianは同じDebianファミリーですが、ディストリビューションとしては異なります。

Debian専用タスク

aptタスクの実行をDebianファミリーだけに制限します。RedHatのホストでは単にスキップされます。

- name: Install nginx (apt)
  ansible.builtin.apt:
    name: nginx
  when: ansible_os_family == "Debian"

RedHat版のタスク

RedHatファミリー用に対応するタスクを追加します。これで、同じplayで両方の環境に対応できます。

- name: Install nginx (dnf)
  ansible.builtin.dnf:
    name: nginx
  when: ansible_os_family == "RedHat"

packageによる近道

単純なインストールであれば、汎用のpackageモジュールが適切なツールを自動的に選びます。そのため、分岐自体が不要な場合もあります。

文字列は大文字と小文字を区別する

ファミリー名は正確に指定する必要があります。正しいのはRedHatであり、Redhatやredhatではありません。大文字と小文字を間違えると、すべてのホストが何も表示されずにスキップされます。⚠️

その他の便利なOSファクト

ファミリー以外にも、より細かくバージョンを考慮した判断に使えるansible_distribution_versionやansible_distribution_major_versionがあります。

when: ansible_distribution_major_version == "9"

分岐する前に確認する

値がわからない場合は、簡単なdebugタスクでファクトを表示し、必要な正確な条件を記述できます。

- ansible.builtin.debug:
    var: ansible_os_family

ファクトの収集が必要

OSファクトに基づいて分岐するには、gather_factsを有効にする必要があります。無効にしている場合、os_family変数は未定義になります。

ポータブルなPlaybookの利点

どのディストリビューションでも扱える1つのファイルは、OSごとのコピーを管理するよりも簡単です。factsとwhenを組み合わせることで、自動化をポータブルにできます。🌍

クイックチェック

OSによる分岐を確認しましょう。

まとめ

ansible_os_familyをwhenで使うと、DebianとRedHatで分岐できます。factsを有効にし、名前を正確に一致させてください。✅

よくある質問

「OS ファミリーの Fact による分岐」レッスンは無料ですか?

はい。「OS ファミリーの Fact による分岐」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「OS ファミリーの Fact による分岐」で何を学びますか?

Debian と RedHat で異なる手順を実行します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「OS ファミリーの Fact による分岐」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. True の場合のみタスクを実行する
  2. OS ファミリーの Fact による分岐
  3. and / or による条件の組み合わせ
  4. 結果を登録してから判断する
← DevOps Bootcampに戻る