GMO ConoHa を使ってみる(1) サインアップから API Token 発行まで
www.conoha.jp
5 月にリニューアルされた GMO ConoHa を使ってみました。
OpenStack API 互換だったり時間課金があったりと、VPS というよりは Iaas なクラウドに近い感じです。
サインアップ
アカウント作成
- https://www.conoha.jp/ にアクセスし、[ お申込み ] をクリック
- [ メールアドレス ] と [ パスワード ] を入力して、アカウント登録
- 登録した [ メールアドレス ] と [ パスワード ] でコントロールパネルにログイン
認証・ユーザ情報・支払情報入力
その他設定
- アカウント設定から [ 言語設定 ] と [ モード設定 ] を変更します*2
- 言語設定 : English
- モード設定 : ConoHa Mode
API 設定
API 設定を行い、API 認証に使用するトークンを取得できるようにします。
トークン取得
トークン取得に必要な情報は以下のものです。
- API User Name : %username%
- API User Password : %apipass%
- Tenant ID : %tenantid%
- Identity Service Endpoint : https://identity.tyo1.conoha.io/v2.0
curl -i -X POST \ -H "Accept: application/json" \ -d '{"auth":{"passwordCredentials":{"username":"%username%","password":"%apipass%"},"tenantId":"%tenantid%"}}' \ https://identity.tyo1.conoha.io/v2.0/tokens | tail -n 1 | jq -r '.'
JSON 形式でレスポンスがくるので、jq とかあると楽です。
端末リセット時のエラー (E:failed to mount /cache (invalid argument))
-- Wiping data... Formatting data... E:failed to mount /cache (invalid argument) Formatting cache... E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/log E:Can't open /cache/recovery/log E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/last_log E:Can't open /cache/recovery/last_log E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/last_install E:Can't open /cache/recovery/last_install Data wipe complete. E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/log E:Can't open /cache/recovery/log E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/last_log E:Can't open /cache/recovery/last_log E:failed to mount /cache (invalid argument) E:Can't mount /cache/recovery/last_install E:Can't open /cache/recovery/last_install E:Failed closing /dev/block/platform/msm_sdcc.1/by-name/misc (I/O error) E:failed to mount /cache (invalid argument)
リカバリモードからの端末リセット、ファクトリリセット時に上記エラーが出た場合、システムボード不具合(ハードウェア不具合)の可能性があります。
Vagrant で仮想マシンを構築する(7) Vagrant プラグイン
Vagrant プラグイン関連のコマンドメモと、便利だと思ったプラグインのまとめです。
プロバイダは VirtualBox です。
プラグイン関連コマンド
- インストール
$ vagrant plugin install %plugin name%
- アンインストール
$ vagrant plugin uninstall %plugin name%
- アップデート
$ vagrant plugin update %plugin name%
- インストール済みプラグイン一覧
$ vagrant plugin list
便利なプラグイン
公開されているプラグイン
sahara
仮想マシンの sandbox モードを有効にするプラグインです。
sandbox モード内で実行した操作はロールバックできるので、ミドルウェアのテストなどに使用できます。
- インストール
$ vagrant plugin install sahara
- sandbox モード有効化
$ vagrant sandbox on $ vagrant sandbox status [default] Sandbox mode is on
sandbox モード有効化以降の操作は、ロールバック可能です。
$ vagrant sandbox rollback
- コミット
sandbox モードで実施した変更を反映させるには、コミットを行います。
$ vagrant sandbox commit
- sandbox モード無効化
$ vagrant sandbox off $ vagrant sandbox status [default] Sandbox mode is off
sandbox off でも変更内容がコミットされます。
sandbox モードでの変更内容を破棄したい場合は、"vagrant sandbox rollback" -> "vagrant sandbox off" を実行します。
jedi4ever/sahara · GitHub
vagrant-vbox-snapshot
仮想マシンのスナップショットを取得できるプラグインです。
sahara が作業時の一時的なスナップショットに対して、こちらはポイント毎にスナップショットを取得する場合に使用します。
- インストール
$ vagrant plugin install vagrant-vbox-snapshot
- スナップショット取得
$ vagrant snapshot take %snapshot name%
- 直前のスナップショットを復元
$ vagrant snapshot back
- 指定したスナップショットを復元
$ vagrant snapshot go %snapshot name%
- スナップショット削除
$ vagrant snapshot delete %snapshot name%
- スナップショット一覧
$ vagrant snapshot list Listing snapshots for 'default': Name: %snapshot name% (UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
vagrant-global-status
ホスト内の仮想マシンのステータスを一覧表示してくれるプラグインです。
プラグインインストール後から起動した仮想マシンが表示されるようになるので、一番最初にインストールしたいプラグインです。
- インストール
$ vagrant plugin install vagrant-global-status
- 仮想マシンステータス表示
$ vagrant global-status -a /path/to/vagrant/vagrant_example02 default running (virtualbox) 2015-01-03 00:25:29 +0900 /path/to/vagrant/vagrant_example01 default poweroff (virtualbox) 2015-01-03 00:26:42 +0900
vagrant-omnibus
仮想マシン起動時に、chef client の存在チェックや指定したバージョンをインストールしてくれるプラグインです。
- インストール
$ vagrant plugin install vagrant-omnibus
- 設定
Vagrant.configure(2) do |config| config.omnibus.chef_version = :latest end
vagrant-vbguest
VirtualBox Guest Additions をいい感じに自動インストールしてくれるプラグインです。
- インストール
$ vagrant plugin install vagrant-vbguest
- 設定
Vagrant.configure("2") do |config| config.vbguest.auto_update = true end
dotless-de/vagrant-vbguest · GitHub
Vagrant 用仮想マシン (box) の VirtualBox Guest Additions のバージョンアップ (vagrant-vbguest) - jitsu102's blog
Vagrant で仮想マシンを構築する(6) 仮想マシンの設定
Vagrant で起動した仮想マシンのホスト名や cpu 数、メモリサイズなどの設定方法です。
変更頻度が高めの項目に絞っています。
プロバイダは VirtualBox です。
vm 名
VirtualBox の GUI ツールで表示される vm 名を設定します。
Vagrant.configure(2) do |config| config.vm.provider "virtualbox" do |vb| vb.name = "vm-host01" end end
cpu 数
仮想マシンの cpu 数(コア数)を設定します。
Vagrant.configure(2) do |config| config.vm.provider "virtualbox" do |vb| vb.cpus = 2 end end
メモリサイズ
仮想マシンのメモリサイズを設定します。
Vagrant.configure(2) do |config| config.vm.provider "virtualbox" do |vb| vb.memory = 1024 end end
その他、設定
VBoxManage modifyvm の項目は設定可能です。
cpu の使用率制限設定は、以下の感じです。
Vagrant.configure(2) do |config| config.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"] end end
config.vm - Vagrantfile - Vagrant Documentation
Configuration - VirtualBox Provider - Vagrant Documentation
Vagrant で仮想マシンを構築する(5) 複数仮想マシンの起動
明けましておめでとうございます。
今年もよろしくお願いします。
引き続き、Vagrant です。
Vagrant では、一つの Vagrantfile で複数の仮想マシンを起動することができます。
仮想マシン同士の通信は、プライベートネットワークで行います。*1
複数仮想マシンの起動
config.vm.define で複数マシンを起動します。
使用する box や共有フォルダ、プロビジョニングは、仮想マシン毎に設定可能です。*2
Vagrant.configure(2) do |config| config.vm.box = "ubuntu/trusty64" config.vm.define "host01" do |config| config.vm.network "private_network", ip: "192.168.56.10" config.vm.synced_folder "./data/host01", "/home/vagrant/data" end config.vm.define "host02" do |config| config.vm.network "private_network", ip: "192.168.56.11" config.vm.synced_folder "./data/host02", "/home/vagrant/data" end end
複数仮想マシンの制御
上記の設定で vagrant up すると、2 つの仮想マシンが起動します。
$ vagrant status 2015-01-01 15:30:50 Current machine states: host01 running (virtualbox) host02 running (virtualbox) .....
仮想マシンを制御する、reload、halt、destroy などのコマンドは、定義名(host01, host02) を指定することで仮想マシン毎に実行できます。
定義名を指定しない場合は、全ての仮想マシンに対して実行されます。
(host01 への ssh ログイン) $ vagrant ssh host01 (host01 再起動) $ vagrant reload host01 (host01 停止) $ vagrant halt host01 (host01 削除) $ vagrant destroy host01