LoginSignup
9
8

More than 5 years have passed since last update.

CentOS 6.4 で Ansible 1.9.1 が動くようにする

Posted at

前置き

業務上、CentOS 6.4 上にて Ansible 1.9.1 (本記事投稿時の最新の安定版) を動作させたかったのだが、色々と課題があったのでどう対応したのかを綴る。

何が問題だったのか

yum で入る Ansible のバージョンが 1.1 だった。そこで pip を使って最新版を導入しようとしたところ、依存ライブラリである pycripto2.6 がまともにインストールできずにハマった。

やったこと

概要

Ansible 1.9 のためには pycrpto2.6 等の依存ライブラリが必要で、pycrypto2.6 のためには gmp5 と python-devel が必要。

手順

まずは gmp5 を入れる

こちらに従った。

python-devel を入れる

これがないと、pycrypto2.6 が入らない (native extension のビルドに失敗する系かな)。

$ sudo yum install python-devel

pip を入れる

pip 経由でないと、Ansible とその依存ライブラリ (Python系) のインストールが面倒。

$ sudo yum install python-pip

Ansible の依存ライブラリを入れる

sudo pip installで以下を入れる。

  • paramiko
  • jinja2
  • PyYAML
  • setuptools
  • pycrypto

一部、なくてもいいかも知れない。古いバージョンが最初から入っているのは--upgradeオプションが必要。

この辺、細かい作業記録をつけなかったのでちょっと曖昧。
ただ、上記はいずれも Ansible の依存ライブラリなので、全て最新版を入れておいても支障はないだろう。

Ansible 本体を入れる

ここで漸く。

$ sudo pip install ansible

以下のコマンドでインストール状況を確認。
バージョンが 1.9.1 だったり、使うコマンドがパスの通ったところに入っていることが確認できればよい。

$ ansible --version
$ which ansible-playbook
$ which ansible-galaxy

playbook で上記を書くとこんな感じ

---
# gmp5 がないと pycrypto2.6 が入らない
- name: gmp5 のダウンロード
  get_url: >
    url=ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.bz2
    dest=/usr/local/src/gmp-5.0.5.tar.bz2

- name: gmp5 の解凍
  shell: >
    bzip2 -dc gmp-5.0.5.tar.bz2 | tar xvf -
    chdir=/usr/local/src
    creates=/usr/local/src/gmp-5.0.5

# オプションは /usr/local 配下へのインストールと C++ サポートの有効化
- name: gmp5 の configure
  command: >
    ./configure --prefix=/usr/local --enable-cxx
    chdir=/usr/local/src/gmp-5.0.5
    creates=/usr/local/src/gmp-5.0.5/Makefile

- name: gmp5 の make
  command: >
    make
    chdir=/usr/local/src/gmp-5.0.5
    creates=/usr/local/src/gmp-5.0.5/libgmpxx.la

- name: gmp5 のインストール
  command: >
    make install
    chdir=/usr/local/src/gmp-5.0.5
    creates=/usr/local/lib/libgmpxx.la

# これがないと pycrypto2.6 が入らない
- name: python-devel のインストール
  yum: >
    name=python-devel
    state=latest

# これがないと新しい ansible や pycrypto 等を入れるのが大変
- name: pip のインストール
  yum: >
    name=python-pip
    state=latest

- name: ansible に必要な python ライブラリをインストール
  pip: >
    name={{ item }}
    state=latest
  with_items:
    - paramiko
    - jinja2
    - PyYAML
    - setuptools
    - pycrypto

- name: ansible のインストール
  pip: >
    name=ansible
    version=1.9.1
9
8
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
9
8