火曜日, 1月 24, 2017

macを開発環境として整えたい part II(Virtualboxをwebから触る)

表題に書いたことをやるよりこっちの方が良さそうだ。




つきましては、改め、上記の通り、vagrantで環境を整えて、docker + 作業用VMを構築していきたいと思います。(やりたいことはvagrantでできたはず。)

金曜日, 1月 06, 2017

macを開発環境として整えたい part I(OpenVPN)

OpenVPN環境を整えるときに、以下の3つの選択肢がありました。


  • sierra上にOpenVPN環境を構築する。
  • VM上に普通にOpenVPN環境を構築する。
  • docker上にOpenVPN環境を構築する。

ネットワーク周りのロスを少なくしたかったので、sierra上にOpenVPNを構築したかったのですが、残念ながらtuntapがmacos sierraをサポートしていない?みたいです。

なぜかインストールしたら画面が暗転してずっと元に戻らなかったのでやめました。

次に、VM上にOpenVPN環境を構築ですが、
これもこれで後生大事にOpenVPNのVMを作成してやるのもやだなーとかめんどくさがってました。(おそらくこれが一番いいと思う選択肢)

最後にdockerでcontainer化できたらほかのOSに移動したとしてもすぐに移動できて便利だと思って探しておりました。


最終的にとったのは、
  • docker上にOpenVPN環境を構築する。
の方法なんですが

以下のコンテイメージからこんな風に設定・スクリプトを書いて運用するようにしました。


こんな感じでdocker-composeとそれをたたくスクリプトを作成し、それで運用するように。
 これならあまり手間暇かけなくてもOpenVPNを始められますね。(VM上で直配置のほうが早そうだけど。)
ファイルの内訳は、
initialze.sh 初期設定用スクリプト
generate-client.sh クライアントファイル指定で、設定ファイルを吐き出したり、DBアップデートしたり
start-server.sh OpenVPNサーバーの停止・起動

これでお手軽OpenVPNですね。


おやすみなさい。

木曜日, 1月 05, 2017

macを開発環境として整えたい

もうMacでいいやってなったのだけど、以下のものが必要と考える。

  • VPN
  • サービス起動方法
  • virtualboxをwebから触る

OpenVPN

他のVPN方式でもいいのだけど、かって知ったる証明書付きで認証を行ってくれるOpenVPN。
なぜこれが必要なのかというと
開発環境の使い方として、
  • リモートからRDPしたい。
  • リモートからVirtualBoxに触りたい。
この時に、各々のサービスで認証をかけるの面倒ですし、何よりできたかな?できなかったかな?とかするのが大変。 なんで一括自分のネットワークに入ってできるようにOpenVPN

サービス起動方法

launchctlで自分のユーザでログインせずとも(SSH除く)サービスを起動する方法がほしい。
それができればマシン立ち上がったら
Virtualbox上に配置されたVMを起動して
dockerのこのコンテナを起動させて
みたいなことができて、普通のLinuxのSysV initやsystemdみたいなことがしたいのです。

きっと、launchctlでもできるんでしょうけどその記述方法がまだ分かっておりません。

Virtualboxをwebから触る

これは何を言ってるのかというと、
phpVirtualBoxをOSX上に配置してブラウザから触ればらくできるのかな?という思いからです。

まずはいったんこの環境を整えていきたいと思います。
面倒なので、vagrantでいいや!ってことになりました。(環境の構成についてもスクリプト化できるのでこっちのほうがいい)

木曜日, 12月 29, 2016

やっぱり、macos sierraで行こう

えっと、mac=>ubuntuにしてやろうといきまいていましたが、
クライアント開発環境としてはmacが最適解なんじゃないの?

また、apple純正じゃないとだめってなったらあれなんじゃないの?って本日出社する前に思い立ちまして、


納会終わって帰ってきたら、こんなことをしておりました。

別にubuntuにするのが難しいとかではないです。
先人の知恵を探してみると色々出てきます。

