#ssmjp 2017/01 Gentoo回

# TL;DR
* Gentoo怖くない。特に開発には意外と使いやすそう
* Gentoo環境を仮想で組む上でnspawnは便利そう
* 実は誰もがPDCAを実践できてるけど、それを認識できてない
* VPN使う上でPPPの理解は大事

# １月回のイントロのトピック
ssmjpはconnpassの勉強会の高打率コミュニティにランクイン！

# Gentoo回前半：Gentoo は凄いし役に立つ
@usaturnさん
## テーマ
Gentoo Linux紹介
「Gentoo is all about choices.」の解説。
質問はTwitterハッシュタグ「#ssmjp #gentoo」にて

## 発表者のGentoo歴
* 3年半
* 400 nodesへのインストール(KVM, Phys, Cloud)

## Gentooとは
会場には、実はGentooを知らない人が多数
※乗ってくれただけのため、嘘付きがいっぱい

* Linuxディストリビューションの一つ。
* 実はLinux以外のディストリビューションもある。
  * Gentoo for Mac OS X
  * Gentoo/FreeBSD, NetBSD, OpenBSD, DragonFlyBSD
  * StormOS-Next ※幻のOS
* インストール手順は選択の嵐
  * ブートローダの設定まで自分でやるとのこと

Larryという牛がGentooの公式キャラクター。
勾玉はディストリビューションのアイコン。

## Gentooが使われているところ
* Pepper
* NASDAQ
* Chrome OSやCore OSのベース
* アドテク企業

## Gentooの特徴
* source-based Linux distribution ※誤解されがちだけど使いやすさ重視の仕組みとな
* カスタマイズ性が高い ※代償として、ひたすら選択することになる
* 対応アーキテクチャが多い
* バージョン番号がない(ローリングリリース)
* アップデート後の設定ファイルの差分比較が可能 ※これ良さそう

## source-based Linux distributionとは何か
大原則：全てをソースからインストールする。

* Linuxカーネル
* 各種アプリ

### よくある疑問と回答
Q. 全部コンパイルするの？
A. aptやyumと同じ感覚でインストールできる！

## カスタマイズ：パッケージ管理ツールを選べる
* Portage→標準
* Paludis→使ったことないけど選べる

### Portageをもっと詳しく

* コンパイルオプション
  * よく使われるものを予めUSEフラグとして持ってる。
  * 実際にオプション指定することはないっぽい。
    * こんな感じにgivenである。"USE=luajit emerge -avt vim"
  * バイナリを作って、同じアーキテクチャのマシンに配ることも可能。（便利そう）

## カスタマイズ：アプリのバージョン選択
「スロット」という概念

* 複数バージョンを入れて、切り替えながら使える　→開発する上で便利！

### ほかのディストロに真似できないこと
* OpenSSL、libressl化
  * 簡単にできる
  * OpenSSL更新から脱却できる
  * 発表者は、本番環境での運用はまだとのこと
* Overlayなどの海外製アプリなんかも使える

## カスタマイズ：アップデート時の設定ファイル管理
* アプリ更新後の設定ファイルの差分確認、マージができる(要はバージョン管理)

## カスタマイズ：プロセス管理
選べる
* openrc(sysvintのGentoo独自ラッパー)
* systemd →オススメ

# カスタマイズ：標準Cライブラリ
これも当然のように選べるとかすごい
* glibc
* uClibc(サイズ小さい！)→DockerのAlpine Linuxが採用している
* musl(これもサイズ小さい)

## 対応アーキテクチャが多い
* ia64やSparkまで対応してる
* エッジルータにも入る

## まとめ
* Gentooとは選択
  * 基本パッケージ
  * パッケージ管理ツール
  * パッケージのバージョン
  * パッケージのUSEフラグ
  * 標準外のパッケージ
  * Intel以外のアーキテクチャ
* 最小環境が構築しやすい
  * USEフラグで機能絞れる
  * セキュリティ向上できる

## Webの参考情報
Arch 7割 / Gentoo 3割

## QA
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">HWベンダが出してるベンダ専用（依存？拡張？）IPMIツールどうなんだろう、と気になります。 RT <a href="https://twitter.com/Shun_Sugawara">@Shun_Sugawara</a> バイナリしか配布してないプロプラは導入できないのかな？ <a href="https://twitter.com/hashtag/ssmjp?src=hash">#ssmjp</a> <a href="https://twitter.com/hashtag/gentoo?src=hash">#gentoo</a></p>&mdash; th0x0472 (@th0x0472) <a href="https://twitter.com/th0x0472/status/824936567881887744">2017年1月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
→バイナリのままインストールできる or 公式リポジトリにバイナリがある

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">コンパイルの手間よりも時間が気になる(特に遅いマシン)けどクロスコンパイルとかできるのかな <a href="https://twitter.com/hashtag/ssmjp?src=hash">#ssmjp</a> <a href="https://twitter.com/hashtag/gentoo?src=hash">#gentoo</a></p>&mdash; こばやし &#39;にらたま&#39; けんいち (@Niratama) <a href="https://twitter.com/Niratama/status/824935375533543424">2017年1月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
→クロスコンパイルできるので、例えばRasPiなんかはクロスコンパイル後に突っ込むと良いらしい

# Gentoo回後半: systemd-nspawn + btrfs ではじめるコンテナ生活

## いろんなコンテナ
* btrfs(バターFS)
* docker
* Lxc
* LXD
* systemd-nspawn→使用者は会場にいない

## btrfsの特徴
zfsを参考に作られている

