SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
仮想端末管理ソフトウェア
2013/04/25
Katsutoshi Nagaoka
1
ゴール
• 仮想端末管理ソフトウェアを使っていない方
• へぇー、こんなのあるんだーと思っていただければ
• 軽く使っている方
• こんな使い方もありだなーと思っていただければ
• ヘビーユーザーの方
• tmux の話はしません、ごめんなさい
2
仮想端末管理ソフトウェアとは
• 1 つの端末の中で複数の仮想端末を作成し管理するソフトウェア
• SSH など、別サーバで作業を行うには必須とも言える
3
仮想端末管理ソフトウェアとは
• 1 つの端末の中で複数の仮想端末を作成し管理するソフトウェア
• SSH など、別サーバで作業を行うには必須とも言える
• 2~5 年前は screen 全盛期で、いまは tmux が人気
• どちらも似たような機能がある
• キーバインドを覚え直すのが面倒なので screen 派
• screen と tmux どっちが良いの ?! って話は別の機会に
4
仮想端末管理ソフトウェアのメリット
• 画面分割
• Attach/Detach 
• セッション管理
• 異なる環境での差異を吸収
実際にどのような場面で使えるのか、Case-by-Case で紹介していきます
5
Case1. コードを書きつつ、負荷を見ながら、実行する
6
• コードを書くコンソールを立ち上げる
コードを書きつつ、負荷を見ながら、実行する
7
コードを書きつつ、負荷を見ながら、実行する
• 負荷を見るコンソールを立ち上げる
8
コードを書きつつ、負荷を見ながら、実行する
• 最終的に 3 つのコンソールを立ち上げる
①
②
③
9
• screen なら 1 つのコンソールを分割できる!
コードを書きつつ、負荷を見ながら、実行する
①
②
③
10
画面分割のやりかた
• コンソールで screen コマンドを実行する
11
画面分割のやりかた
• screen が立ち上がる
12
• dev-kumo01 に SSH を行う
画面分割のやりかた
13
• 下部の Navigation に新しく 1 dev-kumo01 が追加された
画面分割のやりかた
14
• ctrl と t を同時押しした後に v で、画面を横分割する
画面分割のやりかた
15
• 右画面で dev-kumo01 に SSH する
画面分割のやりかた
16
• 下部の Navigation に新しく 2 dev-kumo01 が追加された
画面分割のやりかた
17
• ctrl と t を同時押しした後に s で、右画面を横分割する
画面分割のやりかた
18
• 右下画面で dev-kumo01 に SSH する
画面分割のやりかた
19
• 下部の Navigation に新しく 3 dev-kumo01 が追加された
画面分割のやりかた
20
• 各画面でコマンドを実行する
画面分割のやりかた
21
それ普通にできるじゃん
• 確かに最近の高機能な端末だと画面分割は標準機能である
• iTerm 
• Poderosa 
22
screen による画面分割の良いところ
• 細かいところも全てキーボード操作のみで完結できる
• キーバインドで各画面を分割結合できる
• キーバインドで各画面を移動できる
• キーバインドで各画面のサイズを調整できる
• キーバインドで各画面のスクロールができる
• キーバインドで各画面のロックができる
• キーバインドで画面内の文字をコピー貼付けできる ... etc
23
Case2. コードを書いてたら、緊急の調査依頼が...
24
コードを書いてたら、緊急の調査依頼が…
• 調査するために、もっとコンソールを起動する
25
コードを書いてたら、緊急の調査依頼が…
• 時間が経つ程、
③
26
コードを書いてたら、緊急の調査依頼が…
• 時間が経つ程、コードを書いていたコンソールが行方不明に
①
②
③
27
• screen ならコンソールにすぐ復帰 (Attach/Detach) できる!
コードを書いてたら、緊急の調査依頼が…
28
Detach のやりかた
• ctrl と t を同時押しした後に d で、Detach する
29
• コードを書いていたコンソールから Detach した
Detach のやりかた
30
• screen -r で、コードを書いていたコンソールに Attach する
Attach のやりかた
31
• コードを書いていたコンソールに復帰できた
Attach のやりかた
32
それタブで良いじゃん
• 確かに iTerm で画面分割とタブを使いこなせば問題ない
• まだまだ、screen には後述するセッション管理機能があるんだ
33
Attach/Detach の良いところ
• 細かいところも全てキーボード操作のみで完結できる
• キーバインドで Detach できる
• screen -r コマンドで Attach できる
• screen -x コマンドで複数人が同時に Attach できる
• ネットワーク越しの Pair Programming も可能
34
Case3. 同時に複数の作業を管理したい
35
• 作業単位でタブを起動する
同時に複数の作業を管理したい
MySQLApacheApp
36
• 作業単位でタブを起動する ... ありゃりゃりゃ
同時に複数の作業を管理したい
App Apache MySQL Tomcat ..... ..... .....
37
• タブが増えると非常に管理しにくい
同時に複数の作業を管理したい
38
• screen -S session_name で、名前をつけたセッションを作成する
セッションに名前をつけて作成するやりかた
39
• 新しく dev_vgame_application セッションが作成された
セッションに名前をつけて作成するやりかた
40
セッションに名前をつけて作成するやりかた
• ctrl と t を同時押しした後に d で、このセッションから Detach する
41
• screen -S session_name で、名前をつけたセッションを作成する
セッションに名前をつけて作成するやりかた
42
• 新しく dev_vgame_apache セッションが作成された
セッションに名前をつけて作成するやりかた
43
• ctrl と t を同時押しした後に d で、このセッションから Detach する
セッションに名前をつけて作成するやりかた
44
• screen -r で、作成したセッション一覧が表示される
セッション管理のやりかた
※ 6740.pts-1.cl-vm119 は最初に作成したセッション
 6916.dev_vgame_application と
 6893.dev_vgame_apache が一覧に表示されているのが分かる
