Slide 1

Slide 1 text

サーバへの接続を楽にして くれるツールを作ってみた Go(Un)Conference LT大会 6kg 2019/05/20

Slide 2

Slide 2 text

プロフィール sakoda kenji 迫田けんじ / webエンジニア ● twitter.com/_sakoken ● github.com/sakoken 株式会社アイスタイル テクノロジー本部 R&D部 週末バドミントンやってます。

Slide 3

Slide 3 text

話す内容 ● 背景 ● よくあるシーン ● 欲しかったもの ● デモ ● 使ったライブラリー / ツール ● やり残したこと ● まとめ

Slide 4

Slide 4 text

背景

Slide 5

Slide 5 text

背景 自社ではまだdocker化やansible化が 進んでいないため、サーバに入って設 定をいじったりする作業が多い

Slide 6

Slide 6 text

よくあるシーン

Slide 7

Slide 7 text

よくあるシーン サーバにsshで入って仕事したい

Slide 8

Slide 8 text

よくあるシーン sakoken$ ssh

Slide 9

Slide 9 text

よくあるシーン sakoken$ ssh サーバのホスト名 なんだっけ

Slide 10

Slide 10 text

よくあるシーン sakoken$ ssh メモ帳 host: xxx.yyy.zzz password: abcd123456789

Slide 11

Slide 11 text

よくあるシーン sakoken$ ssh [email protected]

Slide 12

Slide 12 text

よくあるシーン sakoken$ ssh [email protected] [email protected]'s password: パスワード なんだっけ

Slide 13

Slide 13 text

よくあるシーン sakoken$ ssh [email protected] [email protected]'s password: メモ帳 host: xxx.yyy.zzz password: abcd123456789

Slide 14

Slide 14 text

このようなことあったりしませんか

Slide 15

Slide 15 text

欲しかったもの

Slide 16

Slide 16 text

欲しかったもの ● ターミナル上で ● hostの管理ができて ● サーバのパスワードを覚えてなくても ● sshでログインをしてくれるもの ● パスワードは暗号化されていて ● 最近使ったものが分かり ● 各hostにメモが書けて ● hostの絞り込み検索ができること

Slide 17

Slide 17 text

作ってみました! https://github.com/sakoken/sshh

Slide 18

Slide 18 text

デモ https://github.com/sakoken/sshh

Slide 19

Slide 19 text

使ったライブラリ・ツールたち ● github.com/chzyer/readline ○ GNU-Readlineの様なライブラリで ○ コマンドライン上でインタラクティブな機能を簡単に作れる ● gopkg.in/urfave/cli.v2 ○ コマンドラインツールを作るためのフレームワーク ● github.com/goreleaser/goreleaser ○ 各種OS用にビルドしたり ○ brewでの配布を容易にしてくれたりする

Slide 20

Slide 20 text

github.com/chzyer/readline

Slide 21

Slide 21 text

github.com/chzyer/readline https://github.com/chzyer/readline/blob/master/example/readline-demo/readline-demo.go

Slide 22

Slide 22 text

github.com/chzyer/readline ● readline.Readline ○ 入力待ち ● readline.ReadlineWithDefault ○ デフォルト値入力済みの入力待ち ● readline.ReadPassword ○ 入力値のマスキング

Slide 23

Slide 23 text

やり残したこと ● 鍵認証への対応 ● テスト

Slide 24

Slide 24 text

まとめ ● インタラクティブなcliを作るのに chzyer/readlineがおすすめ ● sshでHostやPassword覚えるのに疲れたら sakoken/sshhを使ってみてください

Slide 25

Slide 25 text

ご静聴ありがとうございます