Qiitaにアカウントを作った
技術的な質問には積極的に回答をしたいと思うところですが、
同じことを何度も丁寧に説明するのは面倒だし、初歩的なことだったりすると説明することがストレスになりそうってことはよくあるんじゃないかと思います。
乱暴に解決するなら「ググれ」でいいのですが、実はググって良い記事を探すのも一つの能力だったり・・・
まぁ良い記事があれば、そのURLをメールして「ここに書いてあるとおりにやって」って感じになるかなと思います。
ところがいい感じの記事がないときは?ってことで、とりあえず社内Wikiに書いてそこを見ろって感じにしていました。
こういったナレッジは社内に置き続けても良いのですが、自分が調べたことを自慢したい欲がおさえられないので、ブログとかに書いていきたいなとか思ってます。
ただ、技術的なことってはてなブログよりはQiitaとかに投稿したほうが良いのかな?って思ってQiitaにアカウントを作りました。
とりあえず本日以下の記事を投稿
タイトルがやや煽り気味ですが、まぁ初心者向けに書いたのでこういうタイトルのほうが初心者が誘導されやすくて良いんじゃないかなと思ってます。
仕事で間接的にいい感じの成果が出たときはこうやってアウトプットしていくのが良いのかな?と思って書いていこうかなと思います。
入社
入社とは手続きの塊である。
多くの人間が働くとはこういうものなのかと思い知らされる。
とにかくアカウントの管理が面倒くさい。
総務系のアカウント、人事系のアカウント、経理系のアカウント、事業部のアカウント、課のアカウント、プロジェクトのアカウント、建物のアカウント、運用のアカウント、PCのアカウント、etc...
連携するものもあれば、初回だけ連携するもの、多くの組織を跨ぐ手続きの要るもの、なんかよくわかんないもの、明らかに要らないもの。
その中でも厄介なのが、ラボアカウントだ。試験環境にハイパーバイザがあって、その上で多数のOSが走る仮想マシンが乗っている。その台数は多く、認証サーバも自動構成もされていない。多いと言ってもせいぜい20台程度、なあにそのくらいは気合でなんとかなる。と言う話なのだろうが、はっきり言ってクソだと思った。
基本的にはユーザを作ってパスワードを入れて公開鍵を配置してパーミッションを変更しwheelに加えるだけ。こんなの数分で終わる作業だが、元無職の自分にはとても耐えられそうに無かった。というか、バイトに管理者アカウントを教えるってどうなんだよとも思った。
元無職はいきなり会社のやり方に耐えられずに上司に相談した。あっさりとOKを貰えたのでスクリプトを作ることにした。だが元無職のksharaはプログラムが書けない。これは大きな問題かと思われたが、私が世間と隔離されている間に以外にも世の中は良くなっていたらしくGoogleで検索しながら作業するだけで作ることができた。とは言え、どう考えても普通に全部手打ちしたほうが圧倒的に速いのは事実である。今後、私以外の新人が入ればこの作業は意味のあるものになるのだろうから上司も特にその点については気にしていなかった模様。
それと、色々と良いのか?と思ったことを言ったら「じゃあルール作ってやるからなんとかしとけ」と言われた。例えばリモートのログインはpub-key auth に限定、 permit root login が no みたいなやつだ。
この作業で詰まった点をいくつか以下にまとめる。ちなみに情報はバイト先にあり、全て記憶を頼りに書いているので、細かな間違いはあるかもしれない。
まず、ハイパーバイザで作業するのはウンコの垂れ流しなのでターミナルエミュレータで作業する。TeraTermを普通に使わせてもらえた。とりあえず1台繋がる経路を確保してから、 ssh root@ip-addr みたいな接続をする。あまりにも酷い話だがまあよい。ssh コマンドはコマンドを流し込めるらしい。
# ssh root@ip-addr "hostname"
のように叩けば、どのIPアドレスがどんな名前のサーバなのかがすぐに分かる。
シャル変数という便利なものがあるので
# ssh root@${hostaddress} "hostname"
のようにまとめてコマンドを流し込める。
IPアドレスはテキストファイルにまとめて cat と for でうまい感じにやったけど、細かい記述は忘れてしまった。
複数のコマンドも
# ssh root@${hostaddress} "hostname; whoami"
のように流し込める
そしてここで問題が発生する
# ssh root@${hostaddress} "hostname; sudo ls /sbin"
のようなコマンドを流し込みインタラクティブな応答が発生すると詰まるのだ。
こういうときには -t オプションを付けると良いらしい。tty をうまい感じに繋いでくれるらしいが、詳細はよく分からない。
# ssh -t root@${hostaddress} "hostname; sudo ls /sbin"
みたいな感じだ。
ちなみに使うコマンドはたくさんあるので、面倒だから.shにまとめて対象に配ってしまう。
# scp deploy.sh oot@${hostaddress}:/home/kshara/
のようにして配った。
配った.sh の中に
sudo passwd kshara
みたいな行があるときが厄介だ。
sshを使ってるシェルの先に、別なシェルがあって、そいつがsudo を実行し その先で passwd が走ってる。こういうのは -t ではどうにかならないらしい。これの解決法は非常に冗談みたいな方法で -t オプションはつければ付けただけ深く作用してくれるらしい。
つまり
# ssh -t -t -t root@${hostaddress} "bash /home/kshara/deploy.sh"
とか書くと上手く動いてくれるのだ。
あとは細かい引数の設定もあるが、その多くはシェル変数で対応できた。
この作業の恩恵がいつ現れるかは不明。新人が入ったら有効に機能するのかもしれないが、勤勉な新人だったら何も文句を言わずにそれぞれのサーバに入ってアカウントを作るのだろう。自分のような怠け者の新人を歓迎する。
バイトを始めたのでブログを書く
最近バイトを始めたのでブログを書く。
大学を卒業して、しばらく無職してたが最近フリーターに格上げとなった。
一応IT系なのかな?多分IT系だけど自分はあんまりそう思ってない。
サービス作って売ってるところです。ITに強い人が中に居て、そことの繋がりで始めた。
バイト先には報告してない。バレるまで書く。バレたら多分ブログが消滅する。
社会人経験の浅さを露呈しながら新人の日記を書いていきます。