0%

Project Atomic First Steps - Part2: IDCFクラウドにデプロイ

Fedora20でビルドしたAtomic Hostイメージを、OVA形式にしてIDCFクラウドにデプロイしてみましたが、config-driveを認識してくれませんでした。

ビルド済みのqcow2イメージの場合はconfig-driveが不要なのでダウンロードしてIDCFクラウドにデプロイしてみます。

qcow2ファイルをダウンロード

作業用のFedora20にログインして、qcow2イメージをダウンロード && 解凍します。

$ wget http://rpm-ostree.cloud.fedoraproject.org/project-atomic/images/f20/qemu/20140609.qcow2.xz
$ xz -df 20140609.qcow2.xz

vmdkファイルにコンバート

qemu-imgコマンドを使い、qcow2ファイルをvmdkファイルにコンバートします。

$ qemu-img convert -f qcow2 20140609.qcow2 -O vmdk 20140609-atomic.vmdk

VMware Playerコンソールで作業

vmdkファイルを使った仮想マシンの起動方法は前回と同じです。
rootはデフォルトでパスワードなしのため、最初にパスワード設定をします。

# passwd root

管理者ユーザーとSSH設定

VMware Playerコンソールは使いづらいので、ip aでIPアドレスを確認してからPuttyでSSH接続します。

一時的にrootのパスワード認証を許可します。

/etc/ssh/sshd_config
PermitRootLogin yes

sshdのunitをreloadします。

# systemctl reload sshd.service

PuttyからパスワードでSSH接続して、管理ユーザーと公開鍵認証の設定をします。

# useradd -m -d /home/mshimizu -s /bin/bash mshimizu
# echo "mshimizu ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# mkdir /home/mshimizu/.ssh/
# chmod 700 /home/mshimizu/.ssh
# vi /home/mshimizu/.ssh/authorized_keys
# chmod 600 /home/mshimizu/.ssh/authorized_keys
# chown -R mshimizu:mshimizu /home/mshimizu

SSHでrootのログインとパスワード認証を拒否します。

/etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no

sshdのunitをreloadします。

# systemctl reload sshd.service

別のセッションのPuttyから管理者ユーザーで接続できることを確認します。

OVAに変換

Windows7にインストールしたVagrant環境のMinttyを起動します。

Virtual Machinesのフォルダから作業フォルダに、vmdkファイルとvmxファイルをコピーします。

$ mkdir ~/atomic
$ cd "C:\Users\masato\Documents\Virtual Machines\AtomicHostOVA"
$ cp 20140609-atomic.vmdk ~/atomic
$ cp AtomicHostOVA.vmx ~/atomic

vmxファイルのvirtualHW.versionを、IDCFクラウドのESXi4で使えるように7に変更します。

/home/masato/atomic/AtomicHostOVA.vmx
virtualHW.version = "7"

ovftoolのインストールを確認します。

$ which ovftool
c:\Program Files\VMware\VMware OVF Tool\ovftool.EXE

ovftoolを使い、vmdkファイルとvmxファイルからOVAイメージを作成します。

$ ovftool AtomicHostOVA.vmx AtomicHostOVA.ova
Opening VMX source: AtomicHostOVA.vmx
Opening OVA target: AtomicHostOVA.ova
Writing OVA package: AtomicHostOVA.ova
Transfer Completed
Completed successfully

VMware PlayerでOVAのテスト

AtomicHostOVA.ovaをダブルクリックしてVMware PlayerにOVAをインポートします。
コンバートしたOVAが正常に動作することを確認できました。

IDCFクラウドにデプロイ

作成したAtomicHostOVA.ovaを、OVAテンプレートとして新規追加してからインスタンスを作成します。

Atomic HostインスタンスにSSH接続

OVAは予め作業ユーザーとSSH公開鍵を設定してるので、SSH接続できる状態になっています。

$ eval `ssh-agent`
$ ssh-add .ssh/mykey
$ ssh -A 10.1.0.56

OSのリリースを確認します。

$ cat /etc/redhat-release
Generic release 20 (Generic)

Dockerのバージョンです。

$ docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0

dockerのunitを確認すると、--selinux-enabledになっています。

$ systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled)
Active: active (running) since 土 2014-09-13 04:12:50 UTC; 5h 57min ago
Docs: http://docs.docker.io
Main PID: 477 (docker)
CGroup: /system.slice/docker.service
└─477 /usr/bin/docker -d --selinux-enabled -H fd://

確認

hello worldでコンテナの起動を確認します。

$ sudo docker run fedora /bin/echo "hello world"
Unable to find image 'fedora' locally
Pulling repository fedora
88b42ffd1f7c: Download complete
511136ea3c5a: Download complete
c69cab00d6ef: Download complete
hello world