Docker Universal Control Plane (UCP)

Docker Universal Control Plane (UCP)

Ubuntuを使うこと。CentOSだとバグがあってインストールできない。

CentOSだとこんなエラーが出て止まる。

ERRO[0121] We were unable to communicate with proxy we just started at address 10.104.252.183. If this address is incorrect, re-run the install using the '--host-address' option. Run "docker logs ucp-proxy" for more details from the proxy

ESXiサーバ1台でvSANを構成しよう

ESXiサーバ1台(クラスタ無しでシングルノード構成)でも、ポリシーを修正することでvSANを構成できる。

手順

次のリンク先に記載のある手順で構築可能。

  • 手順の中でデータストア名を指定する手順が無いので、あれ?と思うけど、自動でvsanDatastoreって付くみたい。
  • vsanDatastoreはすぐにはデータストアリストに現れないので、手順を完了した後少し待ってみる。

vCenter が存在する環境について

基本は上記URLの手順通りで問題ないんだけど、手順の中で変更しているのはESXiのストレージポリシーで、vCenterにログインした上で仮想マシンを作成する場合は、vCenter上でもポリシーの設定変更が必要。
手順は次の通り。

  1. vSphereWebClientに接続し、ホームから「仮想マシンストレージポリシー」を選択
  2. 「Virtual SAN Default Storage Policy」の編集を実施
  3. 編集画面にて強制プロビジョニングを[いいえ]から[はい]に変更する。

バグなのかわからないけど、vsanDatastoreはデータストアフォルダに入れることができない。

VMware Horizon View 6.x をインストールして動かす

VMware View をインストールして動かす - とひろ」のVMware Horizon View 6.x版。

Horizon View 6.xでは管理画面のGUIが日本語化されているため、使いやすくなった。

基本は「VMware View 製品評価センターにある「VMware View 評価ガイド(英語pdfファイル)」に記載されている通り。
一部、現在のバージョンに適応できていない部分があるので、本エントリーで補足する。
また、構築中及び構築後に発生するエラー等については「デスクトップ仮想化/VMware View - 構築」を参照するとよい。

バージョンが古いけど「VMware View™ 4 評価ガイド」という日本語ガイドもある。

ポイント

  • すべての環境で名前解決が相互にできること。ViewClientを動かすマシンから、View Connection Serverの名前が引けたり、View Connection Serverから対象仮想マシンの名前が引けたり。

環境

次の環境について、本エントリーの手順で構築できることを確認した。

  • ViewConnectionServer:WindowsServer2012 R2
  • VMware Horizon View 6.x
  • vCenterServer5.5 Update2

また、ハードウェア環境については「検証環境について」を参照。

手順

0.事前準備
  1. ActiveDirectoryをインストールし、ドメインコントローラを用意する
  2. vCenterサーバを用意する。
1.対象仮想マシンの準備
  1. 仮想マシンを作る
  2. OSを入れる
  3. Windowsアップデートをして最新にしておく。
  4. ドメインに参加する。
  5. View Agent を VMwareのサイトからダウンロードしてインストールする。
2.View Connection Serverの準備
  1. 新規仮想マシンにWindowsServerをインストールする。
  2. VMwareのサイトから、用意したOSに合わせてView Connection Serverをダウンロードする。
  3. View Connection Serverをインストールする。
3.View Connection Serverの設定
  1. どっかのマシン上で、「https://View Connection ServerのIP/admin」にアクセスする。
  2. ADのアカウントでログインする。
  3. ライセンスを適用する。
  4. [View Configuration]-[Servers]を選択する。
  5. vCenter Serversリストで、[Add]をクリックし、vCenter Serverのアドレスを登録する*1
4.対象仮想マシンの登録

仮想マシンを登録するウィザードでは色々選択肢がでてきて、選択する内容によって既存の仮想マシンを登録できたりできなかったりする。
普通にやると、本来の使い方であるテンプレートを登録して随時デプロイする方法にたどり着く。

最終的には次のオプションで仮想マシンを登録する。


手順は次のとおり。

  1. [Inventory]-[Pools]を選択
  2. [Add]をクリックし、ESX上に登録された仮想マシンの情報を登録する。
  3. [Manual Pool]を選択する。
  4. [Floationg]を選択する。
  5. [vC VM]を選択する。
  6. 適当にIDとかを入れる。
  7. 適当にPoolSettingする。デフォルトでよい。
  8. 仮想マシンを選択する。
  9. 設定を確認して、Finish。
