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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- True の場合のみタスクを実行する
- OS ファミリーの Fact による分岐
- and / or による条件の組み合わせ
- 結果を登録してから判断する