https://moneyforward.com/engineers_blog/2016/02/22/ubuntu/

少し風変りだけど難しくてできねーって問題ではないのです。

ってなわけで、開発環境はMacがつぶれるまでMacで行きたいなと。(つぶれたらデータ移設できないけども。)

まずは、環境にdocker用のVmとvagrantをのっけてVMとdockerを簡易に作れるようにしちゃいます。

火曜日, 12月 20, 2016

まずは、ubuntuマシンにしてやろうか!?(part II)

起きたら終わっていると思っていたHFS+ => XFSへのデータ移動ですが、

困ったことにVirtualbox越しに、ホストMacBookから参照していると、エラーが頻発するのです。

色々試したけど、これって前にも経験しているので、早々に諦めて

この方式に、するしかないかぁ。。。。
Knoppixで利用するときに注意しないといけないことが。。。
起動したあと放っておいたら、スクリーンセーバーで止まってしまうことがあるみたい。
スクリーンセーバーから戻ろうとしてキーを入力したらそこでずっと画面が止まってしまう。。。

起動するときにスクリーンセーバーはoffにしておかないと、画面がうっとおしいことこの上ない。

んで、これを1日続けてみましたが、なぜかOSが固まってる。。。。
knoppixをサーバーとして使うのはあまりいい案じゃないかもしれない。

仕方が、、、ない。

安心安全のubuntuさん。
可愛いよ。

転送終了後もdockerホストとして生き延びてくれればいいわけでさ。

そんなこんなでデータ転送は上記の構成で二日目突入。
ubuntuマシンはUSB2.0だからかなり時間かかる。

土曜日, 12月 17, 2016

まずは、ubuntuマシンにしてやろうか!?(part I)

さて、社内で発表するときに自分のマシンを利用したのです。

朝出発前にマシンを見ると、なんと停止しているではありませんか。
正確には、マシンは起動していますが、あれです。 ログイン画面です。

あぁーあぁー堪らない。

そんなわけで、ubuntuを入れることを試みましょう。
この利用しているマシンはこんな状態だからね。サーバーマシンにしちゃってもいいでしょう。

移行はこんな感じで1台でやります。

USB HDD二つで一つは、macへもう一つは、VMへ

そうすれば、各々のOSで普通にディスクが見れる状態になると。
そんなわけで 移行作業していきます。

なお、上記のような図を作るために一瞬Inkscape使おうとか思いましたが。
便利なサイトを見つけました。
https://www.draw.io/
すごい使いやすいです。 visioみたい(テンプレートやら、細かさは比じゃないんだろうけど、絵を描くだけだったらこっちの方がいい)

木曜日, 6月 16, 2016

doocker-machine bridge-network && HDDマウント

bridgenetwork周りについて

windows上でdocker動かすときって、以下の選択肢があると思ってて、

  • docker-machineとかでcreate(旧boot2docker(core linux?だっけ中身)) docker-machine create --driver=virtualbox
  • 使い慣れたVM状にdocker環境を構築、docker-machine create --driver=(不明)
私は汎用的に使える環境であることが好きだなぁ。と思ったので、docker-machine側でVMを用意する方式をとっていました。
が、この方式でbridge-networkを構築すると証明書が違う!という理由でdocker-machine env接続情報が取得できず、エラーで困ったことになることが多い。

理由としては、NIC起動順番が異なってしまて、docker-machine env でうまく接続できていないっぽい。
いろいろ不便だったので試行錯誤してみた(ホストVMのIPは環境切り替える際に不便なのでやりたくない)

結果として、以下の感じのコマンドでbridge-networkを追加するだけ。。。
GUI側でやってるのと何ら変わらないのだけど、なんでこっちだとうまくいくんでしょうかね。


vboxmanage  modifyvm default --nic3 bridged
vboxmanage modifyvm default --bridgeadapter3 "en3"
vboxmanage modifyvm dev --nic3 bridged
vboxmanage modifyvm dev --bridgeadapter3 "en3"

