Moments of Clarity

しばらく前にまとめようと思っていたのですが,なんか綺麗にまとまらなかったので,とりあえず分.

CentOS硬ぇという話。
但し、以下は開発サーバだから場当たり的に対処して可能だっただけで、ちゃんとしたサーバ構築でやったらマズいことも多々含まれている。
RHEL互換であるため触る機会は多い筈なんだけど、多分バージョン7になってさらに強固になったんだと思う。
デフォルトインストールだとSE Linuxが有効。まずこれがめんどくさい。

途中というか、必要なAPやミドルウェアを入れる最後の最後になってようやく無効にしようとした次第。これは設定ファイルを書き換えて対応可能。
とりあえず確認.

# getenforce
Enforcing

これはSE Linuxが有効.
/etc/selinux/config
を書き換えて対応.

# SELINUX=enforcing
SELINUX=disabled

てな感じか.
一応設定ファイル自体のバックアップはとっておいた方が良いでしょう.

そしてIPTableというか、GUIで言うところのファイアウォールがこれまた鬱陶しい。
多分CUIオンリーで動かしていたら投げていたかもしれない。まぁ、投げてはいられない状況ではあったけど。
これは必要なAPに対してPublicタブでどんどんチェックつけるくらいか。
無効化が許されるならそうした方がいいと思う.

# systemctl stop firewalld
# systemctl disable firewalld

一つ目のコマンドでファイアウォール停止.次で無効化ね.
今回はちょっと頑張っていたんだけど,まぁ,いいやということで無効化した.
実機の設定はプロがやってくれるんだし.
尚,今回の案件は外部接続しないので,プロの設定でもファアウォールを落としておりました・・・

そしてLVM。
これはCentOSに限った話ではないと思うけど、これのボリューム拡張が面倒くさい。いや,本当はいろいろ楽になるための仕組みだとは知ってるけど,後述の通りGUIツールで一発対応というわけにはいかないので.
仮想マシンとしてVirtualBoxを使っていて、それの拡張の手順。
つーか、8GB程度もあれば十分だと思っていたけど、GUI一式入れちゃったからか容量カツカツ。
単純にGpartedで拡張できるかと思ったんだけど、そうじゃないんだね。

インストールパス\VBoxManage modifyhd [対象仮想ディスク].vdi –resize 20480

の例で20GBまで拡張.
次にGpartedの起動イメージで起動.
未割り当て分をext4でパーティション作成して終了.
次にCentOSで起動.
コマンドを羅列するとこんな感じ.

# fdisk -l
# pvcreate /dev/sda3
# vgdisplay
# vgextend VolGroup /dev/sda3
# lvextend -l +100%FREE /dev/VolGroup/lv_root
# resize2fs /dev/VolGroup/lv_root

1.まずパーティション確認して,
2.パーティションセットを認識させて
3. ヴォリュームグループ名の確認.
4. 確認したヴォリュームグループ名に対して追加,
5. 拡張
6. 拡張
という手順です.

とりあえずこんなとこで.

Moments of Clarity

The Downward Spiral

最近知った言葉とか.

BrainFuck
難読系のコンピュータ言語.確かにサンプルソースなんかを見るとびっくりする.
最小フットプリントのコンパイラを目指したものだそうな.
余裕で8インチフロッピーに収まるサイズ.
当然というかなんというかチューリング完全.

BlueOnyx
そういえばSunからそんなアプライアンスが出てたなぁ,というインターネットサーバ丸ごとパッケージ.
Webベースの管理画面なんかもある.
元になるCentOSがx86-64しかリリースしていないのでしょうがないがARM版もあれば面白いかもしれない,と思ったけど,ARM系はあり余るリソースを使ってのフルパッケージングではなく,省スペース省リソースの機能限定型が好まれる傾向があるからあんまり意味ないか.

Intel xtu
特に最近というわけでもないけど.
Intel謹製のチューニングツール.
パフォーマンスの限界が低いAtomtブレットなんかで使うといいかもしれない.

rclone
存在は知っていたが,使っていなかった.
今回のAmazon Cloud Driveの.com側での無制限プランがなくなったため,.jpのACDを申し込んで,ちょっと延命を図ってみることにした.
現在のところ登録方法に問題があり,こんな感じで回避しているため再びBANの可能性もなくはない.
また,ACD用のオプションをつけないと,ある程度の大きさのファイルのコピーが正常に動作しないので,そこらへんも確認のこと.

ザ・ダウンワード・スパイラル+13(デラックス・エディション)

Relayer

EOFというか、ヒアドキュメント。ちょっとハマったので記述。

Unix シェルを書いている人には当たり前なんだろうけど,ヒアドキュメント内では,というかヒアドキュメントがそういうものなんだけど,書いた内容がそのままコマンドに渡される.
よって,普通にコードを書くようにインデントをつけるとエラーが返ってくる.
なんか気持ち悪いんだけど,そもそもがそういう仕様のモノだし.
あと,こういうのが気になるほどの内容であればCなりJavaなりでプログラム化しちゃえよ,と個人的には思う.

Bridge Across Forever

たまにはエンジニアらしいことを.
てか,このトシでコード書く立場ってあんまりないと思うけど.

単発で動作させると問題のないJavaでコーディングしたバッチ処理.
HP-UX(これ旧環境)上で5多重のジョブとして動作させても問題はでなかったらしい.
# この時は立ち会っていませんでした.
しかし,新環境であるRHEL(厳密はは違うが,まぁ,同じだ)で10多重で動作させるとOracleへのコネクションタイムアウトが発生するという事象.
また,設計の段階から1本の処理から複数のコネクションを取得可能なような方式にはしていないので,これが悪さをしているのか,とか思ったけど,ジョブ毎にインスタンスが違うので,リソースの取り合いとかっつーわけでもない.

