概要
Ansible® Playbook は、一連のタスクを YAML 形式で記述したファイル、また自動化タスクの手順書です。つまり、自動化タスクのブループリントであり、IT ソリューションのインベントリー全体にわたって、最小限の手作業で実行される IT アクションです。
Playbook は、ホストで実行され、管理対象ノードに実行内容と順序を指示します。つまり、Ansible がどのデバイスに対して何をすべきかを指示します。
IT 環境全体にわたる何百、何千もの類似のテクノロジーに同じアクションを手動で適用する代わりに、Playbook を実行すると、一連のルーターなどの指定されたタイプのインベントリーに対して同じアクションが自動的に実行されます。また、Playbook は開発者がアドホックまたはテンプレートとして使用できる、事前に記述されたコードのフレームワークとしても機能します。
Playbook は、オペレーティングシステムや Kubernetes プラットフォームのような IT インフラストラクチャ、ネットワーク、セキュリティシステム、GitHub のようなコードリポジトリなどの自動化に使用されています。Playbook を使用することで、IT スタッフは、アプリケーション、サービス、サーバーノード、またはその他のデバイスのプログラミングを、ゼロから作成することなく開始できます。
また、Playbook とその中の条件、変数、タスクは、無期限に保存、共有、または再利用できます。これにより、IT チームは運用知識を体系化しやすくなり、同じアクションが一貫して実行されるようになります。
Ansible Playbook の仕組み
Ansible Playbook は、指定したインベントリーやホストのグループに対して自動的に実行されるタスクのリストです。1 つまたは複数の Ansible タスクを組み合わせて play (特定のホストにマッピングされたタスクの順序付けられたグループ) を作ることができ、タスクは書かれた順序で実行されます。Playbook には、1 つ以上の play と Ansible Role (複数の play での実行や Playbook 間での再利用が可能なタスクおよび関連する自動化アセットのバンドル) を含めることができます。
タスクはモジュール単位で実行されます。各モジュールは Playbook の中で特定のタスクを実行します。モジュールには、タスクを実行するタイミングと場所、そしてタスクを実行するユーザーを決定するメタデータが含まれています。数千もの Ansible モジュールがあり、次のようなあらゆる種類の IT タスクを実行します。
クラウド管理
oci_vcn は、Oracle Cloud Infrastructure 環境で仮想クラウドネットワークを作成、削除、または更新します。同様に、vmware_cluster は、VMware vSphere クラスタを追加、削除、または更新します。
ユーザー管理
selogin は Linux® オペレーティングシステム (OS) ユーザーを SELinux ユーザーに割り当て、gitlab_user は GitLab ユーザーを作成、更新、または削除します。
ネットワーク
数十のモジュールがアプリケーション・プログラミング・インタフェース (API)、Cisco IOS、NXOS、IOS XR の各デバイス、F5 BIG-IP サービス、Arista EOS クラウドネットワーク・オペレーティングシステムを処理します。
セキュリティ
Openssh_cert は OpenSSH ホストまたはユーザー証明書を生成し、ipa_config はグローバルな FreeIPA 構成設定を管理します。
コミュニケーション
mail は特定の基準に基づいて自動的に E メールを送信でき、snow_record は ServiceNow で単一のレコードを作成、削除、または更新します。
Red Hat のリソース
エキスパートによる説明
Ansible Playbook の実例
Ansible は、クラウドベースの REST API、Linux および Windows システム、ネットワークハードウェアなど、さまざまなデバイスと通信できます。以下に示すのは、2 種類のサーバーを自動的に更新する 2 つの Ansible モジュールのサンプルです。
--- - name: Update web servers hosts: webservers become: true tasks: - name: Ensure apache is at the latest version ansible.builtin.yum: name: httpd state: latest - name: Write the apache config file ansible.builtin.template: src: /srv/httpd.j2 dest: /etc/httpd.conf mode: "0644" - name: Update db servers hosts: databases become: true tasks: - name: Ensure postgresql is at the latest version ansible.builtin.yum: name: postgresql state: latest - name: Ensure that postgresql is started ansible.builtin.service: name: postgresql state: started
この Playbook には 2 つの play が含まれています。
- 1 つ目は、Web サーバーソフトウェアが最新かどうかを確認し、必要に応じて更新を実行します。
- 2 つ目は、データベース・サーバー・ソフトウェアが最新かどうかを確認し、必要に応じて更新を実行します。
Ansible Playbook の使い方
Ansible は YAML 構文を使用します。YAML は Yet Another Markup Language の略語であると言う人もいれば、 YAML Ain't Markup Language (再帰的頭字語) であると言う人もいます。また、YAML のファイル拡張子には、.yaml と .yml という 2 つの異なる拡張子がありますが、いずれを使用してもまったく問題ありません。
Ansible Playbook を使用するには、コマンドライン・インタフェース (CLI)、または Red Hat® Ansible Automation Platform のプッシュボタン式デプロイメントのいずれかを使います。
YAML は人間が読める言語であるため、ネットワーク、セキュリティ、クラウドといった特定のドメインの専門知識を持つ IT プロフェッショナルは、複雑なコーディング言語を学ぶことなく Playbook を作成できます。
CLI から
オープンソースの Ansible プロジェクトか Red Hat Ansible Automation Platform をインストールしたら (Red Hat Enterprise Linux CLI で sudo yum install ansible と入力するだけの簡単操作です)、 あとは ansible-playbook コマンドを使用して Ansible Playbook を実行するだけです。
プラットフォーム内から
Red Hat Ansible Automation Platform の Web ベースのユーザー・インタフェースには、より大きなジョブまたはジョブテンプレートの一部として使用されるプッシュボタン式の Ansible Playbook デプロイメントが含まれています。これらのデプロイメントには、IT 自動化に不慣れなユーザーや CLI での作業経験があまりないユーザーに特に役立つ追加のセーフガードが付属しています。
Red Hat を選ぶ理由
Red Hat Ansible Automation Platform は、インフラストラクチャ、ハイブリッドクラウド、セキュリティ、ネットワーク、エッジロケーションなど、さまざまなユースケースに対応する IT ドメイン全体のプロセスを自動化できる統合プラットフォームです。Ansible Automation Platform には、イベント駆動型ソリューション、Playbook、分析機能など、企業全体での自動化の導入に必要なツールがすべて揃っています。また、ビジュアル・ダッシュボードやロールベースのアクセス制御、その他の機能により、IT インフラストラクチャを一元的に制御し、運用の複雑さを低減できます。
Red Hat サブスクリプションを使うことで、Red Hat とそのパートナーが提供する認定済みのサポート対象コンテンツ、ホストされた管理サービスへのアクセス、組織全体で自動化を拡張するためのライフサイクル・テクニカルサポートを利用できます。また、数千ものお客様を支援することで蓄積された Red Hat の専門知識を活用できます。
Red Hat Ansible Lightspeed (および IBM watsonx Code Assistant) の導入により、Ansible が初心者にとってさらに利用しやすいものになり、経験豊富な自動化チームは Ansible Automation Platform コンテンツをより効率的に学習、作成、維持できるようになります。この生成 AI サービスは、ユーザーの入力したプロンプトを基に、IBM watsonx 基盤モデルを使用して、Ansible のベストプラクティスに沿ったコード候補を生成します。これにより、対象分野の専門知識を、チーム間やドメイン間で拡張できる信頼性の高い Ansible コードに変換することができます。
Red Hat Ansible Automation Platform の組み込み機能は、まさに箱の中のアクセラレーターです。ベンダーやパートナーの多くも自社技術のインストール、設定、保守のためのスクリプトを書くのに使用しているデファクトスタンダードです。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。