HDDマウントについて

あと、以下のような形でマウントすると、ホストマシンのサイズ依存となってしまう。
vboxmanage sharedfolder add 'dev'      -automount -name 'Volumes'  -hostpath '/Volumes/';
sudo vi /var/lib/boot2docker/bootlocal.sh
sudo mkdir -p /Volumes;
sudo mount -t vboxsf Volumes  /Volumes/  -o uid=1000,gid=100,iocharset=utf8;

なので、この場合は、一つずつ、ディスクをマウントさせましょう。
vboxmanage sharedfolder add 'default'  -automount -name '3tv1'  -hostpath '/Volumes/3tv1';
sudo vi /var/lib/boot2docker/bootlocal.sh
sudo mkdir -p /Volumes/3tv1;
sudo mount -t vboxsf 3tv1  /Volumes/3tv1  -o uid=1000,gid=100,iocharset=utf8;

samba経由でwindows backupするときに気づいた。
/Volumesだけだと、ホストVMの/ディスクのみのサイズしか見ないので、結果的にトンでもねーことになっちまいます。

電車、、、間違えて遅刻しそうかひやひやしながら書いています。

水曜日, 6月 01, 2016

Jenkinsで何かする事になった。

テキストベースでまとまったから、一旦公開。

会社の社員総会で話をすることになった。

当初は仮想技術について準仮想化、コンテナ技術で話をしようとしていた。
けども、どっちも説明すると「こいつ一体何が言いたいんだ。」ってことになるので、コンテナ技術の実践をやろうと思ったのだけど。

まだ、プロジェクトで利用することはなさそう。(まぁ、何故かいつも唐突に決まることが多いのだけど)
そうなると興味も半減しますね。何かいい案はありませんか?と。

「CIなら興味があるんじゃないか?」ってことで、じゃあ、テーマ変更と相成りました。

アプリ開発から離れて久しくすでにやりかたなんて忘れた。
しかしながら、今回はデプロイにフォーカスを絞ったほうがいいと判断しアプリのデプロイつまり、APKを作ったりすることだね!

Eclipseでやる方法はすごい多いけど、AndroidStudioで作ったのってまだあまり見ないな。ってことで、ブログに書き留めつつ、AndroidStudioのプロジェクトをJenkinsでAPK作成するところまでをやろうかと。

主だった話は、JenkinsとGradleプロジェクトについての話になるんだろうけどね。

サンプルプロジェクトに独自ライブラリ、Google純正ライブラリとかを使ったものをテスト、APK作成までがきっとゴールになるんだろうな。

環境としては、以下を想定
Docker + Jenkins + Java 7(Oracle) + Ruby製のGCM通知 + コンテナ用リポジトリ
あっ。Ruby製のGCM通知プログラムもテスト書いておかなきゃならんのか。(卵が先か鶏が先か。)

JenkinsでサンプルプルプロジェクトAPK作成まで頑張る。
Jenkinsで、テストも自動化まで頑張る。
そのあとサンプルプロジェクトにライブラリを追加して、簡易的なものを実装、テストも書いて、正しく動くまで頑張る。
GCM通知プログラムとして申請を出す。
Ruby製のGCM通知プログラムを書く。
Ruby製のGCM通知プログラムのテストも自動化する。
コンテナのリポジトリは、、、、公開しないと会社のマシンでひいひいいわないといけないから公開。

んー、発表が6月の2x日だって話だったから、6日か。
ツーリングにも行きたいので、3日でまとめられる内容ということを考えると。
Ruby製のGCM通知を削ろう。
Docker + Jenkins + Java 7(Oracle) + コンテナ用リポジトリ

スマホでググったら普通にやっている人見つけたし。
http://qiita.com/usamao/items/93535df778916ee70ad8

少し余裕過ぎるな。面白い要素を加えねば