45
• screen -r session_name で、作成したセッションに Attach できる
セッション管理のやりかた
46
• dev_vgame_application に Attach できた
セッション管理のやりかた
47
• screen -r session_name は絞り込みができる
セッション管理のやりかた
※ screen -r dev_vgame_a のように一部を入力すると、
 セッション名の候補が存在する場合は一覧が表示される
 
48
• screen -r session_name は候補が 1 つになれば Attach できる
セッション管理のやりかた
※ screen -r dev_vgame_app のように候補が 1 つになる場合は
 screen -r 6893.dev_vgame_application に補完される
 
49
• dev_vgame_application に Attach できた
セッション管理のやりかた
50
• ここまで使いこなせば、iTerm より優位性が若干でてくる
• けど、まだまだ screen を手放せない理由があるんだ
それ良いじゃん
51
セッション管理の良いところ
• 柔軟なセッション管理ができる
• セッションに名前をつけて作成できる
• 作成したセッション一覧を確認できる
• 作成したセッション一覧から絞り込みできる
• 作成したセッションの名前は自動的に補完される
52
セッション管理の良いところ
• 柔軟なセッション管理ができる
• セッションに名前をつけて作成できる
• 作成したセッション一覧を確認できる
• 作成したセッション一覧から絞り込みできる
• 作成したセッションの名前は自動的に補完される
セッション名の頭に dev_xxx_ やら stg_xxx_ やら prd_xxx_ を付ける
命名規則にすると、絞り込みに便利 ※ xxx 箇所にはプロジェクト名など
53
Case4. 外出先での障害対応、すぐに状況を把握したい
54
• Remote Desktop で会社の PC に接続し、各サーバにログインする
外出先での緊急対応、すぐに状況を把握したい
Company PC
app01 app02
ssh
remote desktop
sshssh
Private PC
dbm01 dbs01 dbs02
ssh ssh ssh ssh
ssh ssh ssh
remote desktop
55
• 会社の PC、、シャットダウンしてた、、、
外出先での緊急対応、すぐに状況を把握したい
Company PC
app01 app02
ssh
remote desktop
sshssh
Private PC
dbm01 dbs01 dbs02
ssh ssh ssh ssh
ssh ssh ssh
remote desktop
×
56
• 私用 PC から直でサーバにログインする...
外出先での緊急対応、すぐに状況を把握したい
ssh
sshssh
ssh ssh ssh ssh
ssh ssh ssh
やべ、Hosts 書いてないから IP わかんね...
Confluence に書いてあるはずだけど見つからない...
app01 app02
Private PC
dbm01 dbs01 dbs02
sshssh ssh ssh ssh
57
• screen なら、作成済みセッションに Attach するだけ!
外出先での緊急対応、すぐに状況を把握したい
Screen Gateway PC
screen
Company PC Private PC
ssh
ssh ssh
app01 app02
sshssh
dbm01 dbs01 dbs02
ssh ssh ssh
screen -r prd_vgame_all
58
• 会社のメイン PC では screen を使わない
• screen を起動する専用 PC を、個人開発用VM などで構築する
• 日頃から Screen Gateway PC 上の screen を使う
• プロジェクト毎にセッションを分けて管理する
• 新しいプロジェクトは、新しくセッションを作成する
• 既存のプロジェクトは、作成済みセッションで作業する
screen 専用 PC を用意しよう
59
• 異なる PC でも環境の差異を吸収できる
• 家から開発用セッションに Attach して作業を再開する
• 外出先から障害が起きたプロジェクトのセッションに Attach する
• 会社 PC にリモートデスクトップで接続しなくて良い
• リモートデスクトップ経由だと重たい
• 会社のメイン PC はシャットダウンして帰れる
Screen Gateway PC の良いところ
60
• 細かいところも全てキーボード操作のみで完結できる
• マウスを使わないので、 炎対策としても有効
• 柔軟なセッション管理ができる
• セッションが膨大な数になっても管理しやすい
• 環境の差異を吸収してくれる
• 異なる PC でも Gateway に接続すれば、同じ環境が得れる
まとめ
61
• インストール編
• CentOS 6.3 に縦分割可能な 256 色 GNU Screen 環境を構築する
http://qiita.com/items/2984ae3a41b9464539e2  
• 最新版 GNU Screen のインストール on CentOS 5.4
http://blog.remora.cx/2010/04/gnu-screen-on-centos-54.html 
• カスタマイズ編
• 俺の .screenrc が火を吹くぜ
http://shyouhei.tumblr.com/post/313410522/screenrc
Where to find more
62
ご清聴、ありがとうございました
63
• 最新版の screen をソースからインストールする
補足1. screen のインストール
※ 縦分割が不要であれば yum でもインストールできる
64
• Vim like な操作ができるキーバインドを設定している
補足2. screen の設定ファイル
65

