More Related Content Similar to GitとCIとかチャットとかをオンプレで運用する話
Similar to GitとCIとかチャットとかをオンプレで運用する話 (20) GitとCIとかチャットとかをオンプレで運用する話2. わんくま同盟 札幌勉強会 #01
自己紹介
• 宮留 靖章(みやどめ やすあき)
• メーカー系の会社でプログラマやってます
– Windows向けアプリ(C++/C#)
– 組み込みLinux (C++)など
• Facebook
3. わんくま同盟 札幌勉強会 #01
概要
• 会社での開発のため、Git・CI・チャットのサー
バーをオンプレで導入してみた話です
• 導入したソフトの紹介と、それぞれの連携など
についてお話します
• 会社のセキュリティ基準とかお金とかの問題
で、クラウドサービスを使えない方に参考にな
るかもしれません
10. わんくま同盟 札幌勉強会 #01
GitLabのプロダクト
• GitLab Community Edition (CE)
– オンプレで使える無料のエディション
• GitLab Enterprise Edition (EE)
– オンプレで使える有料版のエディション
– エンタープライズ向けの追加機能やサポートがある
• GitLab.com
– 無料のSaaSで、パブリック・プライベートのリポジトリが使
える
– サポートは有料
• GitHost.io
– プライベートなホスティングを代行してくれる
– 自分でサーバーの面倒を見たくない人向け
https://about.gitlab.com/about/
これを使いました
12. わんくま同盟 札幌勉強会 #01
GitLabの機能
• Merge Request
– GitHubのPull Requestと同等の機能
• Issue Tracker
• グループ・プロジェクトごとのアクセス権管理
• サーバーサイドのHookスクリプト
• GitHubからのインポート
GitHubに負けず劣らずです
16. わんくま同盟 札幌勉強会 #01
mattermost
• 機能
– チャンネル/プライベートグループ/ダイレクトメッ
セージでの会話
– Markdownのサポート
– メッセージのピン止め
– スレッド
https://about.mattermost.com/features/
Slackそっくり
18. わんくま同盟 札幌勉強会 #01
インストール
• LinuxやWindowsにインストールしたり、
Dockerを使ってインストールしたり、色々な方
法があります
• 今回はUbuntuへインストールする方法を紹
介します
いやいや、簡単にインストールできます
インストール大変なんでしょ?
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. わんくま同盟 札幌勉強会 #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. わんくま同盟 札幌勉強会 #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. わんくま同盟 札幌勉強会 #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
24. わんくま同盟 札幌勉強会 #01
サービス間の連携
• GitLab ⇔ Jenkins
– ブランチ・マージリクエストをJenkinsで自動ビルドする
– SSO
• Jenkins⇔mattermost
– Jenkinsのビルド結果をmattermostへ通知する
– MattermostからJenkinsのジョブを実行する
• GitLab ⇔mattermost
– GitLabへPushされたらMattermostへ通知する
– SSO
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. わんくま同盟 札幌勉強会 #01
マージリクエストの自動ビルド
• マージリクエストをトリガーにJenkinsでビルド
– 結果をGtiLabとMattermostに通知
• GitLab
– Personal Access Tokens
• Jenkins
– GitLab Plugin
– Mattermost Notification Plugin
• Mattermost
– Incoming Webhook
30. わんくま同盟 札幌勉強会 #01
感想
• GitLab
– 新しい機能も定期的に増えてていい感じ
– アップデートでトラブることも最近はなくなってきた
• Jenkins
– 何でもできて柔軟性もあるけど、管理コストがつらい
• Jenkins職人
– Pluginの品質に依存
• Mattermost
– まだ発展途上なのでこれからに期待
– ドラスティックな変更をしてくるので注意
• アップデートの際は変更内容をきちんと確認する必要あり
31. わんくま同盟 札幌勉強会 #01
現在
• マージリクエストを使った開発が浸透
– Gitの使い方や運用ルール作りが大変だった
– 手順を無視したり想定外の利用をする人が続出
– 手順ではなくシステムで制約するのが重要
• GitLabのEnterpriseはその辺の機能が多いので欲しい
32. わんくま同盟 札幌勉強会 #01
現在
• コミュニケーションがスムーズになった
– メール面倒!代わりにメール見落とすという状況に(;´・
ω・)
– 隣同士でチャットで会話したりするのはちょっと不健全かも
• チャンネルが増えすぎてちょっと辛い
• 読むだけで時間とられるので、参加するチャンネルを選ぶのが重
要
33. わんくま同盟 札幌勉強会 #01
課題
• 可用性とバックアップ
– 自分ひとりで運用してるので、休み中にトラブル起きたら
ヤバい
– Mattermostが開発のインフラになったが、実はちゃんと
バックアップとってない
• ビルドが追い付かない
– 札束で引っぱたく準備中
• クラウドは使わせてもらえないけど、PCは買ってもらえる不思議
34. わんくま同盟 札幌勉強会 #01
まとめ
• 構築は簡単!
– アップデートもコマンド1発でできます
• 連携もできていい感じ!
– チュートリアルも充実してます
• 運用は頑張って!
– それなりにトラブることもあるので、そこはそれで