2016年6月5日日曜日

Ansible の yum で name にドットが含まれていると応答が無くなる

Ansibleでyumモジュールを利用してパッケージをインストールすると
パッケージ名にドット「.」が含まれている場合にリモートからの応答が
無くなり、以降のタスクが実行できなくなりました。

ドットが含まれていることが原因ではなく、試用環境によるネットワークの制限が
影響している可能性が高いことがわかりました。
問題の切り分けがうまくできなかったと反省です。

yumモジュールでインストールするパッケージはwith_itemsで指定しており
例えば32bit版を指定するための .i686 などドット「.」を含むパッケージが
2つ続けてあると発生しました。

対応としてはドット「.」を含むパッケージをダブルクォーテーション「"」で
囲むことでyumモジュールでのインストールは成功しました。

これまでドット「.」を含むパッケージは1つありましたが、問題は
発生していませんでした。
今回追加したパッケージ名にはドット「.」が含まれており、2つ続く
書き方にしたところ応答が無くなったのです。
# 応答が無くなる書き方
  - xxx.i686
  - yyy.zzz
# 動作した書き方
  - "xxx.i686"
  - "yyy.zzz"
2回続けてリモートからの応答がなくなったので直接リモートにログインし
ログを確認したところ、yum.logには追加したパッケージのインストールの
履歴はありましたが、それ以降インストールの履歴はありませんでした。
topでコマンドの実行を監視したところ確かにyumが実行されていることは
確認できましたが、何故かyum.logに残っている追加したパッケージ以降の
yumの実行を確認することができませんでした。

何かしらエラーが発生したのでは?と色んなログを見てみましたが原因に
なるようなログは見つからず。
しかもAnsibleがリモートで実行もされていませんでした。
エラーとして出力されていれば、解決策を探すこともできたのですが
何も出力されていなかったので、今回対応した方法が付け焼刃のような
感じで不安が残ります。

Ansibleのバージョン:1.9

2016年6月2日木曜日

PhantomJSビルドに2時間要した。

PhantomJSビルドに2時間要した。
バイナリが提供されているならダウンロードを利用したほうが良いかも。
よく見たらhttp://phantomjs.org/build.htmlに記載されている
ハードウェア要件を満たしていなかった。
CPUコア1つにメモリ1Gじゃ全然足りていない。
前は何かのライブラリの影響でLinux環境はソースからビルドする
必要があったけど、2016/5/29時点で確認するかぎりではバイナリが
ダウンロードできますね。

CPU情報やメモリなどを確認するために実行したコマンド
# CPU情報を表示する
cat /proc/cpuinfo
# メモリ情報を表示する
cat /proc/meminfo
# メモリの使用状況を確認
# -h つけることで自動で単位(GBやMBなど)を調整して表示
free -h
# BIOS情報を表示する
dmidecode