Mais conteúdo relacionado

Semelhante a 仮想端末管理ソフトウェア

XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用Shinya Okano
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境Fumihito Yokoyama
 
tfug-kagoshima
tfug-kagoshimatfug-kagoshima
tfug-kagoshimatak9029
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみようTakuya Kawabe
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスericsagnes
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesSho Shimauchi
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたThriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたHuy Do
 
勉強会:設定管理について
勉強会:設定管理について勉強会:設定管理について
勉強会:設定管理についてWataru Sato
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps 智治 長沢
 
非同期系統の基礎
非同期系統の基礎非同期系統の基礎
非同期系統の基礎segayuu
 
Game Jamで Asset Serverを使ってみよう♪
Game Jamで Asset Serverを使ってみよう♪Game Jamで Asset Serverを使ってみよう♪
Game Jamで Asset Serverを使ってみよう♪Takashi Jona
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwMasahito Zembutsu
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話Hisashi HATAKEYAMA
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべKaoru NAKAMURA
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 

Semelhante a 仮想端末管理ソフトウェア (20)

XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
 
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
 
tfug-kagoshima
tfug-kagoshimatfug-kagoshima
tfug-kagoshima
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
 
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティスeZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
eZ Publish 2012年4月勉強会 - eZ Publish設計ベストプラクティス
 
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFesFabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
20090828 Webconlocal
20090828 Webconlocal20090828 Webconlocal
20090828 Webconlocal
 
Thriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきたThriftを用いた分散型のNyancatを作ってきた
Thriftを用いた分散型のNyancatを作ってきた
 
.NET vNext
.NET vNext.NET vNext
.NET vNext
 
勉強会:設定管理について
勉強会:設定管理について勉強会:設定管理について
勉強会:設定管理について
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 
非同期系統の基礎
非同期系統の基礎非同期系統の基礎
非同期系統の基礎
 
Game Jamで Asset Serverを使ってみよう♪
Game Jamで Asset Serverを使ってみよう♪Game Jamで Asset Serverを使ってみよう♪
Game Jamで Asset Serverを使ってみよう♪
 
Serfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwwwSerfが面白いと俺の中で話題にwwwwww
Serfが面白いと俺の中で話題にwwwwww
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 

仮想端末管理ソフトウェア