




では、今日も授業を始める。今日のテーマはAnsible(アンシブル)だ。

Ansibleって何?

Ansible(アンシブル)はオープンソースの構成管理ツールだ。
構成管理ツールには、Chef(シェフ)やPuppet(パペット)などもあるが、最近はAnsibleの方が人気がある。

なんでAnsibleが人気なの!?

Ansibleは設定内容がシンプルで、管理対象のサーバーに
特別なソフトウェア(エージェント)をインストールする必要がない。

エージェントレスってことね。

うむ。ChefやPuppetは特別なソフトウェア(エージェント)をインストールする必要がある。
Ansibleが管理するサーバでPythonが利用可能でSSHできればよい。

管理対象サーバーはPythonとSSHがあればいいってことね。

Ansibleの処理はPlaybook(プレイブック)に書く。PlaybookはYAML(ヤムル)形式で記述されている。

Ansibleはどこが開発しているの!?

現在はRedHat(レッドハット)だ。2015年にRed HatがAnsible社をに買収した。

そのRedHat社も、IBM社に買収されたよね。

Ansibleの特徴として、冪等性(べきとうせい)というものがある。

べきとうせいって何!?難しい。

冪等性(べきとうせい)とは、Ansibleの同じ処理を何回実行しても、
結果は同じになるという意味だ。

は~い。1回だけ操作しても、何回も操作しても結果が変わらないっていう特性ね。

Ansibleは管理対象のサーバやネットワーク機器をインベントリ(Inventory)と
いうファイルに記述する。
例えば、以下のように記述する。
192.168.1.1
192.168.1.2
以下のようにグループ分けもできる。この例だと、webグループとdbグループができる。
[web]
192.168.1.1
192.168.1.2
[db]
192.168.1.3
192.168.1.4

Ansibleを実行するコマンドは?

Ansibleを実行するコマンドは、ansible-playbookコマンドだ。
例えば、インベントリファイル名(設定を投入したい管理対象の機器を記述したファイル)をhostsにした場合、
以下のように実行すると、管理対象機器にsshで接続しにいって、設定が投入される。
$ ansible-playbook -i hosts test.yml

YML(ヤムル)ファイルには、Ansibleのサーバに投入したい内容を記述する。
今回の例だと、test.ymlに記述することになる。

YMLファイルはどうやって記述するの?

YML(ヤムル)ファイルには、Ansibleのサーバに投入したい内容を記述する。
今回の例だと、test.yml(Playbookファイル=プレイブックファイル)に記述することになる。

例えば、何十台のサーバにソフトウェアをインストールしたり、ソフトウェアのバージョンがないかを
確認したり、設定を投入したりできる。1台ずつサーバにログインして、同じことを何十台も実施しなくても、
Ansibleで一度にできる。

管理しないといけないサーバやネットワーク機器が何十台もあった場合に、
Ansibleを使うと、とても楽になるってことね。Ansibleを使えば、自動化ができて、工数低減できるってことね。

では、今日はここまで。

は~い
1.Ansibleはオープンソースの構成管理ツール
2.Ansibleの管理対象はエージェントレス
3.管理対象にPythonとSSHがあればよい
4.Ansibleの処理はPlaybook(yml形式)に書く
5.AnsibleはRedHat(レッドハット)が開発
6.冪等性(べきとうせい)である
7.ansible-playbookコマンドで実行