タグ

ブックマーク / mizzy.org (16)

  • DevOps - Gosuke Miyashita

    DevOps: Why Silos Suck And How To Break Them というエントリをたまたま目にして、「DevOps」という見なれない言葉が出てきたので、気になって調べてみたところ、自分が何となくやっていたことや、今までもやもやと考えていたことに一定の方向性が与えらえた気がしたので、整理してみることにします。 DevOps とは? 簡単に言ってしまうと「開発者と運用者の間の壁を取り払うためのベストプラクティス」と言えそうです。 開発者と運用者の間の壁? Flickr の中の人による 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr という Velocity 2009 でのプレゼンスライドには「Devs versus Ops」という章があり、以下のような言葉が載っていました。 "It's not my mach

    clavier
    clavier 2015/06/23
    DevOps - Gosuke Miyashita
  • Walter + Wercker + DigitalOcean による Serverspec CI - Gosuke Miyashita

    フリーランスになって1年が経った というエントリで少しだけ触れた、仕事でも絡んでいる Walter を自分はどう使っているのか、という話を書きます。 TL;DR Serverspec/Specinfra 体のインテグレーションテストに Walter を Wercker と組み合わせて利用している Wercker は並列実行サポートしてないけど、Walter と組み合わせることで並列実行できて便利 Docker on CoreOS, CentOS 6.5, CentOS 7.0, Ubuntu 14.04, FreeBSD 10.1 の各 VM を使ったテストを並列で実行してる ローカルでも実行できて便利 (Wercker v2 でもできるようになってるけど、Walter の場合は Docker 環境なくてもできる) Dogfooding のため、Walter を Wercker と組み合

    clavier
    clavier 2015/06/19
    Walter + Wercker + DigitalOcean による Serverspec CI
  • フリーランスになって1年が経った - Gosuke Miyashita

    4月からクックパッド仕事してます というエントリを書いてからちょうど1年経ったので振り返ってみる。 フリーランスになった経緯 そもそも最初からフリーランスになるぞ、と思ってなったわけではなく、なんとなく流れにしたがってたらフリーランスになってた。 もう少し詳しい経緯。色々あって2014年3月に無職(有給消化中のファッション無職じゃなくガチ無職)になって、普通に正社員として次の会社を探していて、知り合いに声をかけて話を聞いて回っていた。その中でクックパッドに決めたのは、セコンさん や mirakui さん の、これからクックパッド技術やインフラをこうして行きたい、という思いや考えに共感し、そこに自分が価値を提供できるイメージが具体的に沸いたから。 ただ、事情があって最初から正社員ではなく、お互い様子見ということで、正社員になる前提で半年間業務委託契約という形で仕事してみましょう、というこ

  • Dockerコンテナに入るなら SSH より nsinit が良さそう - Gosuke Miyashita

    追記 はてブでつっこみもらいました が、実行するカレントディレクトリは /var/lib/docker/execdriver/native/$id を使うのが正しいようです。(情報読み違えてた。)こちらには container.json があるので、ソースツリーからコピーしてくる必要ないですね。 また、コンテナ ID 取得は、docker ps -q --no-trunc の方が良い、とも教えていただきました。 つっこみにしたがって、最後の方の説明とシェル関数書き換えました。 つっこみありがとうございます! tl; dr タイトルまま 経緯 Docker でつくったコンテナの中に入って状態を確認するために、コンテナ内で sshd を立ち上げてアクセスする、ってなことを以前やってたんですが、コンテナ内で sshd を立ち上げる、というやり方がいまいちだし、そもそもコンテナの仕組みから考えれば

  • octorelease という gem をつくった - Gosuke Miyashita

    serverspec とか specinfra の Changes を手で書くのがだるくなってきたので、自動化するために octorelease という gem をつくりました。 rubygems.org にもあげてあるので、gem install で入ります。 Rakefile の中に require "bundler/gem_tasks" require "octorelease" みたいに書いて、 $ rake octorelease すると、 こんな感じになります。 何をしてるかというと、rake release した後に、前のバージョンとリリースするバージョンの間に含まれるプルリクエストをgit logで拾って、各プルリクエストに Released as vX.X.X. とコメントをつけ、GitHub 上にリリースを作成し、リリースの文にはプルリクエストへリンクを張る、ってなこ

  • specinfra をベースとしたオレオレ Configuration Management Tool/オレオレ serverspec 構想 - Gosuke Miyashita

    specinfra v0.0.6 では、serverspec/configspec/Syllabus で実行する具体的なコマンドを SpecInfra::Command::* に統合しました。 以前のバージョンまでは「OS を自動判別し、OS に適したコマンドクラスを返す commands と呼んでいるレイヤー」を specinfra で提供していましたが、コマンドクラスは各プロダクト側で実装していました。 specinfra v0.0.6 では、コマンドクラスも specinfra 側で持つようになりました。 これで何がうれしいのかというと、オレオレ Configuration Management Tool が簡単に実装できるようになる、ということです。 Exec/SSH といったバックエンド実行形式の切り替えや、OSを自動判別して適切なコマンドを実行する部分はすべて specinfr

    clavier
    clavier 2013/12/04
  • specinfra という serverspec/configspec に共通する処理を抜き出した gem をつくった - Gosuke Miyashita

    The backend of serverspec/configspec might have to be extracted to a gem to accommodate people's preferences to abstraction level. — kentaro (@kentaro) November 26, 2013 とあんちぽさんからごもっともな指摘をいただいたし、実際に configspec を書いてて、ほとんどが serverspec からのコピペで、今後開発をつづけるのであれば、共通部分を抜き出した gem をつくるべきだな、と思ったので、specinfra という gem をつくった。 specinfra で抜き出した処理は以下の部分。 SSH, ローカル、WinRM などの実行形式を抽象化している backend と呼んでいるレイヤー OS を自動判別し、O

  • configspec という Immutable Infrastructure 用 Configuration Management Tool をつくってみた - Gosuke Miyashita

    Immutable Infrastructure の有用性 - Togetter の流れの勢いで、インフラ系技術の流れ とか Rebuild: 25: Immutable Infrastructure (Naoya Ito, Gosuke Miyashita) とかで言ってたような、冪等性とか依存関係とかを考慮しないシンプルな Configuratin Management Tool である configspec をつくってみました。rubygems.org にもアップしてます。 この手のツールに自分が望む要件は以下の様な感じ。 冪等性とかどうでもいい まっさらな状態からのセットアップでしか使わない 依存関係とかどうでもいい ファイル名順、上から書いた順で実行してく 対象サーバに余分なものをインストールしたくない 対象サーバに SSH さえできれば OK シェルスクリプトよりは抽象度を高め

  • serverspec でホスト固有の属性値を扱う方法 - Gosuke Miyashita

    注意! v0.11.0 からは attr, attr_set ではなく、property, set_property とメソッド名が変更されています。attr, attr_set は近い将来使えなくなります。最新の情報はこちらを参照してください。 注意! ここで解説する方法は v0.3.0 から利用できます。 Provisioning Frameworks Casual Talks vol.1 に行ってきた #pfcasual - TAKUMI SAKAMOTO'S BLOG で触れられている attributes 周りについて、この辺は必要になるだろうなー、と前から思ってはいたので、それを実現するための極々簡単な仕組みを 試験的に実装してみた 。 これは単に attr_set と attr という2つのヘルパーメソッドを使えるようにしただけのものなんだけど、以下のような感じで使える。 今

  • Puppet や Chef で構築したサーバを RSpec でテストする - Gosuke Miyashita

    追記 ここに書いてあることを実現する serverspec という gem をつくりました。詳しくはこちらのエントリで。 Puppet マニフェストをリファクタリングするからテスト書くぞ、ってことで、 puppet-lxc-test-box に書いたように、テストするためのシステムコンテナを簡単に作る仕組みをつくったので、今度は実際にテストコードを書くためのベースをつくってみた。 rspec-lxc-test-box こんな感じでテストが書ける。 require 'container_spec_helper' describe 'nrpe' do it { should be_installed } it { should be_enabled } it { should be_running } end describe 'nagios-plugins-all' do it { shou

  • 最小手順のVMイメージの作り方(LVM 編) - Gosuke Miyashita

    開発や検証で利用する VM は、最初はディスクサイズを小さくして、後から必要に応じて大きくする、といったことをよくやるので、最小手順のVMイメージの作り方 のスクリプトを、/ と swap を LVM にするように変えてみた。 あとはディストリビューションを選択できるようにとか、指定したホスト名を設定する、とかもやりたいけど、シェルスクリプトは大きくなってくるとメンテナンス厳しいので、Ruby で書き直す。

  • MHA for MySQL の概要 - Gosuke Miyashita

    MHA for MySQL の導入を検討していて、まずは社内の技術者向けに、MHA for MySQL の概要を伝えようと、主に オフィシャルなドキュメント からポイントを抜粋して社内向けの Wiki に書いてみた。当なら、オフィシャルドキュメント全体に目を通してもらうのがいいんだけど、英語なので、はじめの一歩としては敷居が高く感じる人もいるだろう、ということで。 特に外に出してまずい情報があるわけでもないので、このブログでも曝しておきます。 MHA の概要 MySQL エキスパートとして世界的にも著名な松信嘉範氏による、MySQL マスターの HA 化を行うためのツール。Perl 製。 最小限のダウンタイムで、データの不整合を防ぎつつ、マスターのフェイルオーバーを行う、というのが主な機能。 また、既に動作している MySQL に影響を与えることなく導入できる。 機能は大きくわけると以下

  • mizzy.org - Plagger プラグインの実行フェーズ

    Plagger プラグインの実行フェーズ Posted by Gosuke Miyashita Sat, 23 Sep 2006 18:58:42 GMT Plagger プラグインの実行フェーズについて整理してみたので、載せておきます。 追記 はてブで「argsもあるとうれしいとおもた」というコメントがありましたので、追加してみました。 実行フェーズ $args フェーズの役割 実行例

  • mizzy.org : lighttpd の認証を LDAP で

    lighttpd の認証を LDAP で Posted by Gosuke Miyashita Sun, 21 May 2006 06:17:01 GMT おうち trac が認証を一切せずに、誰でも wiki の書き換えができたり、ticket の発行ができたり、という状態だったので、それはまずかろうってことで認証かけることにした。 「trac を lighttpd + FastCGI で動かす」 で触れたとおり、trac は lighttpd 上で動いているので、認証は lighttpd で設定します。やりかたは lighttpd のサイトにある 「Using Authentication Module: mod_auth」 の通りなので、あまり難しいことはないのですが、とりあえずやったことをメモ。 うちの Linux サーバ上で動いているサービスは、ほとんどが LDAP で認証してい

  • mizzy.org : trac を lighttpd + FastCGI で動かす

    trac を lighttpd + FastCGI で動かす Posted by Gosuke Miyashita Wed, 17 May 2006 14:40:45 GMT このエントリ の様な経緯で、うちでは apache + tracd という構成で trac を動かしてるのですが、tracd がしょっちゅう落ちるんですよね。1日に2, 3回ぐらいは落ちる感じ。で、5分ごとに cron で tracd プロセスを監視して、落ちてたら再起動ってなことをやってるんですが、typester さん から「うちは lighttpd + FastCGI でやってるよ」というアドバイスを頂いたので、試してみました。 やったことは以下の通り。 FastCGI のインストール lighttpd のインストール lighttpd.conf を書く lighttpd の起動 1, 2 については省略。ディ

  • mizzy.org : Plagger::Plugin::CustomFeed::iTunesRecentPlay #0

    Plagger::Plugin::CustomFeed::iTunesRecentPlay #0 Posted by Gosuke Miyashita Fri, 10 Mar 2006 01:42:14 GMT PLAYLOG が関係なくなったので、タイトル変更。Publish::MTWidget と組み合わせて、MT + Sidebar Manager の環境で、サイドバーに iTunes で最近聴いた曲を表示できるように、エントリの title に曲名とアーティスト名をセットするようにしてみました。こんな感じで表示されます。 ですがまだ課題が色々あるので、コミットしてません。ここに TODO をまとめておきます。 「曲名 - アーティスト名」というフォーマット決めうちなので、config.yaml で自由にカスタマイズできるようにしたい。MTWidget だけでなく、他の Publis

  • 1