Engineering Note

プログラミングなどの技術的なメモ

Raspberry PiでAnsibleをインストールする

console

今までAnsibleをあまり使ったことが無かったため、

試しにRaspberry Piを使用してpingを実行するところまでの確認をしていきたいと思います。

 

 

Ansibleとは

Ansibleとは、いわゆる構成管理ツールと呼ばれるもので、複数のサーバを一括で管理することができます。

例えばあるツールのインストール作業や設定関連を一括で実行することができます。

このような構成管理ツールで有名なのが「Puppet」や「Chef」があり、Ansibleは2012年にAnsible社によって開発されましたが、

2015年にRed Hat社が買収し現在は同社が開発を行っています。

以下が公式ドキュメントになります。

 

 

Ansibleをインストールする

 

それでは、早速Ansibleをインストールしてきます。

環境はPython2.7を使用し、依存関係のあるライブラリをインストールし、

その後にpipからAnsible本体をインストールしていきます。

 

 $ sudo apt-get -y python-pip libffi-dev libssl-dev
 $ sudo pip install ansible
 $ pip list | grep ansible
 ansible (3.3.0)
 ansible-base (2.10.9)

 

インベントリ(hostsファイル)の設定

リモートから操作対象となるホストの情報をini形式で記述していきます。

デフォルトでは/etc/ansible/hostsに記述をするようですが、ここでは別のパス上に作成し、

-iオプションで指定して実行したいと思います。

 

 [localserver]
 127.0.0.1:50000

 

[]内にセクション名を記述することでグループ化することができます。

また事前に対象ホストへssh接続できるための環境設定をしておくことが必要となります。

 

pingモジュールから疎通確認をする

Ansibleの標準モジュールを使い、上記のhostsファイルに記述したホストへpingを実行したいと思います。

なお、allを指定するとhostsファイルに記述された全てのホストが対象となり、

セクション名を指定すれば対象のセクションに所属しているホストのみにpingを実行します。

 

 $ ansible all -m ping -i path/hosts
 127.0.0.1 | SUCCESS => {
     "ansible_facts": {
         "discovered_interpreter_python": "/usr/bin/python"
     }, 
     "changed": false, 
     "ping": "pong"
 }

 

実行すると上記の結果が出力され、ここではSUCCESSとなっており

キー"ping"のバリューが"pong"となっていることがわかります。

 

最後に

今回はAnsibleのインストールとpingモジュールの実行方法について学びました。

またAnsibleの場合はyaml形式で記述したplaybookと呼ばれるものを実行することで、より複雑な作業を複数のホストに一括で実行することができます。

次回はこちらの使い方についても学んでいきたいと思います。