結論としては,Java1.5から発生してるんだか,表面化したバグらしいんだけど,バグではないよ,という結論になっているワケのわからん状態.
とりあえず回避方法としては実行時に以下のオプションを指定しろということらしい.

-Djava.security.egd=file:/dev/./urandom

まぁ,環境変数に指定する方が現実的だろう.
今回の仕事ではOracleへのアクセスがほとんどないので,上記の対応となった.
また,なぜか”dev/urandom”ではダメなので注意のこと.
一応Windows上では発生しないことになっていて,Linux上で発生する事象らしい.
上記の内容をそのまま当てはめるとHP-UXみたいな,言ってみればネイティブなUnix環境でも発生しないのかもしれない.
以下のエントリーで本事象の解決となったので,リンクを提示しておく.
LinuxサーバからOracle JDBC接続するとEnd of TNS data channelやConnection resetが発生する場合の対処法

Kallocain

HP N54L到着.
N54Lはサーバとしての型番でもありCPUの型番でもあり.
廉価な石だから今更ながら32bitではなかろうか,とか思ってナめてました.すいません.< Turion II

NAS4Freeをインストール.上述の通り64bit版.
せっかくなので,USBメモリは本体内にあるポートへ挿すことにします.
また,FreeNASでも良かったのだけど,smb.confのところでちょっとおかしなことになったので,わざわざインストールの手間がかかるNAS4Freeを選択.
フォーマットやファイルシステムがなんかピンときていないのだけど,とりあえず動いているのでヨシとします.
なお,ZFSは未使用.
この手のディストリ使う意味がないような気もしますが,単にバックアップというか二重化のためのストレージサーバなので,まぁ,いいでしょう.メモリも足りないし.

Waiting In The Wings

Virtual Boxで64bit OSが起動できなくなった時の対処.
設定>一般にて(RHLEなら)RedHat(64bit)を選択すれば立ち上がる.
BIOSにて仮想化の設定がDisableになっている場合は,(64bit)がプルダウンの一覧に表示されない.
この場合はBIOSのCPUのメニューから該当項目をEnableとしてから,上記対応を行う.

Ink Complete

UbuntuでVirtualbox.
一時はどうなるかと思ったのだけど,コマンドラインからGUIで行う以上の作業が可能なのでナンとかなって,ほっとしている次第.
コマンドラインについての詳細はとにかく総本山に.
国内というか日本語でもいろいろ解説してくれているところが多々あるのでありがたく拝聴することにした.

とりあえず今回使ったコマンド群の一例を挙げておく.

$ VBoxManage list vms # 登録済仮想マシンの一覧
$ VBoxManage showvminfo “仮想マシン名” # 仮想マシンの詳細情報
$ VBoxManage startvm “仮想マシン名” -type vrdp #仮想マシンの起動(他にもオプションあるんだけど)
$ VBoxManage controlvm “仮想マシン名” acpipowerbutton #仮想マシンのACPIシャットダウン
$ VBoxManage modifyvm “仮想マシン名” –natpf1 delete “登録ルール名” # NAT設定削除
$ VBoxManage modifyvm “仮想マシン名” –natpf1 “登録ルール名,tcp,,10222,,22” # NAT設定追加(10222をsshポートへ)
$ VBoxManage registervm hogehoge.vbox # 仮想マシンの登録

今回は上記の通りNATの設定を少しやっていた.

問題はホスト側OSの,というか,Ubuntuの仕様にひっかかってしまった.
UbuntuではWell-Knownポートは特権ポートとして扱われ,特権プロセスでないとアクセスできない.
そこにゲストOSのポートをマップしたい場合どうするのか,ということ.
ufwでマッピングするとか,ケーパビリティを付与するか,いっそのことAPをrootで動かしてしまうか,というのが容易な解決策かと思われる.

Tomahawk

Solaris10環境を構築し直し.
ハードウェアの相性に左右されない仮想環境(VirtualBox)で行うのだ.

仮想マシン
Solaris11であれば簡単にイメージが見つかるのだけど,10の場合は仕方ないので新規インストールとした.

MySQL
5.0系.
Solaris10用のpkgファイルがあるので,これをインストール.
事前にmysql:mysqlを作成しておくと捗る.

Tomcat
5.5系.
これは展開して妥当な場所に配置.

Java
これはそのまま.

仮想マシンなので
ポートフォワードの設定をしておく.
もうちょっと手前から書いておくと,VirtualBoxのネットワークカードの設定をNATにして,これにポートフォワードの設定をする.
いつもならお手軽なブリッジアダプタを選択するのだけど,今回は都合が悪いので,こういう手段をとる.
ポートフォワードの設定ダイアログ上において,ホスト/ゲストともにIPアドレスは空欄のままでよい.
あとは必要なポートを適宜割り振ってやればよい.
いちおう書いておくと,こういう使い方をする場合はゲストOSのネットワーク設定を同一セグメント内に置くような設定をしておいてはいけない.
よく考えれば当たり前のことだが,ブリッジアダプタで環境を作成した後にNATに変更して設定,とかやるとうっかりハマったりする場所ではあると思う.

# sys-unconfig

とやるとネットワーク周りを再設定可能なので,必要な場合はこれを実行する.