0Pricing
Ansible Academy · レッスン

手順ではなく望ましい状態を記述する

宣言的な方式が命令的な方式に勝る理由を学びます

「手順ではなく望ましい状態を記述する」はCoddyKit上の無料Ansible Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAnsible Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ansible Academyコースには全4レッスンが含まれています。

手順ではなく結果を記述する

Ansible は宣言型です。実現したい最終状態を記述すると、現在のホストの状態からそこに到達するための手順を Ansible が判断します。

命令型の方法

命令型のスクリプトでは、正確なコマンドを順番に列挙します。開始時の状態を前提とするため、ホストがすでに一部設定済みだと正常に動作しません。

apt-get update
apt-get install -y nginx
systemctl start nginx

宣言型の方法

宣言型のタスクでは、目標だけを記述します。たとえば nginx がインストール済みで実行中であることを指定します。Ansible は実際の状態を確認し、必要な場合だけ処理します。

ansible.builtin.package:
  name: nginx
  state: present

state が目標を示す

state キーで意図を宣言します。present、started、absent はそれぞれ実行するアクションではなく、望ましい最終状態を示します。

ansible.builtin.service:
  name: nginx
  state: started

Ansible は最初に比較する

何かを変更する前に、モジュールは現在の状態と宣言された状態を比較します。すでに一致していれば、何も実行しません。

これが収束です

実行するたびに、ホストは宣言した状態へ近づきます。これが収束です。開始時の状態に関係なく、ホストは同じ状態に到達します。

順序はそれほど重要ではありません

タスクは目標を宣言するため、途中まで実行した play を再実行すれば、残りが完了します。前回どのステップで失敗したかを把握しておく必要はありません。

再実行しても安全です

宣言型タスクは安全に再実行できます。すでに正しい状態のホストには何も行われません。これが冪等性の基盤です。

覚えることが減ります

「インストール済みならスキップ」のチェックを手作業で書く必要がなくなります。そのロジックはモジュールが担うため、playbookを短く読みやすく保てます。

Playbookは信頼できる唯一の情報源です

宣言型playbookは、望ましいサーバーの状態を記したドキュメントのように読めます。つまり、どのパッケージ、サービス、ファイルが存在すべきかを示します。

- name: Web server desired state
  hosts: web
  tasks:
    - ansible.builtin.package:
        name: nginx
        state: present

一部のタスクは今も命令型です

生のcommandタスクとshellタスクは命令型で、毎回実行されます。Ansibleを宣言型に保てるよう、状態ベースのモジュールを優先してください。

簡単な確認

nginxが存在すべきだと宣言するタスクを書き、すでにnginxがあるホストでplaybookを実行します。

まとめ

望ましい状態を宣言すると、Ansibleは実際の状態が異なる場合だけ処理を行い、ホストをそこへ収束させます。この安全性が冪等性です。🎯

よくある質問

「手順ではなく望ましい状態を記述する」レッスンは無料ですか?

はい。「手順ではなく望ましい状態を記述する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ansible Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ansible Academyコースには全4レッスンが含まれています。

「手順ではなく望ましい状態を記述する」で何を学びますか?

宣言的な方式が命令的な方式に勝る理由を学びます ブラウザで直接実行するハンズオンコードでAnsible Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ansible Academyを始めるのに経験は必要ですか?

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

「手順ではなく望ましい状態を記述する」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. 手順ではなく望ましい状態を記述する
  2. 出力のchangedとokを読む
  3. commandが冪等性を壊す理由
  4. チェックモード:--checkによるドライラン
← Ansible Academyに戻る