Upload
gosuke-miyashita
View
2.639
Download
0
Embed Size (px)
Citation preview
walter ファミリーの紹介walter/walter-server/walter-agent
Shibuya.go#12016/2/16
自己紹介• 宮下 剛輔
• mizzy@github, gosukenator@twitter
• フリーランスのソフトウェアエンジニア• 株式会社リクルートテクノロジーズ ATL 技術顧問• 合同会社 Serverspec Operations 代表
walter とは• ビルドパイプラインツール
• CI でのビルドパイプラインを実行制御• YAMLで処理内容と実行順序を記述
• Go 言語でつくられている• オープンソース
• https://github.com/walter-cd
• CLI で動く
walter 開発メンバー• ainoya@github
• takahi-i@github
• mizzy@github
• gerryhocks@github
walter のインストール$ go get github.com/walter-cd/walter
# For Mac OS X$ brew tap higanworks/homebrew-walter-binary$ brew install walter
または GitHub Releases からバイナリ取得https://github.com/walter-cd/walter/releases
walter の実行# pipeline.ymlpipeline: - name: test command: echo Hello Walter
$ walter23:27:52 INFO Pipeline file path: "./pipeline.yml"... <中略>
23:27:52 INFO running Walter23:27:52 INFO Starting Walter in local mode23:27:52 INFO Preparing to run pipeline process...23:27:52 INFO [command] exec: test23:27:52 INFO [test][command] exec output: Hello Walter23:27:52 INFO Finished running pipeline process...23:27:52 INFO Preparing to run cleanup process...23:27:52 INFO Finished running cleanup process...23:27:52 INFO succeded to finish Walter
pipeline.ymlpipeline: - name: Start VM command: vagrant up --no-provision - name: Provision VM command: vagrant provision - name: Test VM command: rake serverspeccleanup: - name: Destroy VM command: vagrant destroy --force
Walter の主な機能• ジョブの実行制御• 並列処理• 通知
• Slack, HipChat
• GitHub 連携
並列処理- name: Parallel builds each OSes parallel: - call: coreos::build - call: centos65::build - call: centos70::build - call: ubuntu1404::build - call: freebsd101::build
通知messenger: type: slack channel: serverspec url: $SLACK_WEBHOOK_URL icon_url: http://example.jp/walter.png username: Walter
GitHub 連携service: type: github token: $WALTER_GITHUB_TOKEN repo: walter from: walter-cd
その他の機能• https://github.com/walter-cd/walter の README 参照
walter-server
walter-server• walter の Web API/UI
• walter の実行結果を集約• walter-agent が実行結果をポスト
• Webhook によるジョブのエンキュー• walter-agent がジョブをデキューして実行
• Perl 製の Ukigumo Inspired
walter-agent
walter-agent• walter-server からジョブをデキューして実行• walter-server へ結果をレポート• 結果を Slack/HipChat に通知• GitHub の Status API を叩いて結果をポスト
walter-server のインストールと実行$ go get github.com/walter-cd/walter-server
$ walter-server -hUsage of walter: -db_dir string The directory of the sqlite3 db file put on. (default "/var/lib/walter") -host string The host of the application. (default "0.0.0.0:8080")
$ walter-server23:30:24 INFO walter-server is listening on 0.0.0.0:8080
walter-agent のインストールと実行$ go get github.com/walter-cd/walter-agent
$ walter-agent -hUsage of walter-agent: -base_url string Base URL of walter-server to access from web browsers -interval int Job polling interval by seconds (default 1) -max_workers int Maximum number of walter workers (default 5) -server string URL of walter-server (default "http://localhost:8080/") -working_dir string Working directory (default "/var/lib/walter/workspace")
$ walter-agent23:36:36 INFO walter-agent started
pipeline.ymlpipeline: - name: test command: echo Hello Walterservice: type: github token: $WALTER_GITHUB_TOKENmessenger: type: slack channel: random url: $SLACK_WEBHOOK_URL icon_url: https://example.jp/walter.png username: Walter suppress: - result
walter の今後• まだまだ荒削りでやるべきことはたくさん• 結果だけじゃなく途中の状態も見たい• 秘密情報の取り扱い• 認証まわり• ジョブの中止• プラグイン機構• ドキュメント整備• などなど…
• できる限りシンプルに、という軸はぶらさない
おわりに• 興味を持たれた方はぜひ使ってみてください• 何かありましたら GitHub イシューや gosukenator@twitter,
takahi_i@twittter までお気軽にご連絡を
情報源• https://github.com/walter-cd
• http://atl.recruit-tech.co.jp/blog/2631/
• http://atl.recruit-tech.co.jp/blog/3723/
• https://speakerdeck.com/ainoya/birudopaipurainturuwogodezuo-tutahua
• http://www.slideshare.net/recruitcojp/walter-45806296
• http://mizzy.org/blog/2015/06/16/1/