fbpx

knife-azureでWindows Azureを管理する #opschef_ja

この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。

knife-azureとは、MicrosoftのクラウドサービスであるWindows Azureを管理するためのKnifeプラグインです。

Amazon EC2用のknife-ec2や、CloudStack用のknife-cloudstackと同じものと考えていただいてかまいません。

事前準備

Windows Azureに登録を行ってください。
1か月の無料評価版がありますので、これから始めてみるとよいでしょう。

サインアップができたら、サブスクリプション ファイルにアクセスしてファイルをダウンロードしてください。
このファイルはWindows AzureにAPIアクセスするための証明書を含んでいるため、取り扱いに注意し、大切に保管してください。

ここでは credentials.publishsettings ファイルとします。

また、あらかじめホステッドサービス版Enterprise Chefに登録し、knife.rbファイルや証明書ファイルをダウンロードしておいてください。

knife-azureのインストール

RubyGemsでインストールできます。


ubuntu@ubuntu:~$ sudo /opt/chef/embedded/bin/gem install knife-azure --no-rdoc --no-ri
:
:
:
Successfully installed nokogiri-1.6.0
Successfully installed equivalent-xml-0.2.9
Successfully installed eventmachine-1.0.0.beta.3
Successfully installed ffi-1.9.3
Successfully installed gssapi-1.0.3
Successfully installed httpclient-2.3.4.1
Successfully installed rubyntlm-0.1.1
Successfully installed uuidtools-2.1.4
Successfully installed builder-3.2.2
Successfully installed nori-1.1.5
Successfully installed rack-1.5.2
Successfully installed httpi-0.9.7
Successfully installed wasabi-1.0.0
Successfully installed gyoku-1.1.0
Successfully installed akami-1.2.0
Successfully installed savon-0.9.5
Successfully installed little-plugger-1.1.3
Successfully installed multi_json-1.8.2
Successfully installed logging-1.8.1
Successfully installed winrm-1.1.3
Successfully installed em-winrm-0.5.4
Successfully installed knife-windows-0.5.14
Successfully installed knife-azure-1.1.4
Successfully installed mixlib-config-2.0.0
Successfully installed diff-lcs-1.2.5
Successfully installed hashie-2.0.5
Successfully installed moneta-0.6.0
Successfully installed chef-zero-1.7.1
Successfully installed puma-1.6.3
Successfully installed coderay-1.1.0
Successfully installed slop-3.4.6
Successfully installed method_source-0.8.2
Successfully installed pry-0.9.12.3
33 gems installed
ubuntu@ubuntu:~$

knife-azureの設定

先程取得したサブスクリプション ファイルをWorkstationにコピーし、knife.rbに記載します。
例えば、/home/ubuntu/.chef/credentials.publishsettings にファイルを置いた場合、次の1行を加えます。


knife[:azure_publish_settings_file] = '/home/ubuntu/.chef/credentials.publishsettings'

以降、knife-azureはこのサブスクリプション ファイルを利用してWindows Azureにアクセスします。

knife-azureの利用

Windows Azureで利用できるマシンイメージを表示してみます。


ubuntu@ubuntu:~$ knife azure image list
Name OS Location
0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.2-x64-v5.8.8.1 Linux East Asia, Southeast Asia, North Europe, West Europe, East US, West US
0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.3-x64-v5.8.8 Linux East Asia, Southeast Asia, North Europe, West Europe, East US, West US
0b11de9248dd4d87b18621318e037d37__RightImage-CentOS-6.3-x64-v5.8.8.5 Linux East Asia, Southeast Asia, North Europe, West Europe, East US, West US
:
:
:

次の設定で仮想マシンを起動します。

DNS名
knife-azure-01
場所
アメリカ西部
マシンイメージ
Ubuntu Server 12.04 LTS (amd64)
マシンサイズ
SSHログインユーザ
azureuser
SSHログインパスワード
Azure@@123456


ubuntu@ubuntu:~$ knife azure server create \
--azure-dns-name 'knife-azure-01' \
--azure-service-location 'West US' \
--azure-source-image b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_3-LTS-amd64-server-20131111-en-us-30GB \
--azure-vm-size Small \
--ssh-user 'azureuser' \
--ssh-password 'Azure@@123456'
.......................
Waiting for virtual machine to be ready..........vm ready after 2.16 minutes.

DNS Name: knife-azure-01.cloudapp.net
VM Name: knife-azure-01
Size: Small
Public Ip Address: XXX.XXX.XXX.XXX

Waiting for sshd on XXX.XXX.XXX.XXX:22.....................done

