Ansible トレイルマップ
MOUNT YAML

STEP3

はじめてのPlaybookを書いてみよう

Step3では、これからAnsibleを始める皆さんに向けて、
Ansibleに登場する基本用語の解説、動作の説明から、
Ansibleに初めて触れてみるまでを紹介します。
このステップの完了はおよそ90分を目安に考えてください。

Ansibleの特徴

 Ansibleは、Automation for everyone(みんなのための自動化)を目標にした、シンプル、パワフル、エージェントレスの特徴を備えたソフトウェアです。自動化というジャンルでは後発ながら、従来の悩みであった、自動化ツール自体の学習コストが高い、自動化したい作業によって考え方やり方が異なる、自動化するための準備が大変といった問題を緩和しています。

シンプル

やりたいことをYAML(やむる)フォーマットで記載。操作対象機器の知識があれば、ほんの少しの学習ですぐに利用でき、アプリ開発者、サーバ管理者、ネットワーク管理者等の役割の異なる人たちでも共通言語として機能し連携を強化する。

パワフル

Linux、ネットワーク機器やクラウド等、様々な機器を操作可能で、構成管理、デプロイ、オーケストレーションの全てを一貫した考え方とやり方で自動化できる。

エージェントレス

操作対象にエージェントのインストールが不要なので、より多様な機器を自動化の対象にできる。自動化対象に対する事前準備が不要なので、大規模環境であってもすぐに自動化に着手できる。

 現在のITシステムは、多様な機器で構成され、様々な役割のチームが相互に連携し成り立っています。そういった環境において、プログラミングの知識を必要とせず誰もが扱うことができ、多様な機器とユースケースに対応することができるようにAnsibleは設計されています。

Ansibleの基本用語

Ansibleに登場する基本的な用語や要素を解説します。

Control Node

Ansibleコマンドを実行し、後述のTarget Node群を操作・管理するノードを指します。Control NodeにはAnsibleのインストールが必要です。

Target Node / Host

Ansibleから操作する対象で、ホストとも表現されます。Ansibleでは、Target Nodeに特別なエージェントなどのインストールは必要ありません。Ansibleは、Linuxサーバやネットワーク機器、クラウド等の様々なものを操作対象にできます。

Inventory

操作・管理対象とするTarget Nodeを纏めたリストを指します。Inventory内においてTarget Nodeは複数のグループに分類して登録することができます。このInventoryは、Ansibleによる処理を実施する場合に必要です。

Task

Ansibleにおける、処理(ステップ)の最小単位です。実行対象に対してあってほしい状態や実施する処理を記述します。

Module

Ansibleにおいて対象に対して何かを実施する際に用いる最小の部品(プログラム)で、Taskごとに一つのModuleを指定して利用します。

Moduleを利用する際には、Moduleごとに利用可能な任意のパラメータと値を指定して利用できます。一般的には、Ansibleのモジュールは(前提の状態はどうであれ)なって欲しい状態のみをパラメータとして記載すればよく、一般的なプログラムと比較して非常にシンプルに記述できます。

Ansibleコミュニティを中心として、様々なIT機器やアプリケーション、サービス用のモジュールが提供されています。

Play

インベントリ内の対象範囲と実施する1つ以上のTaskを記載します。

Playbook

Ansibleにおいて、自動化の手順書にあたります。

Playbookの中には、1つ以上のPlayが含まれます。このトレイルマップではPlaybookには1つのPlayのみの構成となっています。

Playbookの構成と要素の関係

Ansibleの動作

 Ansibleでは、Control NodeでAnsibleコマンドを実行することでTarget Nodeへの処理を実施します。

 Ansibleには幾つか実行方法がありますが、まずはPlaybookを利用するのが良いでしょう。Control Nodeにおいて、Inventory(対象)とPlaybook(実施内容)を指定してAnsibleのコマンドを実行します。Playbookが実行されると、Playbookに記載されたそれぞれのTaskごとに、SSHやSFTPなどのプロトコルを用いてControl Node から Target Nodeに 該当のModuleをコピーして実行し、結果を収集してからModuleを削除する、という動作を実施します。(Target Nodeが一般的なLinuxの場合)

Ansibleの基本的な動作原理

Ansibleを触ってみよう

 基本動作を理解したところで早速ですがAnsibleを触ってみましょう。Ansibleはシンプルでパワフルです。Ansibleコマンドを実行したり、Playbookを書き実行してみて、Ansibleの動きを体験するのが学習の近道です。

 Ansibleの体験方法をコミュニティの皆さまが作成し共有してくれています。紹介することを快諾いただけたので、是非活用ください。

 それでは、目的に応じたAnsibleを体験する2つの方法を紹介します。完了時間は、60分から90分程度を目安にしましょう。

 体験したらハッシュタグ「#ansibletrailmap」や「#ansiblejp」をつけて、感想を発言してみましょう!ちょっとだけ良いことがあるはずです!

①とにかく、手軽に早く触ってみたい!

Katacodaを利用した最も手軽に試すことができる体験方法です。初めてplaybookを書く方はこちらから始めるのが良いでしょう。Katacodaでは、ブラウザだけでコマンドライン実行やPlaybookの体験ができます。もし始め方がわからない場合は、こちらのブログを参考にすると良いでしょう。

Katacoda
ブラウザで試す
②クラウド上や自宅マシンで試す

Ansible環境を継続して利用したい方や、操作したい機器が具体的にある方にお勧めの方法です。Ansibleのインストールやセットアップが必要となりますが、より理解を深めることができる内容になっています。AnsibleのControl NodeにはPython(2.7以上または3.5以上)が必要なので、Linux、BSDやmacOSを用意しましょう。

Python
自前の環境で試す
  • Ansible Weblog

    Ansibleに関する有益な情報を定期的にアップデートしています。
    ぜひご一読ください。

  • Ansibleユーザー会

    Ansibleユーザー会ではもくもく会など様々な会を実施しています。
    気軽に参加できますので、ぜひご参加ください。