必要なパッケージ
python-develをインストール
1 |
sudo yum install -y python-devel |
その他のパッケージをインストール
1 |
sudo yum install gcc libffi-devel python-devel openssl-devel |
pipと依存ライブラリをインストール
1 2 3 4 5 6 |
sudo easy_install pip ----------------------------------- ※easy_installが使えない場合は下記で対応 curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python ----------------------------------- sudo pip install PyYAML Jinja2 httplib2 |
cryptography、paramikoをインストール
1 2 3 |
sudo pip install cryptography sudo pip install paramiko sudo pip install pycrypto |
Ansibleをインストール(最新)
Ansible(最新版)をインストール
1 2 3 |
git clone git://github.com/ansible/ansible.git --recursive chmod 744 ./ansible/hacking/env-setup ./ansible/hacking/env-setup |
バージョン指定
ansibleをバージョンごとに使うために
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#binをansibleホームへコピーする cp -R ./ansible/bin $HOME #バージョン指定ファイルを作り、使いたいバージョンを記載 cut -c -5 ./ansible/VERSION > .ansible-version #ansibleディレクトリ名にバージョンを追記する mv ansible ansible-`cut -c -5 ./ansible/VERSION` #バージョン指定ファイルに記載したバージョンが使える。 ansible --version 1.5.3 ※他のバージョンが使いたければ同様にインストールして.ansible-versionで指定する。 |
おまけ:最新版でうまくインストールできない
1.5.3のときは上記手順で問題なくインストールできたが、v2.0.0以降だとうまく動かなくなっていた
1 2 3 4 5 |
ansible --version Traceback (most recent call last): File "/home/ansible/bin/ansible", line 43, in <module> import ansible.constants as C ImportError: No module named ansible.constants |
ansible.constantsというlibraryがみつからないようだ
下記のコマンドを使って『pipで入れたら良い』という情報もあったが、それだとバージョン指定して使えない。というか逃げたみたいでなんとなくイヤだ
sudo pip install ansible
公式でansible.constantsについて調べてみるとversion 2.0以降でcallbackのやり方が変わったらしい。知らんがな
http://docs.ansible.com/ansible/latest/dev_guide/developing_plugins.html
From there, override the specific methods from the CallbackBase that you want to provide a callback for. For plugins intended for use with Ansible version 2.0 and later, you should only override methods that start with v2.
要するにバージョンが上がったことによってansible.constantsが読み込めていないわけだから、
ansible.constantsが含まれているlibをpythonに設定すればよいだけではないだろうか。下に解決手順をかいてみた
Solution:v2.3.0をインストールして解決する
最新版ではなくv2.3.0を使ってみる
1 2 3 4 5 6 |
wget https://github.com/ansible/ansible/archive/v2.3.0.0-0.4.rc4.zip unzip v2.3.0.0-0.4.rc4.zip mv ansible-2.3.0.0-0.4.rc4/ ansible cut -c -5 ./ansible/VERSION > .ansible-version chmod 744 ./ansible/hacking/env-setup ./ansible/hacking/env-setup |
ここまでは前回とほぼ一緒
1 2 3 4 5 |
source ./ansible/hacking/env-setup ls -d $PWD/ansible/lib /home/ansible/ansible/lib ←PATHが出てくるが、人によって違うので注意。 出てきたPATHを↓のようにPYTHONPATHへいれてexportする export PYTHONPATH=/home/ansible/ansible/lib |
これで完成。きちんとバージョンが表示されるようになった
1 2 3 4 5 |
ansible --version ansible 2.3.0.0 config file = configured module search path = Default w/o overrides python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] |
なお、次回ログイン時のため.bash_profileにもexportしておく
1 2 |
ls -d $PWD/ansible/lib >> ~/.bash_profile sed -i "s/^\//export PYTHONPATH=\//g" .bash_profile |