826 Views
October 09, 24
スライド概要
クライアントで PowerShellを使ってみて Write by 松井敏 第 6 回 PowerShell 勉強会 2016-04-09
Myself 名前:松井 敏 a.k.a 森理 麟 所属:株式会社Codeer 著書: Unity5 3Dゲーム開発講座 表彰:Microsoft MVP サイト: http://karaage.click 2
今日話すこと そもそもやりたかったこと ま、作ってみる が、クライアント環境ならで はの問題点 で、理想の環境設定 3
そもそもやりたかっ たこと 4
当時、僕の仕事は環境整備 やりたかった こと 5
CIやCDを駆使して大分環境を 自動化していた やりたかった こと 6
ただ今まで環境がなかったデ ザイナなどの設定するため、 事前準備が結構あった。 やりたかった こと 7
僕自身が設定したり、同じ説 明を繰り返したりするのが手 間だし時間がかかる やりたかった こと 8
やりたかった こと スタジオ全体だったので、新 人が入ったり、パソコンの入 れ替えがあったりと年単位で 見ても結構回数もあった 9
マニュアルも書いたりもして、 これやっといてーとしたけれ ど、トラブルことも多かった やりたかった こと 10
じゃどうすれば楽になるの か? やりたかった こと 11
バッチを一つ用意して、これ を叩いたら環境設定全部終わ るよーが理想 やりたかった こと 12
Bootstrap.batを作る! やりたかった こと 13
ま、作ってみる 14
というわけで作ってみようと 思った で、作ってみ る 15
で、作ってみ る ツール、 Gitとかrubyとかの自 動インストール 環境変数の設定 バージョン管理の自動ダウン ロード バッチとか叩く。コピーとか 半日とかかかるので終了連絡 16
で、作ってみ る バッチで出来ることも限られ ているなー。出来るかもしれ ないけれどできないかもしれ ない。 17
そんな時にちょっと興味を持 ち始めていたのがPowerShell。 で、作ってみ る 18
じゃあPowerShellで作って見よ うかなと で、作ってみ る 19
で、作ってみ る インストールはmsiを叩くだけ で意外といけた 環境変数も出来る君 バッチとかは勿論叩けた メールも意外とサクッと 20
でけた。でけた。 で、作ってみ る 21
最終的にはbootstrap.batにし て、これを叩いたらインス トール完成!な感じ で、作ってみ る 22
さらにchocolateyを知る。め ちゃ便利 で、作ってみ る 23
Choco install git Choco install ruby で、作ってみ る 24
で、作ってみ る これだけ インストールの環境設定は powershellなら行けるなーとい う感触 25
が、クライアント環 境ならではの問題点 26
実験では意外と上手くいって いたけれど、問題点がそれは それは一杯あった が、クライア ント環境なら ではの問題点 27
そもそもbatが動かないケース もある が、クライア ント環境なら ではの問題点 28
ユーザーアカウント制御とか で、一行目でアウト! が、クライア ント環境なら ではの問題点 powershell Set-ExecutionPolicy RemoteSigned powershell .\main.ps1 powershell Set-ExecutionPolicy Restricted 29
「管理者権限で実行して ねー」は意外と口頭では伝わ らない が、クライア ント環境なら ではの問題点 30
インストールが途中で失敗す ることもある が、クライア ント環境なら ではの問題点 31
新しいrubyと古いrubyが両方 入っていたり が、クライア ント環境なら ではの問題点 32
が、クライア ント環境なら ではの問題点 サイレントインストールだと パスが書かれてなかったり、 新バージョンでパスが変わっ たり 33
パス文字列が2048文字超えた り が、クライア ント環境なら ではの問題点 34
バージョンアップしたらサイ レントインストールが動かな くなったり が、クライア ント環境なら ではの問題点 35
そういうエラー検地がまた難 しい が、クライア ント環境なら ではの問題点 36
メールが届かなったり が、クライア ント環境なら ではの問題点 37
メールが届きすぎたり が、クライア ント環境なら ではの問題点 38
メール爆弾を作ってしまった り が、クライア ント環境なら ではの問題点 39
が、クライア ント環境なら ではの問題点 Gitのcheckoutがちゃんと動か なかったり。 これは色々問題があって、全 消しが理想 でも時間はかかりすぎる 40
が、クライア ント環境なら ではの問題点 アンインストールも同様。で もアンインストールは実はと ても難しい。 冪統性がなさ過ぎて泣ける 41
が、クライア ント環境なら ではの問題点 冪統性 クライアントでの一番の問題 点は、この冪統性がとれない こと そしてクライアントで冪統性 を取ることは究極に難しいと 思う 42
が、クライア ント環境なら ではの問題点 何故なら、毎日使っているパ ソコンの環境は日々変わる 会社のような制限されている 環境ですら、隣の人と設定は 色々違うはず 究極にいえばクライアントに 同じパソコンなんてない 43
が、クライア ント環境なら ではの問題点 加えてアンインストールシス テムに冪統性がなさすぎる。 完全な設定をするなら本来全 部更地にするのが一番 そうであればゴミが残ってい てぶつかったり、他との依存 が解消できる 時間もかかりすぎるし現実的 にはほぼ不可能 44
が、クライア ント環境なら ではの問題点 もう一つ問題としてバージョ ンアップの対応 もう1回bootstrap.bat叩いて よーが理想 ところが消す処理が入ってい ると再度やり直しで時間がか かる 消さないとうまく入らないも のもある 45
が、クライア ント環境なら ではの問題点 結局bootstrap.batの成功率は7 割ぐらい。その都度問題点も 違ったり、手動で再度やった り再現しなかったりでなかな か完全に潰すことはできず 46
で、理想の環境設定 47
色々話した結果、完全な bootstrap.batを作るのはなか なかになかなか で、理想の環 境設定 48
でも、現状ではサーバーで理 想の方法が提案されている で、理想の環 境設定 49
それがImmutable Infrastructure で、理想の環 境設定 50
でも現実問題としてクライア ント環境で全部消せば良い じゃんはほぼ無理ゲー で、理想の環 境設定 51
で、理想の環 境設定 そうなると、これが現実的か はまだ分からないけれど、や はり仮想環境での新規設定が 一番良いかもしれない 52
で、理想の環 境設定 サービスでもMVPとミニマム で作ることこそが正義。だっ たら開発環境もミニマムが一 番。 53
で、理想の環 境設定 実際問題1台のパソコンに2環 境を同時に整備することはと てもハードルが高い。例えば 必要なソフトのバージョンが 違ったり 54
そうなると必要な環境毎に切 り分けられるしやはりミニマ ムは強い。 で、理想の環 境設定 55
あ、Windows10でマルチデス クトップとかそれが出来るか と思ったけれど酷すぎた。。。 で、理想の環 境設定 56
で、理想の環 境設定 ミニマムで作っておけばフ リーズドライも出来る。おそ らく昔の環境をバックアップ したものは動かないと思う 57
で、理想の環 境設定 というわけで結論! クライアントの完璧な環境設 定はかなりハードルが高い これを実現するのであれば Immutable Infrastructureしかな いかな? 58
ご清聴ありがとうございまし た おわりに 59