クラウドを渡り歩け! さくら×ニフティ 合同ハンズオン勉強会!! Dockerを利用したクラウド間移行のポテンシャル?運用に変化は?みんなで考えよう!! #ncstudy 2014年7月19日(土) 10:00 – 17:00 会場:ニフティ株式会社 セミナールーム (東京新宿)
今日のハンズオン
北海道 石狩第一ゾーン
Dockerhub https://hub.docker.com
東日本 east-1 リージョン
技術検証 Creationline, Inc.
環境構築資料 Preparation
クラウド準備
1. さくらのクラウド編 10:40 – 11:10 2. ニフティクラウド編 11:10 – 11:40 3. SSH鍵の相互認証 11:40 – 11:50
準備段階として、クラウド上でマシンの起動を
試みます。更に、自分の PC から各クラウドに
リモート接続を行い、動作を確認します。
更に、相互のクラウド環境で、SSH 鍵を交換し
互いに行き来できるようにします。
準備1/3 さくらのクラウド編
さくらのクラウド
http://cloud.sakura.ad.jp/ 運営:さくらインターネット株式会社 http://www.sakura.ad.jp/
料金体系はサーバ料金のみで、データ転送料なし 1台1,900円から お使いのVPSから1クリックでクラウドに移行可能
「さくらのクラウド」でCoreOS リリース
7月18日よりDocker専用OS、「CoreOS」に対応いたしました。 無料クーポンを配りますので、今日勉強したことをCoreOSを使って復習しましょう。
さくらのクラウド手順(所要30分)
環境構築手順 ➡ 1. コントロールパネルにアクセス ➡ 2. サーバの起動 ➡ 3. SSH ログインと鍵ペア作成
[1/3] さくらのコントロールパネルにアクセス
https://secure.sakura.ad.jp/cloud/
お配りした、紙に書かれている「アカウント」「会員ID」「パスワード」を記入してください。
記入については
「アカウント名」@「会員ID」 「パスワード」 といった順番です。
[1/3] さくらのコントロールパネルにアクセス
https://secure.sakura.ad.jp/cloud/
このように、 ログイン出来る事を確認します。
[2/3] サーバの起動
【サーバ】→【追加】
[2/3] サーバの起動
所定項目を入力します
名前:画面に表示する管理上の名称
[2/3] サーバの起動
所定項目を入力します
アーカイブ: 【CentOS 6.5 64bit (基本セット)】を選択
ホスト名:内部で使用する名称
パスワード:rootのパスワードです ※ 実際には公開鍵認証も可能ですが、 今回はまず、パスワード指定します。 最後に【作成】を押します
[2/3] サーバの起動
もう一息です
【作成】を押します
あとは作業が進行するのを待ちます
[2/3] サーバの起動
できました!
完了が表示されたら、ここを押します
このようにサーバ情報が表示されます
[2/3] サーバの起動
仕上げに【電源操作】→【起動】
まだ準備が終わった段階 ログインのためには、起動が必要です
【実行】を押します
[2/3] サーバの起動
起動が完了しました
【閉じる】を押します
[3/3] SSHログインと鍵ペア作成
接続先IPアドレスを確認します
【 NIC 】を押します
【 IPv4 】アドレスを控えます
[3/3] SSHログインと鍵ペア作成
TeraTerm 等でログインします
接続先は、先ほど確認した 【IPv4 アドレス】です
[3/3] SSHログインと鍵ペア作成
TeraTerm 等でログインします
接続先は、先ほど確認した 【IPv4 アドレス】です
[3/3] SSHログインと鍵ペア作成
TeraTerm 等でログインします
初回接続時なので警告が出ます
[3/3] SSHログインと鍵ペア作成
TeraTerm 等でログインします
ユーザ名【 root 】と パスワードを入力
【 OK 】を押します
[3/3] SSHログインと鍵ペア作成
root でログインできました
ログインできない場合は、接続先の IP アドレスが正しいかどうか確認します。IPアドレスが正常な場合は、パスワードが正しいかどうかや、パスワード入力に時間がかかりタイムアウトしていないか確認します。
[3/3] SSHログインと鍵ペア作成
ssh-keygen で鍵ペアを作成します
【 ssh-keygen 】コマンドを使い、鍵ペアを作成します。パスフレーズの指定も可能ですが、ここでは作業を分かりやすくするため、空白で作成します。
途中の問い合わせは「すべてエンター」を押します。
[3/3] SSHログインと鍵ペア作成
公開鍵と秘密鍵を控えます
【 cat ~/.ssh/id_rsa.pub 】で表示される
内容が公開鍵です。 この次で取得する秘密鍵が手元にあれば、 接続先のリモートに公開鍵を置くことで、 SSH 接続時にパスワードではない認証を行う事ができます。この接続方式が、 SSH 公開鍵認証であり、クラウドの接続では比較的一般に見受けられます
【 cat ~/.ssh/id_rsa 】で表示される内容が秘密鍵です 。取り扱いには細心の注意を払う必要があります。サーバ上に置く場合は、パーミッションは 600(rw-------)にするなど、配慮が必要です
[3/3] SSHログインと鍵ペア作成
SSH の鍵認証(RSA方式)を試しましょう ➡ 事前 sshd 準備
• # vi /etc/ssh/sshd_config 47 #RSAAuthentication yes 47 RSAAuthentication yes
• # service sshd restart
➡ 公開鍵の設置 • # cat .ssh/id_rsa.pub > .ssh/authorized_keys
➡ SSH ログインを試みる • [root@sakura1 ~]# ssh -l root localhost • Last login: Tue Jul 15 13:11:18 2014 from xxx.jp • [root@sakura1 ~]#
自分で自分に対してログインします
初期状態では鍵認証を行えません。コメントを削除し、設定ファイルを書き換えたら、sshd の restart を行います
今回は「authorized_keys」に自分自身の公開鍵を置きました。同様に、接続したいリモートホスト上に authorized_keysを置くことで、認証が通るようになります
準備2/3 ニフティクラウド編
ニフティクラウド
http://cloud.nifty.com/ 運営:ニフティ株式会社 http://www.nifty.com/
ニフティクラウド手順(所要30分)
環境構築手順 ➡ 1. コントロールパネルにアクセス ➡ 2. サーバの起動 ➡ 3. SSH ログイン
[1/3] ニフティクラウドにアクセス
https://pa.mon.cloud.nifty.com/
【ログインID】と【パスワード】を入力し、【コントロールパネルにログイン】を押します
https://pa.mon.cloud.nifty.com/
[1/3] ニフティクラウドにアクセス
このようにログインできることを確認します
サーバ作成
[2/3] サーバの起動
左メニューの【サーバー】から 【サーバー作成】を選びます
ゾーン選択
[2/3] サーバの起動
ゾーンは【west-11】を選び、 【イメージ選択へ】をクリックします
ゾーン選択
[2/3] サーバの起動
ゾーンは【west-11】を選び、 【イメージ選択へ】をクリックします
イメージ選択
[2/3] サーバの起動
“Ubuntu 12.04 64bit Plain”の 【選択】をクリックします
サーバ名の入力
[2/3] サーバの起動
任意のサーバ名を入力
【タイプ・料金設定へ】をクリックします
タイプと料金設定
[2/3] サーバの起動
スペックは【mini】
料金コースは【従量】
【アカウント設定へ】をクリックします
アカウント設定
[2/3] サーバの起動
【SSHキーを新規作成】
アカウント設定
[2/3] サーバの起動
パスフレーズを入力後、【SSHキーを作成する】をクリックします
SSH鍵の取得
[2/3] サーバの起動
ダウンロードしてくださいをクリックし、【スクリプト設定へへ進みます】
ダウンロードした .pem ファイルが秘密鍵です
ファイアウォール設定
[2/3] サーバの起動
今回は【ファイアウォールを適用しな
い】を選び、【確認へ】クリックします
確認
[2/3] サーバの起動
最後に確認して【作成する】をクリックします
作成開始
[2/3] サーバの起動
作成を開始しましたと表示される
暫く待つと、画面に情報が出てきます。 これで起動完了しました。
ログインするために IP アドレスを控えておきます
TeraTerm等でログインします
[3/3] SSHログイン
先ほど控えた IP アドレスに接続します
初回接続の確認
[3/3] SSHログイン
初回接続の確認
[3/3] SSHログイン
ユーザ名は【 root 】 パスフレーズは【 SSH鍵作成時のもの 】
“Use RSA/DSA/ECDSA …” をクリックし、 【 Private key file: 】で先ほどダウンロードした秘密鍵 (~.pem)を指定する。 ※ TeraTerm では「全てのファイルを表示」にすること。
最後に 【 OK 】をおすと
Ubuntu 12.04 にログインできました
[3/3] SSHログイン
準備3/3 SSH鍵の相互認証
これまでの鍵の状態 重要な点は「公開鍵」と「秘密鍵」の
セットがあればログイン出来るようになる点です。
さくらのクラウドでは、サーバの中にログインして、「公開鍵」と「秘密鍵」のセットを作成しました。
ニフティクラウドでは、クラウド上でサーバを作成する時点で「公開鍵」と「秘密鍵」のセットを作成し、「秘密鍵」は自分の PC にダウンロードしました。
秘密鍵2.pem
公開鍵2 (authorized_keys)
公開鍵1 (authorized_keys)
秘密鍵1 id_rsa
相互の鍵のやりとり:相互 ssh
さくら ニフティ – さくらの公開鍵 id_rsa.pub を、
ニフティの ‘authorized_keys’ に 入れます
ニフティ -> さくら
– 新しく鍵ペアを作成し、 ニフティの公開鍵 id_rsa.pub を さくらの ‘authorized_keys’ に 入れます
この作業の目的は、後ほど Docker 検証の際に、相互のクラウド間で行き来できるようにするためです。
秘密鍵2.pem
公開鍵2 (authorized_keys)
公開鍵1 (id_rsa.pub)
秘密鍵1 id_rsa
公開鍵 (authorized_keys)
公開鍵3 (authorized_keys)
公開鍵3 (authorized_keys) 秘密鍵3
(id_rsa)
さくらニフティ手順
1. さくら公開鍵をコピー # cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3Nza……8AwAVw== root@sakura
2. ニフティの authorized_keys に追加 # vi ~/.ssh/authorized_keys ファイルの中に「1.」でコピーした内容を入れる
3. さくら ニフティにログイン
メモ帳などに貼り付けます
[root@sakura2 ~]# ssh 175.184.21.115 The authenticity of host '175.184.21.115 (175.184.21.115)' can't be established. RSA key fingerprint is 4b:51:2a:28:20:9b:ab:c2:61:d2:c7:cc:07:82:db:2c. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '175.184.21.115' (RSA) to the list of known hosts. Enter passphrase for key '/root/.ssh/id_rsa': Welcome to Ubuntu 12.04.2 LTS (GNU/Linux 3.5.0-23-generic x86_64) * Documentation: https://help.ubuntu.com/ System information as of Fri Jul 18 11:32:03 JST 2014 System load: 0.0 Processes: 68 Usage of /: 5.2% of 27.13GB Users logged in: 1 Memory usage: 29% IP address for eth0: 175.184.21.115 Swap usage: 0% IP address for eth1: 10.100.74.33 Graph this data and manage this system at https://landscape.canonical.com/ 142 packages can be updated. 79 updates are security updates. Last login: Fri Jul 18 10:37:50 2014 from 153.121.40.37 root@ubuntu:~#
ssh <ニフティのIPアドレス>
初回接続時に表示、【yes】
パスフレーズ指定時は入力
ニフティさくら手順
1. ニフティの秘密鍵作成 # ssh-keygen
2. ニフティ公開鍵をコピー # cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3Nza……8AwAVw== root@ubuntu
3. さくらの authorized_keys に追加 # vi ~/.ssh/authorized_keys ファイルの中に「2.」でコピーした内容を入れる
4. さくら ニフティにログイン
メモ帳などに貼り付けます
先ほどと同じ手順です 以上で、ハンズオンの下準備は完了です
root@ubuntu:~/.ssh# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: ac:ae:0b:c8:ff:d2:74:7b:c4:cf:d5:a8:c5:b1:32:ac root@ubuntu The key's randomart image is: +--[ RSA 2048]----+ | | | | | | | . . | | S . . = | |.. . o o + * . | |... o o o + * | | .o o . E + | | .=+. . | +-----------------+
クラウド準備編 ~完~
鯨でもわかるDocker 入門 さぁ、Docker をはじめよう No Docker, No Life @zembutsu Jul 19, 2014 #ncstudy
クラウドを渡り歩け! さくら×ニフティ 合同ハンズオン勉強会!! Dockerを利用したクラウド間移行のポテンシャル?運用に変化は?みんなで考えよう!! #ncstudy 2014年7月19日(土) 10:00 – 17:00 会場:ニフティ株式会社 セミナールーム (東京新宿)
わかる!! できる!?
2
Docker 入門 “さぁ、 Docker を始めよう” NO Docker, No Life
目次
1. なぜ Docker なのか? 2. Docker とは何なのか? 3. Dockerで何ができるのか? 4. Docker を使う
技術的な要素ではなく、Dockerは何処で使えて
何が出来るのか?という点が主眼です。
今日のハンズオン
北海道 石狩第一ゾーン
Dockerhub https://hub.docker.com
東日本 east-1 リージョン
技術検証 Creationline, Inc.
ハンズオンの資料です。 http://www.zusaar.com/event/14467015
@zembutsu 前佛 雅人 ・Technology Evangelist クリエーションライン株式会社 頭の悪い残念なスライド作りに定評 ←?
・経歴;ホスティングの運用部隊 10年近く, 物理 10,000 台の環境 メインは Linux 系運用監視・サポート 所謂インフラエンジニア的な 運用保守(一次,二次)データセンタ常駐企画営業広報宣伝検証開発
http://slideshare.net/zembutsu
自己紹介 Why am I here?
Docker #とは、業界の侵略者!? WHY DOCKER?
1 「鯨が死ぬか、ボートが沈むか、でーす」
はじめに
INTRODUCTION
?「あーあ、猫も杓子も Docker 、Dockerか」 ?「みな平和なもんや」
あの日見た鯨の名前を 僕達はまだ知らない。
The Docker We Saw That Day
今日、話すこと 今日、話さないこと ・ 今日話すこと - 鯨はどこから来たのか - 鯨とは何者か - 鯨はどこへ行くのか
・ Docker 技術背景や自動化、監視 - control group - namespace - aufs - devicemapper @enakai00先生の資料や いろいろな所で語られています。 それに自分はさほど詳しくないので、 興味があれば、自分で調べて下さいねっ
「いまからでも遅くはありません。ご覧ください!鯨はあなたを求めてはいません。 やつを狂ったように求めているのは、あなた、あなたなのです!」(白鯨)
みなさんと共有する内容 興味があれば、帰って自習して欲しい
「鯨」とは、 dockerであり 我々エンジニア でもある
理論や技術背景よりも いかに道具として使うか
Docker #とは
Docker エコシステム ( 生態系 )
エコシステムって格好いいけど、事実上の囲い込み、閉鎖系ですよね、あれ
コンテナの歴史 流通革命
ツールとしてのDocker せっかくあるなら使おう
Docker は使えない?
話は聞かせてもらった 同じ事はクラウドでも聞いた
どこで?いつ使うの? いまでしょ?
使える所があるんだったら、使えば良いのではないでしょうか。
いまそこにある機器 システム
「ヤツはまさに巨大な・・・白い青い悪魔だ・・・!」
Docker 入門 HOW TO USE DOCKER
2 「スターバックの夜食」…鯨を料理しよう
Docker の構造 アーキテクチャ
技術的な事
@enakai00 さんの資料を読もう! Dockerクイックツアー http://www.slideshare.net/enakai/docker-34526343 Dockerを支える技術 http://www.slideshare.net/enakai/docker-34668707 Inside Docker for Fedora20/RHEL7 http://www.slideshare.net/enakai/docker-technology-v18e ■ 社内勉強会資料 chroot, lxc and docker // Speaker Deck https://speakerdeck.com/d_higuchi/chroot-lxc-and-docker
ありがとうございます! ありがとうございます!
重要な機能・特長
コンテナを管理するシステム ➡ 軽量・速い ➡ どこでも動く ( Linux 標準 )
レポジトリ ➡ イメージを階層的に管理する
• 差分情報の記録
➡ Dockerhub • イメージの検索 • ダウンロード • 公開
Docker を使う
事前準備
Dokcer の動くパッケージを入れる ➡ ニフティクラウド
# apt-get update # apt-get install -y linux-image-generic-lts-raring linux-headers-generic-lts-raring (略) Setting up linux-headers-generic-lts-raring (3.8.0.44.44) ... Setting up linux-image-generic-lts-raring (3.8.0.44.44) ... # reboot # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys # sh -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list“
➡ apt-get update apt-get install -y lxc-docker
コンテナの管理
docker run # docker run ubuntu /bin/echo ‘hello world’ # docke run centos /bin/echo ‘hello centos’ -i ( interactive , STDIN ) -t ( tty ) --rm ( remove ) ■ docker pull # docker pull centos:latest
Pulling repository centos 1a7dc42f78ba: Pulling image (latest) from centos, endpoint: https://cdn-registry-1.docker.1a7dc42f78ba: Download complete 511136ea3c5a: Download complete
34e94e67e63a: Download complete
コンテナ ID・イメージ ID
dokcer ps root@ubuntu:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 31a2629738e9 ubuntu:14.04 /bin/bash 3 minutes ago Exited (0) 2 seconds ago cranky_hypatia 2ad166fc3787 ubuntu:14.04 /bin/bash 7 minutes ago Exited (0) 4 minutes ago hopeful_archimedes
■ docker images root@ubuntu:~# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu-test latest b4e346166aea 10 seconds ago 276.5 MB
commit
コンテナの変更内容を確定 ➡ イメージ化
docker export docker import
Dockerfile docker build
FROM centos:centos6 MAINTAINER 0.1. NAME, [email protected] RUN echo 'ZONE="Asia/Tokyo"' > /etc/sysconfig/clock RUN rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 RUN yum -y install httpd RUN echo 'sakura' > /var/www/html/index.html EXPOSE 80 ENTRYPOINT ["/usr/sbin/httpd"] CMD ["-D", "FOREGROUND"]
Docker Hub
役割 ➡ Docker イメージの保管 ➡ 認証 ➡ 自動ビルド ➡ GitHub , BitBuket 投稿
Docker とは何だったのか What was DOCKER
3 「お前がいる限り、私は先に進めない。お前が滅びるか、私が滅びるしかない」
まとめ Docker とは新しい道具
いままで通りでいい? それクラウドでも言えるの?
未来への道標
Dockerは選択肢の一つ 使えるなら使えば良い
Docker ハンズオン資料 DOCKER HANDS-ON REFERENCE
4 「任しとけ。何をどうやりゃいいのか今はさっぱりだが、任しとけ。」
Hands-On Docker ハンズオン本編
ハンズオンの流れ
■ 目的 実際に docker のインストールを行うほか、 コンテナの作成・管理や、クラウド間の移行が出来るように。
■内容 ・ ニフティ … Ubuntu 12.04 に Docker をセットアップ ・ さくら … CentOS 6.5 に Docker をセットアップ ・ コンテナを作成し、相互に移動 1. 静的コンテンツ編 ( Apache + HTML ファイル ) 2. 動的コンテンツ編 ( Apache + PHP + PukiWiki )
1. Dockerのセットアップ (Ubuntu編)
ニフティクラウド上で作業します ➡ 対象サーバに SSH でログイン ➡ Linux kernel のバージョンをあげます
# apt-get update # apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring (略) Do you want to continue [Y/n]? y (略) Setting up linux-headers-generic-lts-raring (3.8.0.44.44) ... Setting up linux-image-generic-lts-raring (3.8.0.44.44) ... # reboot
Ubuntu 12.04 は Linux kernel のバージョ
ンが古い為、kernel 3.8 以上に上げる必要があります。
1. Dockerのセットアップ (Ubuntu編)
reboot後、kernel のバージョンアップを確認 ➡ 対象サーバに SSH でログイン
root@ubuntu:~# uname -a Linux ubuntu 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:01:04
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Docker のセットアップ ➡ # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.ILmCdlivSB --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-
keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key ➡ # sh -c "echo deb https://get.docker.io/ubuntu docker main > ¥ /etc/apt/sources.list.d/docker.list"
3.8 であれば正常です
続きは Web で!
➡ http://qiita.com/zembutsu/private/3a396dd1e9d16193b0ba