2016年9月15日木曜日

暑い夏が終わり

しばらく、このブログへの投稿もストップしていましたが、再開です。

投稿できなかったのは暑い夏を迎える時期、これまで使っていたPCの
動作が今までよりも不安定になり、このまま使える状態ではなくなりました。
修理を考えましたが、サポート期間が切れていたので修理費用も高額に
なると思い買い替えを決断。
買い替えを決めたのはいいのですが、何を買うか情報収集をイチから
始めるという状態だったので時間がかかりました。

いろいろ調べていく中で今後はもっと気をつける必要があることがわかりました。
  • 定期的な掃除
  • 空調が整った環境
「定期的な掃除」
ホコリは大敵とわかっていたつもりでしたが、掃除していたかというとNO。
よーく見ると通風口にホコリが溜まっていました。これではダメですね。
ハンドタイプの掃除機でホコリを吸い出そうとしましたが、長年溜まった
ホコリはビクともせず。

「空調が整った環境」
思い返せば、暑い夏に扇風機だけの環境でPCを動かしていたことがありました。
こちらもこれではダメですね。
適切にクーラーを使用してPCにも優しい環境を整えないといけないですね。

購入後のPCのメンテナンスを適切にしないとPCに悪影響を与えることを
再認識しました。
大きい出費ですが、勉強代込みということで買い換えたPCは 適切に
利用していこう。

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

2016年5月29日日曜日

tmpwatchは一時ファイル削除以外にも使える!?

tmpwatchコマンドは指定した時間アクセスの無いファイルや
ディレクトリを削除するコマンドです。
/tmp/に生成される一時ファイルを掃除するために利用されています。

このコマンド別に/tmp/だけを対象としているわけではなく、ディレクトリを
指定すれば任意の場所で掃除を実行してくれます。
使い道としてはWebアプリケーションで生成した一時ファイルやユーザごとに
用意したディレクトリを定期的に掃除(削除)するために利用できます。
今まで削除用のプログラムを書いたりしていましたが、このコマンドが
あれば不要ですね。
tmpwatchは指定したディレクトリ以下を再帰的に走査してくれるので
ディレクトリが何階層になっていても対処できますね。

2016年5月22日日曜日

CentOS6 で rbenv を利用して Ruby をインストールする

Serverspecで必要なRubyをCentOS6にインストールします。
CentOS6にはRubyがデフォルトでありますが、バージョンが
1.8系と古いです。現在の安定版は2.3系です。

Serverspecのセットアップ方法を調べてみてもRubyの
インストールについては省略されていることが多く、普段利用しない
言語のインストールとなると慎重になるので調べてみました。

Rubyの複数のバージョンを簡単に管理できるrbenvを利用して
Rubyをインストールしてみます。

rbenvのインストールに必要なパッケージのインストール
sudo yum groupinstall -y development
sudo yum install -y openssl-devel readline-devel zlib-devel
rbenvのインストール
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
cd ~/.rbenv && src/configure && make -C src
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
~/.rbenv/bin/rbenv init
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
type rbenv
rbenvでRubyをインストールするために必要なプラグインをインストール
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv実行例
# rbenvでインストール可能なRubyのバージョン一覧表示
rbenv install -l
# Ruby 2.3.1をインストール
rbenv install 2.3.1
# Ruby 実行バージョン(全体)を2.3.1に設定
rbenv global 2.3.1

2016年4月17日日曜日

Apache2.4 の Testing 123.. を非表示にする

Apacheをインストールして起動しているか確認のためにデフォルトで
用意されているテストページ。このテストページを表示させない方法です。

CentOS7でインストールされるバージョンはApache2.4系。
表示されるテストページは「Testing 123..」になります。
テストページが表示される設定は/etc/httpd/conf.d/welcome.confにあり
この設定ファイルを削除または設定ファイルの中身を全てコメントアウトすれば
表示されなくなりますが、ドキュメントルートにindex.htmlを設置せずhttpd.confを
何も編集しなければ、今度はインデックスページが表示されます。
デフォルトのドキュメントルートにindex.htmlを設置すれば解決します。
または普段は先のようなインデックスページを表示してディレクトリの中身を公開する
必要が無いのでOptions Indexesは無効にします。
するとForbiddenとなりエラーページが表示されます。

welcome.confの中にも書かれているのですが、ファイルを削除するとApacheが
アップグレードしたときにファイルが復活するようです。
削除ではなくリネームして空ファイルとして配置すれば問題ないかと思います。

2016年4月8日金曜日

IE11, Firefox, Chrome の JavaScript を無効にする方法

IE11、Firefox、Chrome の JavaScript を無効にする方法
ブラウザごとに手順が異なるので整理

IE11


ツール > インターネットオプションを選択し セキュリティ タブを選択
インターネットオプションでレベルのカスタマイズを選択
スクリプト の アクティブスクリプト で 無効にする を選択しOKを押す
はい を選択しセキュリティ設定を変更後、インターネットオプションのOKを押して
インターネットオプションのウィンドウを閉じる

Firefox


右上のメニューバーから開発ツールを選択
開発ツールを表示を選択
開発ツールのオプションを選択し
詳細な設定 の JavaScriptを無効 をチェックする
開発ツールを閉じるまで有効になり、開発ツールを閉じるとリセットされる

Chrome


右上のメニューバーから その他のツール > デベロッパーツールを選択し
デベロッパーツールを表示し右端の Customize and control DevTools を選択
Settings を選択し Disable JavaScript をチェックする
デベロッパーツールを閉じるまで有効になり、デベロッパーツールを閉じるとリセットされる

IE11 は JavaScript の呼び方が アクティブスクリプト となっているので探すのに戸惑うかも
IE11 で JavaScript の設定を有効に戻す場合はインターネットオプションで
レベルのカスタマイズから 有効にする を選択するか、既定のレベルを押す