SlideShare uma empresa Scribd logo
1 de 30
© 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 <fred@example.com>
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.

Mais conteúdo relacionado

Mais procurados

一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuokaJunji Manno
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Akihiro Suda
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgitTakafumi ONAKA
 
pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリpythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリKazufumi Ohkawa
 
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理WordPressサイトのバージョン管理
WordPressサイトのバージョン管理lolipopjp
 
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsNaruhiko Ogasawara
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方hibiki443
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12matsuo kenji
 
LibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたLibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたTomofumi Yagi
 
バージョン管理システム比較資料
バージョン管理システム比較資料バージョン管理システム比較資料
バージョン管理システム比較資料suzzsegv
 
Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理Masafumi Yokoyama
 
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマットAkihiro Suda
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門dsuke Takaoka
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 

Mais procurados (20)

一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuoka
 
Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)Moby Project (May 25, 2017, Tokyo)
Moby Project (May 25, 2017, Tokyo)
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
マジカルsvnとキュアgit
マジカルsvnとキュアgitマジカルsvnとキュアgit
マジカルsvnとキュアgit
 
pythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリpythonでつくるiPhoneアプリ
pythonでつくるiPhoneアプリ
 
WordPressサイトのバージョン管理
WordPressサイトのバージョン管理WordPressサイトのバージョン管理
WordPressサイトのバージョン管理
 
今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21
 
Moby Project
Moby ProjectMoby Project
Moby Project
 
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
Gitの使い方あれこれ
Gitの使い方あれこれGitの使い方あれこれ
Gitの使い方あれこれ
 
Eureka go 2015_12_12
Eureka go 2015_12_12Eureka go 2015_12_12
Eureka go 2015_12_12
 
LibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみたLibreOfficeコミュニティに不具合修正パッチを送ってみた
LibreOfficeコミュニティに不具合修正パッチを送ってみた
 
バージョン管理システム比較資料
バージョン管理システム比較資料バージョン管理システム比較資料
バージョン管理システム比較資料
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
 
高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット高速にコンテナを起動できるイメージフォーマット
高速にコンテナを起動できるイメージフォーマット
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 

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

GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECTGitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECTWataru NOGUCHI
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Takashi Kanai
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Kohsuke Kawaguchi
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoKyosuke Inoue
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容Tomokazu Kizawa
 
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性Hirofumi Ichihara
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in TokyoKyosuke Inoue
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Aya Komuro
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話Shintaro Hasunuma
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況Akihiro Suda
 
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)Akihiro Suda
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキングTakayuki Kondou
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)Akihiro Suda
 
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Tomokazu Kizawa
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるMichitaka Terada
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminarManabu Shimobe
 
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...JUNICHI YOSHISE
 

Semelhante a GitLabを骨までしゃぶりつくす@ゆるUniStudy#7 (20)

GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECTGitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)
 
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in TokyoFluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
Wndows 10 Fall Creators Update Insider Previewから見たアップデート内容
 
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
 
fluxflex meetup in Tokyo
fluxflex meetup in Tokyofluxflex meetup in Tokyo
fluxflex meetup in Tokyo
 
Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02Fukuoka debianstudy02 / 福岡Debian勉強会 02
Fukuoka debianstudy02 / 福岡Debian勉強会 02
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
 
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
高速にコンテナを起動できるイメージフォーマット (NTT Tech Conference #2)
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)BuildKitによる高速でセキュアなイメージビルド (LT)
BuildKitによる高速でセキュアなイメージビルド (LT)
 
Windows Subsystem for Linux 2
Windows Subsystem for Linux 2Windows Subsystem for Linux 2
Windows Subsystem for Linux 2
 
Rancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げるRancherを活用して開発効率を上げる
Rancherを活用して開発効率を上げる
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
Recap: Modern CI/CD with Tekton and Prow Automated via Jenkins X - Kubernetes...
 

Mais de Wataru NOGUCHI

ユニキャスト社内の無線LANを支える技術
ユニキャスト社内の無線LANを支える技術ユニキャスト社内の無線LANを支える技術
ユニキャスト社内の無線LANを支える技術Wataru NOGUCHI
 
