Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

3,720 views

Published on

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

Published in: Technology
  • Be the first to comment

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

  1. 1. walter ファミリーの紹介 walter/walter-server/walter-agent Shibuya.go#1 2016/2/16
  2. 2. 自己紹介 • 宮下 剛輔 • mizzy@github, gosukenator@twitter • フリーランスのソフトウェアエンジニア • 株式会社リクルートテクノロジーズ ATL 技術顧問 • 合同会社 Serverspec Operations 代表
  3. 3. walter とは • ビルドパイプラインツール • CI でのビルドパイプラインを実行制御 • YAMLで処理内容と実行順序を記述 • Go 言語でつくられている • オープンソース • https://github.com/walter-cd • CLI で動く
  4. 4. walter 開発メンバー • ainoya@github • takahi-i@github • mizzy@github • gerryhocks@github
  5. 5. 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
  6. 6. walter の実行 # pipeline.yml pipeline: - name: test command: echo Hello Walter $ walter 23:27:52 INFO Pipeline file path: "./pipeline.yml" ... <中略> 23:27:52 INFO running Walter 23:27:52 INFO Starting Walter in local mode 23:27:52 INFO Preparing to run pipeline process... 23:27:52 INFO [command] exec: test 23:27:52 INFO [test][command] exec output: Hello Walter 23: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
  7. 7. pipeline.yml pipeline: - name: Start VM command: vagrant up --no-provision - name: Provision VM command: vagrant provision - name: Test VM command: rake serverspec cleanup: - name: Destroy VM command: vagrant destroy --force
  8. 8. Walter の主な機能 • ジョブの実行制御 • 並列処理 • 通知 • Slack, HipChat • GitHub 連携
  9. 9. 並列処理 - name: Parallel builds each OSes parallel: - call: coreos::build - call: centos65::build - call: centos70::build - call: ubuntu1404::build - call: freebsd101::build
  10. 10. 通知 messenger: type: slack channel: serverspec url: $SLACK_WEBHOOK_URL icon_url: http://example.jp/walter.png username: Walter
  11. 11. GitHub 連携 service: type: github token: $WALTER_GITHUB_TOKEN repo: walter from: walter-cd
  12. 12. その他の機能 • https://github.com/walter-cd/walter の README 参照
  13. 13. walter-server
  14. 14. walter-server • walter の Web API/UI • walter の実行結果を集約 • walter-agent が実行結果をポスト • Webhook によるジョブのエンキュー • walter-agent がジョブをデキューして実行 • Perl 製の Ukigumo Inspired
  15. 15. walter-agent
  16. 16. walter-agent • walter-server からジョブをデキューして実行 • walter-server へ結果をレポート • 結果を Slack/HipChat に通知 • GitHub の Status API を叩いて結果をポスト
  17. 17. walter-server のインストールと実行 $ go get github.com/walter-cd/walter-server $ walter-server -h Usage 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-server 23:30:24 INFO walter-server is listening on 0.0.0.0:8080
  18. 18. walter-agent のインストールと実行 $ go get github.com/walter-cd/walter-agent $ walter-agent -h Usage 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-agent 23:36:36 INFO walter-agent started
  19. 19. pipeline.yml pipeline: - name: test command: echo Hello Walter service: type: github token: $WALTER_GITHUB_TOKEN messenger: type: slack channel: random url: $SLACK_WEBHOOK_URL icon_url: https://example.jp/walter.png username: Walter suppress: - result
  20. 20. walter の今後 • まだまだ荒削りでやるべきことはたくさん • 結果だけじゃなく途中の状態も見たい • 秘密情報の取り扱い • 認証まわり • ジョブの中止 • プラグイン機構 • ドキュメント整備 • などなど… • できる限りシンプルに、という軸はぶらさない
  21. 21. おわりに • 興味を持たれた方はぜひ使ってみてください • 何かありましたら GitHub イシューや gosukenator@twitter, takahi_i@twittter までお気軽にご連絡を
  22. 22. 情報源 • 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/

×