* Copy on Write
  * ファイル移動時、コピー完了まで元のファイルを消さない
  * 耐障害性が高い
* RAID0と1がstable。5と6はまだバギー
* バックアップ
  * 従来のパーティションをサブボリュームとして、スナップショットを取れる
  * サブボリューム単位のバックアップが取れる
* 透過圧縮が効く
  * 容量の効率利用ができる
* スワップ領域が作れない
  * 最初から取っておかないといけない

## nspawn実演

### machinectlコマンドを一通り使う
* list 
  * 起動中のOS一覧が出る
* list-images
  * 配下のOSイメージが一覧表示できる
  * 現状、空ディレクトリにも反応してしまうので注意
* clone 
  * 速い。btrfsのスナップショット機能を使っている
  * clone元をpoweroffしてからやってもclone先のホスト名が変わらない。残念
* remove 

などなど

あとは大体vagrantやlibvirtと同じ感じ。
ただし、フォルダ配下にあるファイルを見る点がlibvirtと違う。

### アーカイブコマンド
OSイメージを圧縮して配れる

## 最後に
最近のディストリビューションはsystemdなので、デフォルトでnspawnを使えますよ！とのこと。
私も使ってみたい。

# LT：さらばッssmjp～最初からClimax～
Jさん as anonymous

勉強会に参加できないエンジニアはどうやって成長を自認するのか
→時間切れで本題到達できなかった

# LT：PDCAが回らないと思っている人へ
yakumo3

日本人はActionを誤解している

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">PDCAの正しい(?)現実 <a href="https://twitter.com/hashtag/ssmjp?src=hash">#ssmjp</a> <a href="http://t.co/fwSDLlKCnk">pic.twitter.com/fwSDLlKCnk</a></p>&mdash; HATANO Hirokazu (@tcsh) <a href="https://twitter.com/tcsh/status/601760130426736640">2015年5月22日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>


* Actionは改善ではなく処置
* 扱いを決めるだけ
* ActionをPlanにフィードバックするだけ

実際のPDCA

* 大きなDoが走っている
* 大きなDoの中にPDCAがある
  * 朝にPlanして
  * 午前中にDoして逐一Checkする
  * 午後一にActionし、Planする
  * 午後にDoして逐一Checkする
  * 午後一にAction
* ホントはみんな当たり前にやっている

# LT：Gentoo Prefix
Wizard_of_Oz__さん

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">昨日のスライドアップロードしました <a href="https://t.co/18XZShvGOL">https://t.co/18XZShvGOL</a> <a href="https://twitter.com/hashtag/ssmjp?src=hash">#ssmjp</a></p>&mdash; オズ (@Wizard_of_Oz__) <a href="https://twitter.com/Wizard_of_Oz__/status/825335793069666304">2017年1月28日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

Gentooインストールマンを増やしたい
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">8秒に一人Gentooをインストールしてる人が居るっぽい。 <a href="https://twitter.com/hashtag/ssmjp?src=hash">#ssmjp</a> <a href="https://twitter.com/hashtag/gentoo?src=hash">#gentoo</a> <a href="https://t.co/tLhN6AKbLP">pic.twitter.com/tLhN6AKbLP</a></p>&mdash; Aki@めもおきば 技術書典2:あ-06 (@nekoruri) <a href="https://twitter.com/nekoruri/status/824955534574968833">2017年1月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
Gentoo Prefixを使えば、サーバの用意・細かい設定不要

## Gentoo Prefix
* root権限要らない
* 環境を汚さずに入れられる
* bootstrapスクリプトで簡単に入る
  * bootstrap-rap.sh がおすすめ
* コンパイルに時間かかるので寝て待つのが良い
  * Azureの2コアで3時間

Larry君に会いたかったら寝る前にぜひ！

# LT: 5分で猫るVPN
silpheed_ktさん

* PPTP
  * PPP拡張したトンネリングプロトコル
  * 暗号化無いのでMRPEなどを使う
* L2TP/IPsec
  * L2TPはPPP拡張
  * IPsecが暗号化

## L2TP/IPsecは安全？
実装によっては安全でない

## L2TP/IPsecを使ってみた
* Corega→にゃーん
* RTX1000→にゃーん
* RTX1500→にゃーん→最終的にはできた

## まとめ
VPNをする上ではPPPを知っておくと良い

# LT：勉強会聴衆の立ち居振る舞い～サポートエンジニアの場合
トラブルシューティングが趣味のMAMEDEKAさん

## 勉強会へのかかわり
昨年は88回参加！
勉強会への参加は楽しい。
質疑応答により関わるのが醍醐味。

## 質疑応答の勘所
* とどめを刺さないゆとりを持つ
* 相手のレベルを考慮する
* ほかの参加者のレベルを考慮する
* 突っ込みを入れたくても一呼吸おいて冷静になる(でもなぜか酩酊状態になるとな)

# ssmjp同人部からのお知らせ
4/9の技術書典で運用本を出すのでみなさん来てくださいとのこと。

公式垢はこの辺
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">4/9（日）に開催される技術書典2にサークルスペースいただきました。「か-42」です。画像のとおりですので、皆様どうぞよろしくお願い致します。運用にまつわる薄い本が出るんじゃないかと思います。 <a href="https://t.co/R84xOcwRvb">pic.twitter.com/R84xOcwRvb</a></p>&mdash; ssmjp同人部 (@ssmjp_doujin) <a href="https://twitter.com/ssmjp_doujin/status/820888274889650177">2017年1月16日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>


# 文責
この記事に関する質問、誤記の通報は @it__ssei へお願いします。