概要: 何故か Gehirn RS が PaaS の様になった……
本日の、
案件です。
僕はしばし前に、
というコトを書いていて、その中で、
というのを作ってるって言うてたんですが、その辺りの拡充というか、僕の個人用途の公開 Web サービスの構築の自動化まわりを整備しておった結果、
Gehirn RS2 に PaaS みたいな環境が出来た!!!!!!
ので、今日はその辺り書きたいと思います。
Gehirn RS2 を PaaS もどきっぽくする方法
supervisor
のインストール
今日は寝不足で頭があんまり働いてないので、実例で説明しますが、手順としては、第一に、
が使える環境で、
$ bops [email protected] supervisord-install /home/nyarla/System/sypervisord
という感じで、Bops recipe の supervisord-install
を使って、いろんな PaaS でおなじみの supervisor
をインストールします。
で、このレシピの正体はぶっちゃけただの Bash script で、中身でやってる事は
を見た方が早いです。が、一応説明等をすると、
linbox
のセットアップBrewfile
を自動生成してlinbox install
を実行 この際、supervisor
を動かすのに必要なシロモノは全部インストールされるlinbox
経由でpip install supervisor
を実行supervisord.conf
を自動生成 ちなみにsupervisor
のパスワードも自動生成
あとこの時生成される
supervisor
の設定は、/home/$U/Applications/*/supervisord.conf
を読み込むようになってる
- あとは、
supervisord
とsupervisorctl
を実行するための Bash script を生成 - おわり
という感じです。
nginx
のインストール
で、次にこれまた Bops
で、
$ bops [email protected] nginx-install 1.4.5 /home/nyarla/Applications/nginx
という感じでnginx
をインストールします。
で、この nginx-install
もまた Bash Script なワケですが、中身はまあ、
を見た方が早いです。
で、一応デフォルト生成設定の特長を書いておくと、
supervisor
でプロセス管理するため、daemon off;
の設定がしてある/home/$U
の設定を読み込むようになってる( /Applications/*/nginx.conf- あとその他は適当
という感じです。
あと、それともう一つ注意点を書くと、Bops
recipes のnginx-install
は、設定等が、PaaS-like な環境構築用に特化しているため、普通に nginx
を楽にインストールしたい場合は、前に僕が作った、
を使ったほうが良いかと思います。というか Bops
recipes の nginx-install
は、ぶっちゃけ上記の nginx-install
を使ってます。
3. senv
をセットアップする
senv
って何? と思われる方も結構いるとおもうんですが、これは、
のコトで、中身としては、
.env
ファイルを、セキュアに暗号化 or 復号化するための Bash script
と成ってます。
で、このセクションでの senv
のセットアップ、というのは、senv
をインストールするコト、 ではなく 、
senv
用の ssh key pair を生成し- それをサーバにう p する
という感じの内容です。
で、このセットアップは、 Bops
では、
を使って、
$ bops-senv-setup [email protected]
すると、ローカルとリモートの ~/.ssh/
以下に、
senv.key
senv.key,pub
というファイルが生成されます。
で、もし senv
を使って .env
を暗号化した .senv
ファイルを生成する場合、
$ export SENV_KEY=~/.ssh/senv.key
$ senv --encrypt .env > .senv
という感じでコマンドを実行します。
あと復号化に関しては、
$ senv --decrypt .senv > .env
で出来ます。
4. アプリケーションを deploy する
ぶっちゃ実際に使ってる、
を deploy する場合だと、 aiproxy
の Makefile
のUSER
とかHOST
とかを書き換えて、
$ make install
# or
$ make update
するだけです。
っていうかまあやってる事としては、
rsync
でローカルのファイルをリモートに deploy- リモートで
Setupfile
かUpdatefile
を bash に食わせて実行 - あとは
supervisor
に関連ファイルを読み込ませる
という感じです。
というコトで、大体は以上です。
っていうか、どう考えてもこれ、
DevOps じゃなくて BashOps じゃねーかー!!!!!!
と思われるかもしれませんが、そもそもするために作った Bops
がそもそも、
Bops - Is this the bash script for devops
なので、まああながち間違いではありません。
まあぶっちゃけた話 Bash Ops を簡単にできるようにしたのが、
ですからね。(テヘペロ
で、この辺り環境がいつの間にか出来上がって来て、一応 Application の deploy とかが大分楽にはなったんですが、まだ、完全にすべてを自動化出来てるワケでもないので、その辺りは今のところちょっちびみょい感じです。
つか僕は DevOps に関しては、
限りなく属人性と人力 Deploy を排し、完全な自動 Deploy を行うべき
と考えてるので、その点で言えば、まあこ Gehirn RS2 に構築した PaaS もどきな環境は、点数としては 50 点ぐらいの環境かな、とは思ってます。
ま、でも前の完全人力よりかはマシですけどね。この PaaS もどきっぽい環境。
ま、そんな感じでしょうか。
というワケで本日の技術系記事は以上となります。
で、 無限雑音 にはちょろっと書いてますが、ここ最近、うつの症状が悪化して体調が本当によろしくないので、イマイチ記事の内容にノリ切れないのがなんとも言えない感じです。はい。
というか、もうやめて!私のライフは 0 よ!的な感じになってきたので、本日の記事を終わりたいと思います。
本当、誕生日までには落ちつて欲しいなぁ、鬱の症状。
#FIXME