最悪会社の資産乗っていないし、外部公開で自宅に立てればいいし。

こんあところか。全然新しくもないな。。。まぁ、頑張ろっと。

水曜日, 4月 27, 2016

cakephpでハマった話

他では支えていたライブラリがConsole/Commandで使えなかった際に、検証した結果を記録。

環境:
cakephp:https://github.com/cakephp/cakephp/releases/tag/2.4.9
docker環境:http://qiita.com/naga3/items/d1a6e8bbd0799159042e
※全部信頼してやらないでよ? あなたの環境のことは知らないから。

docker-compose build
docker-compose up
docker-compose.ymlでversion指定をするとおこになったので、docker-composeだけ最新へ

動作確認しているとそぐわない箇所があったので、その辺は適宜修正。

  1. php7だったり=>5系かな?
  2. cakephpだとmod_rewrite必要だったり
  3. link必要じゃね?だったり(バージョンでいらないかも?)
  4. ファイルパーミッショん周りうまくいってないね。しゃーないね。 Dockerfileに書いちゃおうね。だったり。


検証用コードを書く
app/Console/Command/LibTestShell.php
app/Controller/TestLibController.php
app/Lib/TestLib.php
app/Vendor(これ以下は名前がはずかしすぎるので割愛)

ハマった箇所については、実際には、include_onceでこけていた。
コンソールだけそれが起こるという困った事象だった。

App::importでディレクトリ差異があってうごかないのかなーとか思ったのだけど、(Commandの方が一つディレクトリが深い)
https://github.com/tluna/testcakephp2.4

んーー。。謎は深まるばかり。 mjdksg!!!

夜も遅いのでそろそろ寝ます。。。



日曜日, 10月 25, 2015

firefoxでjavaを有効化

いつも探してしまうので、記載。

oracle javaのインストール方法については、割愛。
fedoraとかだったら、rpmでインストールするか、yum repositoryを追加する方法でいいと思います。

次。

https://java.com/ja/download/help/linux_install.xml

こちらに記載されている、以下が要点
有効化と構成
FirefoxまたはMozilla
Java Pluginを構成するには、次の手順に従います。

    Firefoxブラウザを起動している場合は、終了します。
    以前のJava Pluginインストールをアンインストールします。
    Java Pluginは一度に1つのみ使用できます。別のプラグイン(つまり、別のバージョンのプラグイン)を使用する場合は、他のバージョンへのシンボリック・リンクを削除し、新しいプラグインへのシンボリック・リンクを新たに作成します。
    ブラウザのプラグイン・ディレクトリにlibnpjp2.soファイルへのシンボリック・リンクを作成します
        Firefoxインストール・ディレクトリの下のpluginsサブディレクトリに移動します
        cd <Firefoxインストール・ディレクトリ>/plugins
        プラグイン・ディレクトリがない場合は作成します。
        シンボリック・リンクを作成します
        ln -s <Javaインストール・ディレクトリ>/lib/i386/libnpjp2.so

    注意: Javaのバージョンをアップグレードする場合は、新しいシンボリック・リンクを作成する前に、古いシンボリック・リンクを削除して、ダウンロードした最新のJavaを有効にする必要があります。

    古いシンボリック・リンクを削除する手順は、次のとおりです。
    次のコマンドを入力します。cd <Firefoxインストール・ディレクトリ>/plugins
    rm libjavaplugin_oji.so

http://fedoraforum.org/forum/showthread.php?t=292632
ん。。。うまくいかない。

とおもったら、firefoxも64bit のフォルダありました。
なので、
 sudo alternatives --install /usr/lib64/mozilla/plugins/libjavaplugin.so libjavaplugin.so /usr/java/default/lib/amd64/libnpjp2.so 20000

これで動くかなと。

んで、macやwinみたいにjavaコントロールパネルが表に出ているわけではないはずなので、
https://www.java.com/ja/download/help/enable_console_linux.xml