5.対象仮想マシンにユーザをアサインする
  1. 登録した仮想マシンに使用可能ユーザー(Entitlements)を追加

*1:コンポーサーはチェックいれなかった

InstallAnywhereでエラーが出る

現象

あるソフトウェアのインストーラーを起動したら「InstallAnyware:インストーラーを解凍するための一時的な場所を選択し(てください。?) [選択(c)] [キャンセル] (C) 1997-2010 Flexera Software, Inc. and/or InstallShield Co. Inc.」と表示される。
選択ボタンを押してフォルダを指定しても、なんども同じウィンドウが表示される。

原因と解決策

たぶん、インストーラーのファイルが壊れているのが原因。
どこかからダウンロードしたのならダウンロードしなおすか、メディアからコピーしたのではればメディアの読み取り面をクリーニングし、再度コピーを行う。

参考

ホーム / ColdFusion 10 インストール / トラブルシューティング
一般的なインストール問題
ダウンロードに失敗する


問題 :
InstallAnywhere により、他のインストール場所の選択を促すメッセージが表示されます。しかしどの場所を選択しても、インストールに失敗します。

解決策 :
完全なインストールファイルをダウンロードしたことを確認します。ダウンロードしていない場合には、再度ファイルのダウンロードを実行します。

queue.yamlにはrateの設定が必須

既存のdefaultだけではなく、新しくTaskQueueを作成する場合、queue.yamlに定義を書いていくんだけど、名前と一部の設定だけ記載して「あとはデフォルトでよろしく」ってしておくと、次のエラーがでる。

Error 400: --- begin server output ---
Invalid queue configuration. Refill rate must be specified for push-based queue.
--- end server output ---

エラーメッセージの通り、queue.yamlにてTaskQueueを新しく定義した場合には必ず「rateの設定が必要」らしい。
なので、queue.yamlに「rate: 1/s」とでも追記してあげればOK。

queue:
- name: example
  rate: 1/s

あと、TaskQueueの設定を作成/変更した場合は次のコマンドで有効化する必要があるかも。GUIのデプロイツールでデプロイしただけでは反映されないかも。

% appcfg.py update_queues myapp/

大量のデータを一括でDatastoreに書き込む

あるログファイルを一行ずつデータストアに保存していくプログラムを作成した。
ログファイルをパースするところは問題なかったけど、データストアに書き込むところで時間がかかりすぎTimeOutエラーに。

データストアへの書き込み方がfor文で一行ごと読みこんで.putで一行ごとデータストア書き込んでいく方法だったので、これをリスト全部を一括で書き込む(.put)方法へ変えた。

参考にしたのは「雲の上のクラスタ: Google App Engine Python NDB を使ってみた。(2)」にある次の内容。

・複数のキー、エンティティを処理する。

get(),put()はRPC呼び出しを行っているので、ループを使って処理するしかなく非効率だったが、下記のメソッドで速くできる。

list_of_keys = ndb.put_multi(list_of_entities)
list_of_entities = ndb.get_multi(list_of_keys)
ndb.delete_multi(list_of_keys)


上記コードにある「list_of_entities」はNDBのオブジェクトがリスト型で入っている必要があり、NDBのオブジェクトは次のコードで作成する。

sandy = Account(username='Sandy',
                userid=123,
                email='sandy@gmail.com')


ということで、リストに入った連想配列からデータを抜き出して、DNBオブジェクトに入れてそれをまたリストにしてput_multiするには、こんなふうに書く。

class Log(ndb.Model):
    datetime = ndb.DateTimeProperty()
    text = ndb.TextProperty()
    level = ndb.TextProperty()

list_of_entities = []

for line in logdata :
                record = Log(
                    datetime=line.datetime,
                    text=line.text,
                    level=line.level
                )
                list_of_entities.append(record);
            
list_of_keys = ndb.put_multi(list_of_entities)

VMware vSphere ESXi5.5 上にWindowsServer2012R2のHyper-vをインストールする

VMware vSphere ESXi5.5 上にWindowsServer2012R2のHyper-vをインストールする方法。
何も考えずに普通にやると、役割の追加の所で止まる。
事前に手順が幾つか必要で、基本的には「Nesting Hyper-V 2012 R2 on ESXi 5.5 - Derek Seaman's Blog」に記載のあるとおり。
仮想マシンのバージョンを上げるとWebClientからしか設定変更できなくなり、上記URLの画面とは異なる。
WebClientでの画面は次の通り。