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.

GitとCIとかチャットとかをオンプレで運用する話

2,593 views

Published on

GitLab/Mattermost/Jenkinsを使ってみた話

Published in: Software
  • Be the first to comment

GitとCIとかチャットとかをオンプレで運用する話

  1. 1. わんくま同盟 札幌勉強会 #01 GitとCIとかチャットとかをオンプレで運用する話 Lv1くまー みやどめ
  2. 2. わんくま同盟 札幌勉強会 #01 自己紹介 • 宮留 靖章(みやどめ やすあき) • メーカー系の会社でプログラマやってます – Windows向けアプリ(C++/C#) – 組み込みLinux (C++)など • Facebook
  3. 3. わんくま同盟 札幌勉強会 #01 概要 • 会社での開発のため、Git・CI・チャットのサー バーをオンプレで導入してみた話です • 導入したソフトの紹介と、それぞれの連携など についてお話します • 会社のセキュリティ基準とかお金とかの問題 で、クラウドサービスを使えない方に参考にな るかもしれません
  4. 4. わんくま同盟 札幌勉強会 #01 事の始まり 今どきの開発ツール を使いたいなぁ
  5. 5. わんくま同盟 札幌勉強会 #01 導入を阻む壁 • 会社でクラウドサービスの利用を許可してい ない • 開発ツールをクラウド環境で使えない – 言語がサポートされていない – ライセンスの問題 • お金を出してもらえない
  6. 6. わんくま同盟 札幌勉強会 #01 クラウドを使えないならオンプレで! • 導入したいもの – GitHub風なGitサーバー – CIサーバー – Slack風なチャットサーバー • 選定基準 – 無料 – 使っている人が多そう – 導入・メンテナンスがしやすそう
  7. 7. わんくま同盟 札幌勉強会 #01 導入したソフト
  8. 8. わんくま同盟 札幌勉強会 #01 ソフト紹介
  9. 9. わんくま同盟 札幌勉強会 #01 GitLab • GitLab Inc. 製のGitサーバー https://about.gitlab.com/
  10. 10. わんくま同盟 札幌勉強会 #01 GitLabのプロダクト • GitLab Community Edition (CE) – オンプレで使える無料のエディション • GitLab Enterprise Edition (EE) – オンプレで使える有料版のエディション – エンタープライズ向けの追加機能やサポートがある • GitLab.com – 無料のSaaSで、パブリック・プライベートのリポジトリが使 える – サポートは有料 • GitHost.io – プライベートなホスティングを代行してくれる – 自分でサーバーの面倒を見たくない人向け https://about.gitlab.com/about/ これを使いました
  11. 11. わんくま同盟 札幌勉強会 #01 最近こんなことありましたね http://www.publickey1.jp/blog/17/gitlabcom56.html
  12. 12. わんくま同盟 札幌勉強会 #01 GitLabの機能 • Merge Request – GitHubのPull Requestと同等の機能 • Issue Tracker • グループ・プロジェクトごとのアクセス権管理 • サーバーサイドのHookスクリプト • GitHubからのインポート GitHubに負けず劣らずです
  13. 13. わんくま同盟 札幌勉強会 #01 Jenkins • 定番CIツール https://jenkins.io/
  14. 14. わんくま同盟 札幌勉強会 #01 Jenkins • オンプレのCIといえばJenkinsというくら い定番 • 多くのプラグインで様々なソフトやサービ スとの連携が可能
  15. 15. わんくま同盟 札幌勉強会 #01 mattermost • Mattermost, Inc. が作成したSlackクローン
  16. 16. わんくま同盟 札幌勉強会 #01 mattermost • 機能 – チャンネル/プライベートグループ/ダイレクトメッ セージでの会話 – Markdownのサポート – メッセージのピン止め – スレッド https://about.mattermost.com/features/ Slackそっくり
  17. 17. わんくま同盟 札幌勉強会 #01 インストール方法
  18. 18. わんくま同盟 札幌勉強会 #01 インストール • LinuxやWindowsにインストールしたり、 Dockerを使ってインストールしたり、色々な方 法があります • 今回はUbuntuへインストールする方法を紹 介します いやいや、簡単にインストールできます インストール大変なんでしょ?
  19. 19. わんくま同盟 札幌勉強会 #01 GitLabのインストール • Omnibus packageというのを使います – 必要なソフトを自動でインストールしてくれます # sudo apt-get install curl openssh-server ca-certificates postfix # curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab- ce/script.deb.sh | sudo bash # sudo apt-get install gitlab-ce # sudo gitlab-ctl reconfigure https://about.gitlab.com/downloads/#ubuntu1604 アップデートや管理が楽なので、 この方法がオススメ
  20. 20. わんくま同盟 札幌勉強会 #01 mattermostのインストール • 実はGitLabのOmnibus packageに含まれま す • 設定ファイルを変更すると有効になります # in /etc/gitlab/gitlab.rb mattermost_external_url 'http://mattermost.example.com' https://docs.gitlab.com/omnibus/gitlab-mattermost/
  21. 21. わんくま同盟 札幌勉強会 #01 Jenkinsのインストール • これもaptでインストールできます https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu # wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt- key add - # sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' # sudo apt-get update # sudo apt-get install jenkins
  22. 22. わんくま同盟 札幌勉強会 #01 Hubotのインストール # sudo apt install nodejs # sudo ln -s /usr/bin/nodejs /usr/bin/node # sudo npm install -g hubot coffee-script yo generator-hubot forever # mkdir botchan # cd botchan/ # yo hubot ? Owner User <user@example.com> ? Bot name botchan ? Description A simple helpful robot for your Company ? Bot adapter mattermost # export MATTERMOST_ENDPOINT=/hubot/incoming # export MATTERMOST_HUBOT_USERNAME="ボットちゃん" # export MATTERMOST_INCOME_URL=[mattermostのIncoming Webhookで作成したトークン]“ # export MATTERMOST_MAIN_CHANNEL="town-square" # export MATTERMOST_TOKEN=“[mattermostのOutgoing Webhookで作成したトークン]" # forever start -c coffee node_modules/.bin/hubot -n botchan -a mattermost
  23. 23. わんくま同盟 札幌勉強会 #01 サービス間の連携
  24. 24. わんくま同盟 札幌勉強会 #01 サービス間の連携 • GitLab ⇔ Jenkins – ブランチ・マージリクエストをJenkinsで自動ビルドする – SSO • Jenkins⇔mattermost – Jenkinsのビルド結果をmattermostへ通知する – MattermostからJenkinsのジョブを実行する • GitLab ⇔mattermost – GitLabへPushされたらMattermostへ通知する – SSO
  25. 25. わんくま同盟 札幌勉強会 #01 SSO • GitLabのアカウントを使ってMattermost/Jenkinsにログイン できます • Mattermost – https://docs.mattermost.com/deployment/sso-gitlab.html • Jenkins – https://wiki.jenkins-ci.org/display/JENKINS/GitLab+OAuth+Plugin
  26. 26. わんくま同盟 札幌勉強会 #01 マージリクエストの自動ビルド • マージリクエストをトリガーにJenkinsでビルド – 結果をGtiLabとMattermostに通知 • GitLab – Personal Access Tokens • Jenkins – GitLab Plugin – Mattermost Notification Plugin • Mattermost – Incoming Webhook
  27. 27. わんくま同盟 札幌勉強会 #01 ブランチにpush ビルド GitLab Jenkins Mattermost 結果表示 マージリクエストの自動ビルド 結果表示 push情報表示
  28. 28. わんくま同盟 札幌勉強会 #01 Hubot+mattermost • hubot-maps/hubot-docomo-dialogue
  29. 29. わんくま同盟 札幌勉強会 #01 運用してみた感想
  30. 30. わんくま同盟 札幌勉強会 #01 感想 • GitLab – 新しい機能も定期的に増えてていい感じ – アップデートでトラブることも最近はなくなってきた • Jenkins – 何でもできて柔軟性もあるけど、管理コストがつらい • Jenkins職人 – Pluginの品質に依存 • Mattermost – まだ発展途上なのでこれからに期待 – ドラスティックな変更をしてくるので注意 • アップデートの際は変更内容をきちんと確認する必要あり
  31. 31. わんくま同盟 札幌勉強会 #01 現在 • マージリクエストを使った開発が浸透 – Gitの使い方や運用ルール作りが大変だった – 手順を無視したり想定外の利用をする人が続出 – 手順ではなくシステムで制約するのが重要 • GitLabのEnterpriseはその辺の機能が多いので欲しい
  32. 32. わんくま同盟 札幌勉強会 #01 現在 • コミュニケーションがスムーズになった – メール面倒!代わりにメール見落とすという状況に(;´・ ω・) – 隣同士でチャットで会話したりするのはちょっと不健全かも • チャンネルが増えすぎてちょっと辛い • 読むだけで時間とられるので、参加するチャンネルを選ぶのが重 要
  33. 33. わんくま同盟 札幌勉強会 #01 課題 • 可用性とバックアップ – 自分ひとりで運用してるので、休み中にトラブル起きたら ヤバい – Mattermostが開発のインフラになったが、実はちゃんと バックアップとってない • ビルドが追い付かない – 札束で引っぱたく準備中 • クラウドは使わせてもらえないけど、PCは買ってもらえる不思議
  34. 34. わんくま同盟 札幌勉強会 #01 まとめ • 構築は簡単! – アップデートもコマンド1発でできます • 連携もできていい感じ! – チュートリアルも充実してます • 運用は頑張って! – それなりにトラブることもあるので、そこはそれで
  35. 35. わんくま同盟 札幌勉強会 #01

×