Bootstrapping Chef on XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXX --2013-11-13 07:25:27-- https://www.opscode.com/chef/install.sh
XXX.XXX.XXX.XXX Resolving www.opscode.com (www.opscode.com)...
XXX.XXX.XXX.XXX 184.106.28.82
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Connecting to www.opscode.com (www.opscode.com)|184.106.28.82|:443...
XXX.XXX.XXX.XXX connected.
XXX.XXX.XXX.XXX HTTP request sent, awaiting response...
XXX.XXX.XXX.XXX 200 OK
XXX.XXX.XXX.XXX Length:
XXX.XXX.XXX.XXX 6790
XXX.XXX.XXX.XXX (6.6K)
XXX.XXX.XXX.XXX [application/x-sh]
XXX.XXX.XXX.XXX Saving to: `STDOUT'
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX 0% [ ] 0 --.-K/s
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX 100%[======================================>] 6,790 --.-K/s in 0s
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX 2013-11-13 07:25:27 (981 MB/s) - written to stdout [6790/6790]
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Downloading Chef 11.6.0 for ubuntu...
XXX.XXX.XXX.XXX Installing Chef 11.6.0
XXX.XXX.XXX.XXX Selecting previously unselected package chef.
XXX.XXX.XXX.XXX (Reading database ...
:
:
:
(Reading database ...
XXX.XXX.XXX.XXX 50846 files and directories currently installed.)
XXX.XXX.XXX.XXX Unpacking chef (from .../chef_11.6.0_amd64.deb) ...
XXX.XXX.XXX.XXX Setting up chef (11.6.0-1.ubuntu.12.04) ...
XXX.XXX.XXX.XXX Thank you for installing Chef!
XXX.XXX.XXX.XXX Starting Chef Client, version 11.6.0
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Creating a new client identity for knife-azure-01 using the validator key.
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX resolving cookbooks for run list: []
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Synchronizing Cookbooks:
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Compiling Cookbooks...
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX [2013-11-13T07:26:02+00:00] WARN: Node knife-azure-01 has an empty run list.
XXX.XXX.XXX.XXX Converging 0 resources
XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX Chef Client finished, 0 resources updated
XXX.XXX.XXX.XXX

DNS Name: knife-azure-01.cloudapp.net
VM Name: knife-azure-01
Size: Small
Public Ip Address: XXX.XXX.XXX.XXX


ubuntu@ubuntu:~$

起動しました。
ログイン可能です。


ubuntu@ubuntu:~$ ssh azureuser@knife-azure-01.cloudapp.net
The authenticity of host 'knife-azure-01.cloudapp.net (XXX.XXX.XXX.XXX)' can't be established.
ECDSA key fingerprint is ba:5c:aa:1d:47:fe:d8:34:3e:4c:6c:31:f4:38:d8:19.
Are you sure you want to continue connecting (yes/no)? yes
azureuser@knife-azure-01.cloudapp.net's password:
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-56-virtual x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Wed Nov 13 07:27:13 UTC 2013

System load: 0.42 Processes: 90
Usage of /: 3.3% of 28.83GB Users logged in: 0
Memory usage: 10% IP address for eth0: YYY.YYY.YYY.YYY
Swap usage: 0%

Graph this data and manage this system at https://landscape.canonical.com/

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

Use Juju to deploy your cloud instances and workloads:
https://juju.ubuntu.com/#cloud-precise

0 packages can be updated.
0 updates are security updates.


azureuser@knife-azure-01:~$

Chef Serverにもきちんと登録されています。


ubuntu@ubuntu:~$ knife node show knife-azure-01
Node Name: knife-azure-01
Environment: _default
FQDN: knife-azure-01.knife-azure-01.d1.internal.cloudapp.net
IP: YYY.YYY.YYY.YYY
Run List:
Roles:
Recipes:
Platform: ubuntu 12.04
Tags:
ubuntu@ubuntu:~$

knife-azureからも確認できます。


ubuntu@ubuntu:~$ knife azure server list
...
DNS Name VM Name Status IP Address SSH Port WinRM Port
knife-azure-01.cloudapp.net knife-azure-01 ready XXX.XXX.XXX.XXX 22
ubuntu@ubuntu:~$

このように、Windows Azureに対してもChefは手軽に、有効に動作します。
一度試してみてはいかがでしょうか。

Author

Chef・Docker・Mirantis製品などの技術要素に加えて、会議の進め方・文章の書き方などの業務改善にも取り組んでいます。「Chef活用ガイド」共著のほか、Debian Official Developerもやっています。

Daisuke Higuchiの記事一覧

新規CTA