28
walter ファミリーの紹介 walter/walter-server/walter-agent Shibuya.go#1 2016/2/16

Walter ファミリーの紹介 at Shibuya.go#1

Embed Size (px)

Citation preview

Page 1: Walter ファミリーの紹介 at Shibuya.go#1

walter ファミリーの紹介walter/walter-server/walter-agent

Shibuya.go#12016/2/16

Page 2: Walter ファミリーの紹介 at Shibuya.go#1

自己紹介• 宮下 剛輔

• mizzy@github, gosukenator@twitter

• フリーランスのソフトウェアエンジニア• 株式会社リクルートテクノロジーズ ATL 技術顧問• 合同会社 Serverspec Operations 代表

Page 3: Walter ファミリーの紹介 at Shibuya.go#1
Page 4: Walter ファミリーの紹介 at Shibuya.go#1

walter とは• ビルドパイプラインツール

• CI でのビルドパイプラインを実行制御• YAMLで処理内容と実行順序を記述

• Go 言語でつくられている• オープンソース

• https://github.com/walter-cd

• CLI で動く

Page 5: Walter ファミリーの紹介 at Shibuya.go#1

walter 開発メンバー• ainoya@github

• takahi-i@github

• mizzy@github

• gerryhocks@github

Page 6: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 7: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 8: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 9: Walter ファミリーの紹介 at Shibuya.go#1

Walter の主な機能• ジョブの実行制御• 並列処理• 通知

• Slack, HipChat

• GitHub 連携

Page 10: Walter ファミリーの紹介 at Shibuya.go#1

並列処理- name: Parallel builds each OSes parallel: - call: coreos::build - call: centos65::build - call: centos70::build - call: ubuntu1404::build - call: freebsd101::build

Page 11: Walter ファミリーの紹介 at Shibuya.go#1

通知messenger: type: slack channel: serverspec url: $SLACK_WEBHOOK_URL icon_url: http://example.jp/walter.png username: Walter

Page 12: Walter ファミリーの紹介 at Shibuya.go#1

GitHub 連携service: type: github token: $WALTER_GITHUB_TOKEN repo: walter from: walter-cd

Page 13: Walter ファミリーの紹介 at Shibuya.go#1

その他の機能• https://github.com/walter-cd/walter の README 参照

Page 14: Walter ファミリーの紹介 at Shibuya.go#1

walter-server

Page 15: Walter ファミリーの紹介 at Shibuya.go#1

walter-server• walter の Web API/UI

• walter の実行結果を集約• walter-agent が実行結果をポスト

• Webhook によるジョブのエンキュー• walter-agent がジョブをデキューして実行

• Perl 製の Ukigumo Inspired

Page 16: Walter ファミリーの紹介 at Shibuya.go#1
Page 17: Walter ファミリーの紹介 at Shibuya.go#1
Page 18: Walter ファミリーの紹介 at Shibuya.go#1

walter-agent

Page 19: Walter ファミリーの紹介 at Shibuya.go#1

walter-agent• walter-server からジョブをデキューして実行• walter-server へ結果をレポート• 結果を Slack/HipChat に通知• GitHub の Status API を叩いて結果をポスト

Page 20: Walter ファミリーの紹介 at Shibuya.go#1
Page 21: Walter ファミリーの紹介 at Shibuya.go#1
Page 22: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 23: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 24: Walter ファミリーの紹介 at Shibuya.go#1
Page 25: Walter ファミリーの紹介 at Shibuya.go#1

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

Page 26: Walter ファミリーの紹介 at Shibuya.go#1

walter の今後• まだまだ荒削りでやるべきことはたくさん• 結果だけじゃなく途中の状態も見たい• 秘密情報の取り扱い• 認証まわり• ジョブの中止• プラグイン機構• ドキュメント整備• などなど…

• できる限りシンプルに、という軸はぶらさない

Page 27: Walter ファミリーの紹介 at Shibuya.go#1

おわりに• 興味を持たれた方はぜひ使ってみてください• 何かありましたら GitHub イシューや gosukenator@twitter,

takahi_i@twittter までお気軽にご連絡を

Page 28: Walter ファミリーの紹介 at Shibuya.go#1

情報源• 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/