これでjavaコントロールパネルを開いて、appletで自己証明書まわりで怒られたら許可して実行可能なようにします。(これは非推奨ですが、しかたがない時はこれでやるしかない。)

水曜日, 10月 21, 2015

仕事について考える記事

http://www.atmarkit.co.jp/ait/articles/1510/21/news016.html

こういう記事を見かけて仕事について考えたのだけど。
P.S. 記事が書きかけの状態でiPadから再書き込みされちゃったので、もういいや!と思ってほぼ加筆修正なしで投稿

読んで感じたのは、もっともっと若い年でも考えて、納得して働いて欲しい。なと。
いえ、若いとか関係ないですね。歳食ってても一緒な気がします。
変に自分探しするよりはこっちの方が健全で、対案がない限り(どうしてもこれやりてぇんだ!)はこっちの道がいいと思います。
私の過去の上司で、好きなことを仕事にするんじゃない。仕事として任されたことを好きになるんだ。と
乱暴すぎて、両手を挙げて賛成はできかねますが、シンプルで一理ある言葉だなと未だに覚えています。

上に載せた記事は最終的に仕事を好きになりましょうというゴールが設定されています。
良いポイントを見て愛しましょうってはなしですよね。
手法としては理解できますが、私は気持ちの面では余り理解できない部分が多いです。
けど、気持ちはわからないので、共感出来ないってことで。

私は、記事の中のやりがいを感じていないの逆で、別ベクトルでメーターが吹っ切れてしまって、結果が余りついてきていない事への苛立ちが凄いです。
だから、向いている人には仕事には多大な時間を投じるのだから、好きになるか納得して欲しい。

いや、正直に言うとやっぱりそれ羨ましい悩みなんです。
愛してやまない「関心」があって、私はエンジニアであろうとしている。
そうじゃない人でも、結果は出している、その人はきっと私より楽しい生き方をできるはずだ。
皆が自分にとって良い生き方でありますように。 楽しい人生でありますように。

「幸せに生きるために、やりたいことがないのに本当にやりたい事をやって生きよう」って考え好きじゃないです。
それなら、もっとわかりやすい結果を加速させるための事を考え、積み重ねるべきかなぁと思います。

fedora22 de atom

fedora 22 de atom

linuxbrewでnpm nodeインストール

ここを元にインストール
http://d.hatena.ne.jp/dai_yamashita/20140510/1399739951

以下かえたところ。
ただし、ここに関してはlinuxbrewでインストールしたので不要。
dnf -y install libgnome-keyring-devel

>2. korora linuxは標準でgoogle chrome入れれるんですが yumのrepoが必要です。
chromeのインストールについてもrpmでいいんじゃないかな?

>npm --version
これfedora純正のnpmだとダメで盛大にnpmのなんとかmodule.jsでこけました。 そこで、linuxbrewでnpm nodeをインストールしました。

gypをremoveかけた瞬間にgcc-c++とかも削除されちゃったっぽい。
ので、
dnf install gcc-c++
そして、homebrewでgccやらも入れますか。
brew reinstall xz
brew install gcc ※これはすごい時間かかるぞ!

fmfm、gypってビルドのオートメーションツールなのか。これを除去した理由がよくわからない。
もしダメだったら、入れてみるようにしましょうか。
brew install pythonした後かな。

おふろあがってもgccのビルド終了しないですね。

というか、全てのCPU天井まで使い切っているのだけど、これってこういうもんだっけかな。。。生まれてこのかた、gcc自体をビルドすることがあったか?という疑問があるな。
これ卵が先か、鶏が先かの話に出てきてもいいくらいどっちが先なの?ってやつですし。
基本バイナリで配布しているのを使っているし。

結果は出ませんでしたが、solarisと別件で格闘する必要があるので、一旦これは放置。。。
別になくても死ぬわけではないですし。

また続き書きますね。

眠気なまこ - どうすれば解像度を適切に設定できるか?