ユニキャスト本社のネットを支える技術
ユニキャスト本社のネットを支える技術ユニキャスト本社のネットを支える技術
ユニキャスト本社のネットを支える技術Wataru NOGUCHI
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話Wataru NOGUCHI
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~Wataru NOGUCHI
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)Wataru NOGUCHI
 
ネットワーク7不思議
ネットワーク7不思議ネットワーク7不思議
ネットワーク7不思議Wataru NOGUCHI
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 

Mais de Wataru NOGUCHI (8)

ユニキャスト社内の無線LANを支える技術
ユニキャスト社内の無線LANを支える技術ユニキャスト社内の無線LANを支える技術
ユニキャスト社内の無線LANを支える技術
 
ユニキャスト本社のネットを支える技術
ユニキャスト本社のネットを支える技術ユニキャスト本社のネットを支える技術
ユニキャスト本社のネットを支える技術
 
AWS入門!!
AWS入門!!AWS入門!!
AWS入門!!
 
みんなの知らないネットワークの話
みんなの知らないネットワークの話みんなの知らないネットワークの話
みんなの知らないネットワークの話
 
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
ネットワーク技術を学ぶ(STP: Spanning Tree Protocol) ~Cisco で学ぶ L2 ネットワークの世界~
 
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
ネットワークシミュレータで手軽にネットワークのお勉強(GNS3編)
 
ネットワーク7不思議
ネットワーク7不思議ネットワーク7不思議
ネットワーク7不思議
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 

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

  • 1. © 2017 UNICAST INC. 2017年12月8日 ゆるUniStudy#7 GitLabを骨までしゃぶりつくす LT
  • 2. 自己紹介 © 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
  • 3. アジェンダ © 2017 UNICAST INC. 2 1. この発表でいいたいこと 2. GitLab の目指すところ 3. GitLab CI 4. GitLab Pages 5. GitLab Container Registry 6. 2段階認証(YubiKey) 7. Mattermost
  • 4. この発表でいいたいこと © 2017 UNICAST INC. 3 GitLab使っていこうな
  • 5. GitLab の目指すところ © 2017 UNICAST INC. 4 単にGitHubをコピーすることでは なく、独自性を追求
  • 6. 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ドキュメントビルドの自動実行
  • 7. GitLab CI © 2017 UNICAST INC. 6
  • 8. GitLab CI © 2017 UNICAST INC. 7
  • 9. 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
  • 10. 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
  • 11. GitLab CI © 2017 UNICAST INC. 10
  • 12. GitLab Pages © 2017 UNICAST INC. 11 • GitLab CI+Sphinxで真価を発揮 • GitHub Pagesみたいなもの
  • 13. GitLab Pages © 2017 UNICAST INC. 12
  • 14. GitLab Pages © 2017 UNICAST INC. 13
  • 15. GitLab Container Registry © 2017 UNICAST INC. 14 • プライベートレジストリが持てる • Dockerfile書いておいて docker build • プロジェクトごとの開発用のコンテナイメージ(e.g. Rails)をpushしておけ る • 毎回ビルドする手間から解放される
  • 16. GitLab Container Registry © 2017 UNICAST INC. 15
  • 17. GitLab Container Registry © 2017 UNICAST INC. 16
  • 18. GitLab Container Registry © 2017 UNICAST INC. 17 Dockerfile FROM alpine:latest MAINTAINER Wataru NOGUCHI <fred@example.com> 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
  • 19. 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
  • 20. GitLab Container Registry © 2017 UNICAST INC. 19
  • 21. 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
  • 22. GitLab Container Registry © 2017 UNICAST INC. 21 どんどんpushしてください
  • 23. 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段階認証
  • 28. Mattermost © 2017 UNICAST INC. 27 • 現在のGitLab OmnibusパッケージにはMattermostというSlack Alternative なチャットツールをバンドル • 専用アプリもある • ChatWorkが落ちたらこっちで落ち合おう
  • 29. 参考文献 © 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で!