では、今日も授業を始める。今日のテーマは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コマンドで実行