今日は夜勤明けで夜までは起きておかんといかん。
そんなわけで今まで解決できなかった問題を解決しましょうと。

気になった問題をいろいろ書いて列挙したうちのひとつ

結論:LXDEだとうまくいった。デスクトップ周りを追いたいとかそういう人じゃないので、これで満足してこれは解決したことにしちゃう。

「xrdpで適切な解像度を設定できるようにするためにはどうすれば?」

と、その問題を解決しようと調べ物をしていると、寝てしまいました。

残念無念ですね。
いざ調べ物を続行しようとしてみると、CentOS7が乗っかっているサーバーの音がうるさい。気になる。 もうだめぽ。
仕方がないので、E420にFedora Serverが入っているので、それをそのままサーバーにすることに。(サーバーとして迎えられたのに、うるさいという理由で止められてしまうNECサーバーかわいそう)

eSATA接続ではうまいこと接続ができないので、USBで接続で。。。。

んで、まずは、X入れますか。

Gnomeなんだか、いらないんじゃないか。と思っていたので、今回はLXDEでセットアップかな。

sudo yum intall xrdp
LANG=C yum groupinstall "LXDE Desktop"

あぁ、、、インストールしてディスクの容量確認にしてみたら、システム領域じゃないバックアップ領域が枯渇気味です。

気を取り直して、、、、

sudo systemctl start xrdp

んで、remote desktopで接続すると、、、、あれ・・・丁度いいサイズだ。
Gnomeだとなんらかの制御が入ってだめとか?

そんなわけで、軽いですしlxdeでいきましょう

と書いていましたが、xfceを入れたいと思うように。
インストール方法は次のサイトを参考にして。 個人的にこれはいいまとめだと思う。
http://hiroom2.jimdo.com/2015/06/13/xrdp%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95/
xrdpとの連携については、次の掲示板を参考にして。
http://askubuntu.com/questions/135483/how-to-configure-xrdp-to-start-cinnamon-as-default-desktop-session

眠気なまこ - rsnapshotをfedora22で

今日は夜勤明けで夜までは起きておかんといかん。
そんなわけで今まで解決できなかった問題を解決しましょうと。

気になった問題をいろいろ書いて列挙したうちのひとつ

「rsnapshotをfedora22で自動的に取得するためには?」

わざわざ手で毎日rsnapshotを叩いてtmuxとかで立ち上げておくのも面倒です。

また、自分の目的のバックアップ方法は、1日一回のバックアップですんで、まぁ、それが満たせる設定であればいいかなと。



snapshot_root   /mnt/3tv2

interval        daily   2
interval        weekly  2
interval        monthly 3

backup  /home/          localhost/
backup  /etc/           localhost/
backup  /usr/local/     localhost/


ここまではCentOS6系もいっしょですね。

「systemctlで定期実行」

こんなの書いてありましたが、丸パクリでやって頭の中にはいっていないですな。
rsnapshotだったら、定期的に実行するはずなんでサンプルとか元からはいっていそうですが。
rsnapshot dailyだけでいいだろうし、少し探してなかったら、かいちゃう。

ないっぽいな。

/usr/lib/systemd/system配下に
cat /usr/lib/systemd/system/rsnap.service 
[Unit]
Description=rsnapshot service
DefaultDependencies=no

[Service]
Type=simple
ExecStart=/usr/bin/rsnapshot -v daily
User=root
Group=root

[Install]
WantedBy=multi-user.target

cat /usr/lib/systemd/system/rsnap.timer 
[Unit]
Description=Execute rsnapshot daily 3:00:00

[Timer]
OnCalendar=*-*-* 03:00:00
Unit=rsnap.service

[Install]
WantedBy=multi-user.target

を配置して (中身は他のみるか、前記事参照)
# systemctl enable rsnap.timer
# systemctl start rsnap.timer きっとこれでサービス開始だと思う。

