Ubuntu 12.04 に Ansible をインストールする手順

Ubuntu 12.04 に構成管理ツールである Ansible (http://www.ansible.com/home) をインストールし、疎通確認するまでの手順メモ。公式ドキュメント (http://docs.ansible.com/intro_installation.html#latest-releases-via-apt-ubuntu) を主に参考としている。

Ansible をインストールするマシン (管理サーバと呼ぶ) 以外に別途、管理対象マシン (仮想マシンでも可) を用意しておくこと。

  • Ubuntu Server 12.04.5 LTS 64bit
  • Ansible 1.7.2

事前準備

まず管理サーバ (Control node) にて、python-software-properties パッケージがインストールされているか確認。

$ dpkg -l | grep python-software-properties

何も表示されない場合、以下の通りインストール。

$ sudo apt-get install python-software-properties
(前略)
The following NEW packages will be installed:
  python-pycurl python-software-properties unattended-upgrades
0 upgraded, 3 newly installed, 0 to remove and 13 not upgraded.
(後略)

もう一度 dpkg コマンドを実行し、インストールされたことを確認。

$ dpkg -l | grep python-software-properties
ii  python-software-properties       0.82.7.7                          manage the repositories that you install software from

ついでに依存パッケージも確認。おまけなので、実行しなくてもよい。

$ apt-cache depends python-software-properties
python-software-properties
  Depends: python2.7
  Depends: python
  Depends: python
  Depends: python-apt
  Depends: lsb-release
  Depends: python-gnupginterface
  Depends: unattended-upgrades
  Depends: iso-codes
  Depends: python-pycurl

Ansible のインストール

管理サーバに PPA (Personal Package Archive) リポジトリサイトを追加し Ansible をインストールする。

$ sudo apt-add-repository ppa:ansible/ansible
(Press [Enter] to continue ... と聞かれたら enter 押下)
$ sudo apt-get update
$ sudo apt-get install ansible
(前略)
The following NEW packages will be installed:
  ansible python-jinja2 python-markupsafe python-paramiko python-support python-yaml sshpass
The following packages will be upgraded:
  python-crypto
1 upgraded, 7 newly installed, 0 to remove and 13 not upgraded.
(後略)

インストール後の確認。

$ ansible --version
ansible 1.7.2
$ dpkg -l | grep ansible
ii  ansible                          1.7.2-1ppa~precise                A radically simple IT automation platform
$ apt-cache depends ansible
ansible
  Depends: python
  Depends: python-support
  Depends: python-jinja2
  Depends: python-yaml
  Depends: python-paramiko
  Depends: python-httplib2
  Depends: python-crypto
  Depends: sshpass

疎通確認

以下、管理サーバにて実施。カレントディレクトリにて hosts という名前のファイル (インベントリファイルと呼ぶ。Ansible はこのファイルに記載したマシンにしかアクセスできない) を作成する。

$ echo <管理対象マシンのIPアドレス> > hosts && cat ./hosts

上記で指定した <管理対象マシンのIPアドレス> が出力されたらOK。

次に、Ansible を使って ping 疎通してみる。ここでは SSH パスワード認証するためのオプション -k を指定している。

$ ansible -i ./hosts <管理対象マシンのIPアドレス> -u <管理対象マシンのユーザ> -k -m ping
SSH password:
(<管理対象マシンのユーザ> のパスワードを入力し、enter 押下)
<管理対象マシンのIPアドレス> | success >> {
    "changed": false,
    "ping": "pong"
}

上記の様な応答が返ってくればOK。うまくいかない場合は -vvvv オプションを付けて再度実行すると、原因が何か分かるかもしれない。

yktmnb について

IT土方兼社畜を生業としています。
入社以来 Java を用いた社内向け Web アプリの開発に携わっていました。
最近は IaaS 関連の仕事をしています。
個人的に Android アプリ開発をしたり、ゆるべんという勉強会 (http://wooven.org/) をのんびりとやってます。

カテゴリー: Ansible, Ubuntu パーマリンク