2015年2月9日月曜日

Dockerで立ち上げたUbuntuからGCE上のVMを操作する

参考サイト

Google Cloud SDKのページ
Docker上にSSH接続できるコンテナを作成する
gcloud計算コマンドラインリファレンス

準備

Docker上にSSH接続できるUbuntuコンテナがある状態から始めます。
ubuntuコンテナの作成は上記リンクを参照してください。
Google Developers Consoleでプロジェクトは作成済みです。

まずはGoogle Cloud SDKインストールに必要なcurlをインストールする
# apt-get install curl

Google Cloud SDKのインストール

次のコマンドでGoogle Cloud SDKのインストールを行う
# curl https://sdk.cloud.google.com | bash
選択肢は全てデフォルトとしました。

Google Cloud SDKの認証

次のコマンドでGoogle Cloud SDKの認証を行う
# gcloud auth login
  1. urlが表示されるのでブラウザにコピーしてアクセス
  2. アクセスしたページで「承認」をクリック
  3. 表示されたコードをコピーしてubuntuに戻って入力する
これで認証は完了です。

バージョン確認
# gcloud version
Google Cloud SDK 0.9.46

bq 2.0.18
bq-nix 2.0.18
compute 2015.01.22
core 2015.02.05
core-nix 2014.10.20
dns 2015.01.15
gcutil 1.16.5
gcutil-nix 1.16.5
gsutil 4.8
gsutil-nix 4.6
sql 2015.01.31

VM操作

gcloud計算コマンドラインリファレンスを参考にVM操作を行った例です。
VMの作成
# gcloud compute --project プロジェクトID instances create インスタンス名 --zone asia-east1-b --machine-type マシンタイプ --network "default" --maintenance-policy "MIGRATE" --scopes "https://www.googleapis.com/auth/devstorage.read_only" "https://www.googleapis.com/auth/logging.write" --tags "http-server" "https-server" --image "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/backports-debian-7-wheezy-v20150127" --boot-disk-type "pd-standard" --boot-disk-device-name インスタンスID

VMの停止
# gcloud compute --project プロジェクトID instances stop インスタンス名 --zone "asia-east1-b"

VMの起動
# gcloud compute --project プロジェクトID instances start インスタンス名 --zone "asia-east1-b"

2015年1月23日金曜日

Docker上にSSH接続できるコンテナを作成する

Docker上にSSH接続ができるコンテナを作成する手順を記載する。
コンテナOSにはUbuntuを使用している。

まずコンテナを立ち上げてコンソールに接続する

$ docker run --name コンテナ名 -i -t ubuntu /bin/bash
--nameでは適当なコンテナ名を設定する

コンテナにSSHサーバ機能をインストールする

# apt-get install openssh-server
openssh-serverを使ってみた。

接続元となる端末でSSH鍵を作成する

Windows8.1上でPuTTYを使用して作成した。
鍵作成にはputtygen.exeを使用する。
"C:\Program Files (x86)\WinSCP\PuTTY"からputtygen.exeを起動する。
「generate」を押して鍵を作成し「公開鍵(public key)」と「秘密鍵(private key)」を保存する。


















コンテナに作成した公開鍵(public key)を登録する

.sshディレクトリを作成し、authorized_keysファイルを作成し公開鍵の文字列を記載する
# mkdir ~/.ssh
# vi authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAn・・・・・・・・・・・・・・・・
ssh-rsa以降の文字列は公開鍵ファイルの文字列を記載する
今回はrootユーザ向けの設定。

Ubuntuコンテナをイメージとして保存する

docker上でイメージ作成コマンドを実行する
$ docker commit コンテナ名 イメージ名
適当なイメージ名を設定する。(コンテナ名はこれまでの手順で作成したものを設定)

作成したイメージを立ち上げる

$ docker run -d --name コンテナ名 -p XXXX:22 イメージ名 /usr/sbin/sshd -D
適当なコンテナ名を設定する。(イメージ名は上記の手順で作成したものを設定)
XXXXには他で使用していない適当なポート番号を設定する。

立ち上げたコンテナにSSH接続する

PuTTY Configurationの「Session」でHost Name(or IP address)にDockerサーバのIPアドレスを指定する。
Port番号は22から上記で設定したものに変更する。


















「Conection」→「SSH」→「Auth」でPrivate key file for authenticationに秘密鍵ファイルを設定する。


















「Open」をクリックするとコンテナにSSH接続できる。

2015年1月11日日曜日

VirtualBoxを使ったVagrant環境の構築

開発環境構築に使用される「Vagrant」の環境を構築してみた。

環境

Vagrantインストール環境:Windows8.1
Vagrantのバージョン:Vagrant1.3.5.msi
VirtualBoxのバージョン:4.3.20 for Windows hosts

VirtualBoxのインストール

デフォルト設定でインストールする

Vagrantのインストール

こちらもデフォルト設定でインストールする
インストール後、再起動が要求されるためOS再起動を行う

環境変数の設定

環境変数を設定しVagrantからVirtualBoxを呼び出せるようにする
「システムのプロパティ」➡「詳細設定」タブ➡「環境変数」でシステム変数の編集で
変数名:VBOX_MSI_INSTALL_PATH
編集値:C:\Program Files\Oracle\VirtualBox\








変数名:VBOX_INSTALL_PATH
編集値:%VBOX_MSI_INSTALL_PATH%









VagrantでVMイメージをダウンロードする

コマンドプロンプトからvagrantコマンドでubuntuのOSイメージをダウンロードする
vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

VagrantでVMを初期化する

コマンドプロンプトからvagrantコマンドでVMを初期化する
vagrant init ubuntu14.04

VagrantでVMを起動する

vagrant up

表示されたポートにsshでアクセスできるようになります。