LoginSignup
18
21

More than 5 years have passed since last update.

CentOS7へのAnsible導入

Last updated at Posted at 2016-08-18

インストール要件の確認

AnsibleはPython 2.6+なので要件を確認。

$ python --version
Python 2.7.5

インストール

AnsibleはEPELリポジトリからインストールするので、EPELリポジトリが未インストールの場合はEPELリポジトリをインストールする。

$ sudo yum -y install epel-release

Ansibleをインストールする。

$ sudo yum -y install ansible

Ansibleのバージョン確認する。

$ ansible --version
ansible 2.1.1.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides

あっさりインストールが完了。

Ansibleを構成する主な3要素

  • インベントリ(inventory)

インベントリは構成管理をする対象ノードへの接続情報を記載したもの。
デフォルトでは /etc/ansible/hosts だが、環境変数 ANSIBLE_HOSTS を設定したり、-i オプションでhostsファイルへのパスを指定可能です。

  • モジュール(module)

モジュールはユーザーを作成したり、ファイルをコピーしたりするもので、多くは冪等性が保たれたものとなります。基本モジュールをそのまま利用するだけで大抵の事ができます。自分でモジュールを作ることもできます。モジュールは-mオプションで個別に実行することも可能です。

  • プレイブック(playbook)

プレイブックは複数のモジュールを組み合わせて、WEBサーバを構築するとか、DBサーバを構築するとか、の手順を記述したものです。こちらも冪等性を保つように作ります。

Hello World

-mオプションでpingモジュールをlocalhostノードに対して実行します。

$ ansible -m ping localhost
実行結果
 [WARNING]: provided hosts list is empty, only localhost is available

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

インベントリの定義

インベントリが空だと警告が出てウザいので、ノードlocalhostを定義しておきます。

$ echo "localhost ansible_host=127.0.0.1 ansible_connection=local" > hosts

Ansibleは通常SSHで接続をします。
インベントリにansible_connection=localと記述するか、--connection localオプションをするとSSHを使わずにローカルで実行します。

-iオプションでインベントリファイルhostsを指定し、-mオプションでpingモジュールをlocalhostノードに対して実行します。

$ ansible -i hosts -m ping localhost
実行結果
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

はい、警告が出なくなりました。

全てのノードにpingモジュールを実行

-iオプションでインベントリとしてhostsを指定し、-mオプションでpingモジュールを、インベントリに記載の全てのノードに実行します。

$ ansible -i hosts -m ping all
実行結果
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

インベントリには1つしか記載がないので結果は変わりません。

18
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
21