gitlabを骨までしゃぶりつくす@ゆるunistudy#7

30
© 2017 UNICAST INC. 2017128ゆるUniStudy#7 GitLabを骨までしゃぶりつくす LT

Upload: wataru-noguchi

Post on 21-Jan-2018

155 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

© 2017 UNICAST INC.

2017年12月8日

ゆるUniStudy#7

GitLabを骨までしゃぶりつくす

LT

Page 2: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

自己紹介

© 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

Page 3: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

アジェンダ

© 2017 UNICAST INC. 2

1. この発表でいいたいこと

2. GitLabの目指すところ

3. GitLab CI

4. GitLab Pages

5. GitLab Container Registry

6. 2段階認証(YubiKey)

7. Mattermost

Page 4: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

この発表でいいたいこと

© 2017 UNICAST INC. 3

GitLab使っていこうな

Page 5: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLabの目指すところ

© 2017 UNICAST INC. 4

単にGitHubをコピーすることではなく、独自性を追求

Page 6: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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ドキュメントビルドの自動実行

Page 7: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab CI

© 2017 UNICAST INC. 6

Page 8: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab CI

© 2017 UNICAST INC. 7

Page 9: GitLabを骨までしゃぶりつくす@ゆるUniStudy#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

Page 10: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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

Page 11: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab CI

© 2017 UNICAST INC. 10

Page 12: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Pages

© 2017 UNICAST INC. 11

• GitLab CI+Sphinxで真価を発揮

• GitHub Pagesみたいなもの

Page 13: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Pages

© 2017 UNICAST INC. 12

Page 14: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Pages

© 2017 UNICAST INC. 13

Page 15: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Container Registry

© 2017 UNICAST INC. 14

• プライベートレジストリが持てる

• Dockerfile書いておいて docker build

• プロジェクトごとの開発用のコンテナイメージ(e.g. Rails)をpushしておけ

• 毎回ビルドする手間から解放される

Page 16: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Container Registry

© 2017 UNICAST INC. 15

Page 17: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Container Registry

© 2017 UNICAST INC. 16

Page 18: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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

Page 19: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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

Page 20: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Container Registry

© 2017 UNICAST INC. 19

Page 21: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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

Page 22: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

GitLab Container Registry

© 2017 UNICAST INC. 21

どんどんpushしてください

Page 23: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

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段階認証

Page 24: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

2段階認証(YubiKey)

© 2017 UNICAST INC. 23

Page 25: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

2段階認証(YubiKey)

© 2017 UNICAST INC. 24

Page 26: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

2段階認証(YubiKey)

© 2017 UNICAST INC. 25

Page 27: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

2段階認証(YubiKey)

© 2017 UNICAST INC. 26

Page 28: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

Mattermost

© 2017 UNICAST INC. 27

• 現在のGitLab OmnibusパッケージにはMattermostというSlack Alternative

なチャットツールをバンドル

• 専用アプリもある

• ChatWorkが落ちたらこっちで落ち合おう

Page 29: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

参考文献

© 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で!

Page 30: GitLabを骨までしゃぶりつくす@ゆるUniStudy#7

29

ご清聴ありがとうございました。

© 2017 UNICAST INC.