雑記帳

ちょっとした文章とかメモ書きとか。

Ansibleでketerのデプロイ環境を整える

Ansibleを触って、keterでのデプロイが出来るまでのAnsible playbookを作成してみました。

目標:AnsibleでサーバーへHaskell開発環境を入れずにketerの環境を作成する。

Yesodのデプロイツールのketerサーバーで実行する段階ではネイティブのバイナリの実行ファイル(ELF)です。

Yesodのデプロイ環境をketerで作成するとプロダクションサーバーに一切開発環境やインタプリタやコンパイラを入れること無くアプリケーションを動かせる、ということになっています。

とってもセキュア!

そうして出来上がったのがこちらのplaybook: ansible-playbook-for-keter-deploy

このplaybookを動かすにはhostへの対象サーバーの記述と、binaryディレクトリへketerのELFバイナリを置く必要があります。

ついでにserverspecでserverの状態を確認するテスト書きました。

  • gcc, clang, ghc等の開発ツールを誤ってインストールしていないか
  • keterがサービスとして動いているか
  • avahi(bonjour) daemonが動いてホスト名の名前解決が行えるか

等のserverspecを書いてあります。(が、テストをどうやってCIするか悩んでいるのでCIはまだしてないです)

Yesodのデプロイ作業はいくらscpで<<Yesod App Name>>.keterをプロダクションサーバーに投げつけるだけとは言え、そこまでの環境を用意するのがめんどくさかったのですが、Ansibleのplaybook化してしまえばYesodのアプリケーションをデプロイするまでの作業がかなりラクになりそうですね。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。