明日結果はみてみるとしますかね。

fedora 22 でlinuxbrew

公式レコメンドインストール(公式めんどいからもう全部入れろ。必要なものは、linuxbrewでどうせ全部入れちゃうからって意図が見え隠れw)
sudo dnf groupinstall 'Development Tools' && sudo yum install curl git m4 ruby texinfo bzip2-devel curl-devel expat-devel ncurses-devel zlib-devel openssl-devel gcc-gfortran

linuxbrew本体インストール
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/linuxbrew/go/install)"

以下を実行し、
ln -s /usr/bin/gcc ~/.linuxbrew/bin/gcc-5
ln -s /usr/bin/g++ ~/.linuxbrew/bin/g++-5
ln -s /usr/bin/gfortran ~/.linuxbrew/bin/gfortran-5

.bashrcに追加
export PATH=~/.linuxbrew/bin:$PATH
export MANPATH=~/.linuxbrew/share/man:$MANPATH
export INFOPATH=~/.linuxbrew/share/info:$INFOPATH
export LD_LIBRARY_PATH=~/.linuxbrew/lib:$LD_LIBRARY_PATH
export HOMEBREW_CC=~/.linuxbrew/bin/gcc-5 #これがミソ? gcc-5.1ではダメでした。

そして、チェック いろいろwarnでるけど気にしない。
brew doctor

そのあと、brew install node npm

くそが、時間かけすぎだろ。

土曜日, 10月 17, 2015

Shell

bash ksh csh sh zsh
ならびはどうでもいいけど、bashをバッシュと呼称している事に赤面した。

solarisではデフォルトは、shかな。
それでは使いにくいと思って、bashに切り替える時に「バッシュ」と口に出したことが始まり。

この子のことを知っていたらバッシュと呼んでも差し支えないはずだとわかるのだけどね。

各シェルの名称を調べてみると、
sh Bourne Shell
csh C Shell
ksh Korn Shell
bash Bourne-again Shell
zsh Z Shell
tcsh TC Shell

だから、日本でも呼ぶ時にはバッシュでいいんですね。。。

shが何でshなのか気になりますけど、きっと初期に開発されたシェルなんで、shなんだろうな。そう理解します。
が、モヤッとします。

上の話に絡んでですが、各シェルのイメージ。

sh    おバカさん
csh  融通が利かない、でもかっこいい。
ksh  よく知らない
bash 俺にとってのベーシックなシェル
zsh   バカになっちゃうシェル。
tcsh BSD
これtwitterとかに上がっていないかな。

火曜日, 7月 21, 2015

boot2docker hateスピーチ

boot2dockerを悪く言ってみようと思う。
調べつつ、hateしていったら、まだ手に馴染んでいないだけなんじゃなかろうか。という結論。

hate

  • あの貧弱な環境で設定ファイルをいじらせないでほしい。
    • エディタ用のコンテナ作れば?
  • tmuxがコンテナで使えなかった。いろいろいじる時はdockerでサポートしてほしい。
  • コンテナのデータとかホストOSに配置できるのはわかったけど、シンボリックリンク含んだデータを配置できないんだけど。(直近であった)

good!

逆に素敵なところを
  • windows,macでさくっとdocker環境を整えられるのは素晴らしい。
  • しかも、動きがほとんど一緒(ホストOSのファイルシステムがネックかも)
  • 実は、自動起動で仕込める。

不勉強でそのプロダクトをディスってはいけない。
きっと、私程度が嫌がる、気になる事は既知の問題として解決されている

月曜日, 6月 29, 2015

E420であがく

結論

ここで使おうとしているrawdisk結構あぶなげ、安定していないなら、やるべきじゃない。(途中でマウント外れる事象が起こると、パーティション情報が死んだ)
なんか、データ復旧面倒だな。。。昔のMac用HDDもってきてそれからデータコピーして、、、で足りないデータなんてないよね。きっとね。大したデータじゃないよね(いいきかせ)

