Ansibleのインストール

最近、厚生管理ツールを取り込もうと多めのサンプルを集めてます。
こんばんわ、Web担当神凪です。
Ansibleとは何ですか、は公式サイトにお譲りするとして、NCE標準のCentOSにおけるAnsibleのインストールをメモすることにします。

環境

  • CentOS Linux release 7.3.1611 (x86_64)

yumでのインストール

おなじみyumでインストール。

# yum -y install ansible

パッケージ ansible は利用できません。
エラー: 何もしません

インストールできません。Ansibleはepelリポジトリに含まれているソフトウェアのため、epelの追加が先になります。

# yum -y install epel-release
# yum -y install ansible

完了しました!

依存性関連のインストールのため、結構な数のソフトウェアがインストールされます。
でもほぼ一発で、バージョン管理もしてくれる利点はありますね。
その代わり、最新版インストールはソースコードから自力で。

yumでインストールしたときのAnsibleのバージョンは以下のとおりです。

# ansible --version
ansible 2.3.0.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

pipでのインストール

python のパッケージ管理である pip を利用してインストールを行ってみます

# wget https://bootstrap.pypa.io/get-pip.py
# python get-pip.py

Successfully installed pip-9.0.1 setuptools-36.0.1 wheel-0.29.0

pipは無事インストールできました。
続いてAnsibleをインストールします。

# pip install ansible

  src/MD2.c:31:20: 致命的エラー: Python.h: そのようなファイルやディレクトリはありません
   #include "Python.h"
                      ^
    コンパイルを停止しました。
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-apMu0U/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-OJRC4G-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-apMu0U/cryptography/

エラーで終了しました。Python.hがないというエラーなので、python-develをインストールします。
これはyum。でそのあとに再度Ansibleのインストールです。

# yum install python-devel
# pip install ansible

    build/temp.linux-x86_64-2.7/_openssl.c:434:30: 致命的エラー: openssl/opensslv.h: そのようなファイルやディレクトリはありません
     #include <openssl/opensslv.h>
                                  ^
    コンパイルを停止しました。
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-ZOg2BG/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-CdIwoM-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-ZOg2BG/cryptography/

今度はopensslv.hがないと。うーん・・・
python-develと同様に、openssl-develをインストール。そしてリトライです。

# yum install openssl-devel
# pip install ansible

Successfully built cryptography
Installing collected packages: cryptography, pyasn1, paramiko, pycrypto, ansible
Successfully installed ansible-2.3.1.0 cryptography-1.9 paramiko-2.1.2 pyasn1-0.2.3 pycrypto-2.6.1

今度は無事にインストールできました。
Ansibleのバージョンは

# ansible --version
ansible 2.3.1.0
  config file =
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, Nov  6 2016, 00:28:07) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

と、yumのときより若干新しいバージョンがインストールされています。
(2017年6月6日時点での状態ですので、将来バージョンが変わる可能性があります。)

マイナーバージョンの差なので機能的にはそこまで大きく気にしなくても大丈夫だとは思います。
しかしセキュリティ面からどのバージョンにするかということも考慮してどちらを入れるか決定してくださいね。

Ansibleの使い方はまた次回です。それでは。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください