gitlabを骨までしゃぶりつくす@ゆるunistudy#7
TRANSCRIPT
© 2017 UNICAST INC.
2017年12月8日
ゆるUniStudy#7
GitLabを骨までしゃぶりつくす
LT
自己紹介
© 2017 UNICAST INC. 1
• ソフトウェアエンジニアといいつつ主にサーバの構築・運用とか
ネットワーク機器の設定・運用をメインでやっています
• オンプレおじさん@31歳
• 日々Ansibleのプレイブックを書く、サーバのお守りをする
• ボタン一発で欲しいサーバができるようにしたい
• 大都会日立市(茨城県)
• 好きなPodcast: Rebuild.fm
LPIC
Leve3 Certified Engineer
Virtualization &High Availability
株式会社ユニキャスト
ソフトウェアエンジニア
野口 航(Wataru NOGUCHI)
@wnoguchi
https://blog.pg1x.com/
Acclaim
https://goo.gl/fwxMRB
過去のスライド
https://www.slideshare.net/
watarunoguchi0727
アジェンダ
© 2017 UNICAST INC. 2
1. この発表でいいたいこと
2. GitLabの目指すところ
3. GitLab CI
4. GitLab Pages
5. GitLab Container Registry
6. 2段階認証(YubiKey)
7. Mattermost
この発表でいいたいこと
© 2017 UNICAST INC. 3
GitLab使っていこうな
GitLabの目指すところ
© 2017 UNICAST INC. 4
単にGitHubをコピーすることではなく、独自性を追求
GitLab CI
© 2017 UNICAST INC. 5
• .gitlab-ci.yml書いてpushすると
• CircleCIとかTravis CIっぽい感じでCIが走る
• Dockerコンテナが立ち上がってCIが走る
• できること
• Go製のGitLab Runnerを入れさえすればLinux,Mac,Windowsのプラッ
トフォームでCIを実行できる
• 普通のデプロイ
• Kubernetes環境へのコンテナデプロイ
• テストの自動実行
• Sphinxドキュメントビルドの自動実行
GitLab CI
© 2017 UNICAST INC. 6
GitLab CI
© 2017 UNICAST INC. 7
GitLab CI
© 2017 UNICAST INC. 8
.gitlab-ci.yml
Alpine Linuxのイメージから構築する;時間かかる
image: alpine
pages:
script:
- apk --no-cache add py2-pip python-dev zlib jpeg-dev zlib-dev
freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev libxml2-
dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-dev curl make
- pip install sphinx
- pip install sphinxcontrib-blockdiag sphinxcontrib-nwdiag
sphinx_rtd_theme
- make html
- mv _build/html/ public/
artifacts:
paths:
- public
only:
- master
GitLab CI
© 2017 UNICAST INC. 9
.gitlab-ci.yml
改良版。予めGitLab Container Registryにあるイメージ使ってるのでエコ
image: gitlab-registry.example.com/awesome-docker-
containers/sphinx:latest
pages:
script:
- make html
- mv _build/html/ public/
artifacts:
paths:
- public
only:
- master
GitLab CI
© 2017 UNICAST INC. 10
GitLab Pages
© 2017 UNICAST INC. 11
• GitLab CI+Sphinxで真価を発揮
• GitHub Pagesみたいなもの
GitLab Pages
© 2017 UNICAST INC. 12
GitLab Pages
© 2017 UNICAST INC. 13
GitLab Container Registry
© 2017 UNICAST INC. 14
• プライベートレジストリが持てる
• Dockerfile書いておいて docker build
• プロジェクトごとの開発用のコンテナイメージ(e.g. Rails)をpushしておけ
る
• 毎回ビルドする手間から解放される
GitLab Container Registry
© 2017 UNICAST INC. 15
GitLab Container Registry
© 2017 UNICAST INC. 16
GitLab Container Registry
© 2017 UNICAST INC. 17
Dockerfile
FROM alpine:latest
MAINTAINER Wataru NOGUCHI <[email protected]>
RUN apk --no-cache add py2-pip python-dev zlib jpeg-dev zlib-
dev freetype-dev lcms2-dev openjpeg-dev tiff-dev tk-dev tcl-dev
libxml2-dev libxslt-dev libffi-dev gcc musl-dev libgcc openssl-
dev curl make
RUN pip install sphinx
RUN pip install sphinxcontrib-blockdiag sphinxcontrib-nwdiag
sphinx_rtd_theme
GitLab Container Registry
© 2017 UNICAST INC. 18
コマンド
% docker login gitlab-registry.example.com
Username: fred
Password:
Login Succeeded
% docker build -t gitlab-registry.example.com/awesome-docker-
containers/sphinx .
% docker push gitlab-registry.example.com/awesome-docker-
containers/sphinx
GitLab Container Registry
© 2017 UNICAST INC. 19
GitLab Container Registry
© 2017 UNICAST INC. 20
.gitlab-ci.yml
image: gitlab-registry.example.com/awesome-docker-
containers/sphinx:latest
pages:
script:
- make html
- mv _build/html/ public/
artifacts:
paths:
- public
only:
- master
GitLab Container Registry
© 2017 UNICAST INC. 21
どんどんpushしてください
2段階認証(YubiKey)
© 2017 UNICAST INC. 22
• 現在のGitLabは2段階認証に対応しています
• AuthyなりGoogle Authenticatorなり使ってもよし
• ハードウェアトークンYubiKeyにも対応
• Your Ubiquitous Key
• https://www.yubico.com/
• https://www.yubico.com/why-yubico/how-yubikey-works/
• 秘密鍵、管理してますか? YubiKeyで鍵の一元管理とSSH接続、2段階認
証の高速化を試す – Qiita
https://qiita.com/dseg/items/77d77467970b1b510285
• Amazon
• https://www.amazon.co.jp/dp/B018Y1Q71M
YubiKeyを使った2段階認証
2段階認証(YubiKey)
© 2017 UNICAST INC. 23
2段階認証(YubiKey)
© 2017 UNICAST INC. 24
2段階認証(YubiKey)
© 2017 UNICAST INC. 25
2段階認証(YubiKey)
© 2017 UNICAST INC. 26
Mattermost
© 2017 UNICAST INC. 27
• 現在のGitLab OmnibusパッケージにはMattermostというSlack Alternative
なチャットツールをバンドル
• 専用アプリもある
• ChatWorkが落ちたらこっちで落ち合おう
参考文献
© 2017 UNICAST INC. 28
• GitLab 10.1 に GitLab CI + GitLab Pages + Sphinx でドキュメントビルド
環境を整える | ユニキャストラボ
https://lab.unicast.ne.jp/2017/12/02/make-sphinx-build-environment-
with-gitlab-10-1-gitlab-ci-gitlab-pages/
詳しくはWebで!
29
ご清聴ありがとうございました。
© 2017 UNICAST INC.