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は手軽に、有効に動作します。
一度試してみてはいかがでしょうか。
