Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

最近のHyperionあらためTriglav

サーバ管理の仕組みを作り始めた話」というエントリで書いたツールの最近について。

名称変更

まず、名前がHyperionからTriglavに変わりました。既にHyperionという名前のgemがあったため。Triglavというのも、mizzyさん命名で、元ネタはアレです。

開発進捗

開発はぼちぼち進んでいて、とりあえず骨子の機能はひと通りできてきた感じ。あとは、ホストに最低限必要な情報を拡充したりなど、細かい追加をしようという段階。いまは主に、APIの実装をしているところ。とりあえず、ホスト情報などを引くところはできた。

たとえばcapistranoでのデプロイに使う場合、こんな感じで、APIからホスト情報をひっぱってこれる。

triglav_host = 'triglav.pb'
api_token    = 'P96i2OUWQv_HdyXcSKHcuw'

role :app do
  open "http://#{triglav_host}/api/services/#{application}/roles/app/hosts?api_token=#{api_token}" do |f|
    json  = f.read
    hosts = JSON.parse(json)
    hosts.map { |host| host['host']['name'] }
  end
end

これだとちょっとダサいので、triglav-clientみたいなのを作って、こうしたいところ。

triglav_host = 'triglav.pb'
api_token    = 'P96i2OUWQv_HdyXcSKHcuw'
client       = Triglav::Client.new(host: triglav_host, token: api_token)

role :app do
  client.hosts_for(service: application, role: 'app)
end

開発体制

デザインが素のbootstrapでイケてないので、同僚のデザイナにお願いしていい感じのデザインにしてもらっている。また、実際にこのツールをよく使うことになるだろうインフラエンジニアたちへの説明や、Rails学習のために、mizzyさん主導でハンズオン形式の勉強会を行ったりしている。

まずは、仕様的に足りないところについてissueを出してもらったりして、学習が進めば、実装などもしてもらいたいというつもり。「インフラエンジニアもコード書けないと!」みたいなことがいわれている昨今ですが、このようなツールの機能追加などから始めてみるのもよいのではないでしょうか。