気がついたらGehirn RS2にPaaSみたいな環境が出来上がっていた件

読了まで:約5分


概要: 何故か 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 で、中身でやってる事は

を見た方が早いです。が、一応説明等をすると、

  1. linboxのセットアップ

  2. Brewfileを自動生成してlinbox install を実行 この際、 supervisor を動かすのに必要なシロモノは全部インストールされる

  3. linbox 経由で pip install supervisor を実行

  4. supervisord.conf を自動生成 ちなみに supervisor のパスワードも自動生成

  • あとこの時生成される supervisor の設定は、 /home/$U)S)E)R/Applications/*/supervisord.conf

  • を読み込むようになってる

  1. あとは、 supervisordsupervisorctl を実行するための Bash script を生成
  2. おわり

という感じです。

nginx のインストール

で、次にこれまた Bops で、

$ bops [email protected] nginx-install 1.4.5 /home/nyarla/Applications/nginx

という感じでnginx をインストールします。

で、この nginx-install もまた Bash Script なワケですが、中身はまあ、

を見た方が早いです。

で、一応デフォルト生成設定の特長を書いておくと、

  1. supervisor でプロセス管理するため、daemon off; の設定がしてある
  2. /home/$U)S)E)R/Applications/*/nginx.confの設定を読み込むようになってる
  3. あとその他は適当

という感じです。

あと、それともう一つ注意点を書くと、Bops recipes のnginx-install は、設定等が、PaaS-like な環境構築用に特化しているため、普通に nginx を楽にインストールしたい場合は、前に僕が作った、

を使ったほうが良いかと思います。というか Bops recipes の nginx-install は、ぶっちゃけ上記の nginx-install を使ってます。

3. senv をセットアップする

senv って何? と思われる方も結構いるとおもうんですが、これは、

のコトで、中身としては、

  • .env ファイルを、セキュアに暗号化 or 復号化するための Bash script

と成ってます。

で、このセクションでの senv のセットアップ、というのは、senv をインストールするコト、 ではなく

  1. senv 用の ssh key pair を生成し
  2. それをサーバにう 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 する場合だと、 aiproxyMakefileUSERとかHOSTとかを書き換えて、

$ make install
# or
$ make update

するだけです。

っていうかまあやってる事としては、

  1. rsync でローカルのファイルをリモートに deploy
  2. リモートで SetupfileUpdatefile を bash に食わせて実行
  3. あとは 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

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。