自宅サーバーなんて初めからなかったんや!(いいきかせ)

前書き

新しいマシン音がすごくて安眠妨害になっちゃうね。そして、このマシンあまり早いとは思えないぞ。電源もったいないかな?と思って停止させました。
http://tluna-journal.blogspot.jp/2015/06/i5-670-mem16g.html

とはいえ、このマシンに課せられた使命は、ファイルサーバーとかも担う予定だったので、またE420にlinuxを入れようとしていたのですが、

「VirtualBoxってrawdiskって考え方ないのかしら?」と思って探してみるとヒット。
http://hrn25.sakura.ne.jp/win/virtualbox-rawdisk/virtualbox-rawdisk.html

このESATA PCIXカードもwindowsだったら安定しているかもしれない。
ちなみに利用しているのは、このカード
http://www.kuroutoshikou.com/product/interface/ata_sata/sata3-ec34/
そして、HDDマウンタ?として利用しているのは、こちらの裸族のインテリジェントビル(revがちがうかもしれないけど)
http://www.century.co.jp/products/pc/hdd-case/35satahddusb30/crib535eu3v2.html

上記の環境+E420をlinuxでやっていると、並列で書き込みをする、または、でかいデータを書き込みすると、ブロックデバイスを見失ってしまうので、ファイルサーバーとしては使い物にならないという結論でして。(ファイルサーバーだけだったら、いいけど、dockerもやりたいし)

試験環境準備

以下の環境を用意した
ソフト:
Windows7 home edition
VirtualBox 4.3.28
CentOS7

ハード類:
Thinkpad E420(確か購入当初でも5万円台で、それにメモリ8Gのっけた、当然絶版)

このマシン何気に年季が入っていますが、なんか会社のマシンより軽い不思議な子。きっとメモリのおかげ?
やろうとしていることは、図解するとこんな感じ。
サーバーなんてする気がなかったけど誤ってやってしまった構成ですね。

rawdiskについては、前述の手順を踏めばいいでしょう。もちろん、私の構成だと、PhysicalDrive1,2,3,4,5がターゲットボリュームになりますね。(この辺の数字はちゃんと追っていないけど、おそらくwhindowsの管理=>ボリューム?あたりに表示されているものと同じはず)

いざ実食

する前に、パーティション情報を壊してお亡くなりになりました。
各HDDをrawdiskとして、virtualboxに認識させ、その後、mountしていましたが、しょんぼりな結果です。

ただ、何度か読めていたはいたので、問題となっている組み合わせ(SATA3-EC34<->インテリジェンスビル)の可能性も、、、否定できませんが。(何か問題があったら、パーティションまで吹き飛ばすってひどい話ではありますが。)

あとがき

rawdiskで何か問題起きると被害すごいっぽいよ。

金曜日, 6月 05, 2015

CentOS7でも定期実行を(systemctl)

サーバーを手に入れましたが、yahoo簡単決済のおかげで先方にお金を渡せていない状態です。。。。
落札者の皆々様、ちゃんと入金されるまで確認をしてください。

さて、CentOS7はsystemctlになりましたが、そのサーバー上で定期実行をさせるとなると以下の対応が考えられますね。

  1. cronをインストールしてそれで実行
  2. systemctlのtimer-unitで実行
archlinuxではそこそこ情報が出てくるのですが、CentOSではあまり情報が出てこなかったので(なれたら一緒なんでしょうが、そもそもCentOSではエラー吐いて動かないものもある)ご紹介

RHEL7: How to use Systemd timers. - CertDepot : http://www.certdepot.net/rhel7-use-systemd-timers/

MyDNSへの通知をこれで自動的にだせるようになりました。
ちゃんと使えるまでには程遠いレベルです(素直にcron使えばいいのに)

常時実行する際にユーザの実行は以下の参考URLがよさげ
http://qiita.com/todanano/items/f66f1a3ad76f76de0772