仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Hyper-V Server 2012 R2のリモート管理について

Hyper-V Server 2012 R2をインストールして、Windows Server 2012 R2のHyper-V Managerを使ってリモートのHyper-V Server 2012 R2に仮想マシンを作ろうとすると、仮想ディスクの作成時に「予期しないエラーが発生しました」というエラーが出てしまい、ディスク作成が出来ませんでした。

2016-04-08 04:22:15 +00001

この問題はリモート管理するHyper-V Server 2012 R2と同じ「DNSサーバー」、「DNS suffix」の設定(Linuxで言う所のsearch)を設定して、名前引きできるように設定して、Hyper-V ManagerにはIPベースではなく、コンピューター名で接続するようにするとこう言った問題が起きずにうまくいくようです。

2016-04-08 04:16:45 +00001

DNSがまだなければLinuxでDNSを立てるか、Active Directoryを構築して全ノードをADに参加する方法でも良いと思います。

社内GitLabをアップデートした

昔なんとなく立てた社内GitLabが立ててからだいぶ経ったような気がしたので、アップデートしました。最近のGitLabはあの特徴的なアイコンがモダンな感じになって良いですね。

さて、前のバージョンが6.4.3という古めのバージョンで、昔の手順(Chef Soloかな)でインストールされたものだったため、debパッケージで簡単に導入できる最新バージョンに移行する手順がやや複雑でした。OSもUbuntu12.04と少し古めになっていたため、14.04で新規に作った環境に移していく方法にしました。

作業については、こちらの記事が大変参考になりました。ありがとうございました。

http://rythgs.co/archives/2015/10/31/switch-omnibus-gitlab/

ちょっと違うやり方もしたので、自分のメモがてらざっくりと書いておきます。

続きを読む

Minecraftに釣られて始めるDocker入門

今朝ごろからTwitter上でDockerCraftなるものが話題のようです。Dockerがリリースした、Minecraft上でDockerコンテナのステータスが確認できるものだとか。

実は私、今までなんとなくDockerを避けてきたのですが、ネザーで天井の岩盤から床の岩盤までぶちぬいてゾンビピッグマントラップタワーを建設している程度にはMinecraft好きですので、これはDocker入門せざるを得ません。早速、Docker入門を兼ねて動かしてみました。

Docker環境の用意

社内にある普段使い用のOpenStackにUbuntu14.04のインスタンスをさくっと立て、ドキュメントを参照しながらDockerをインストールしました。

https://docs.docker.com/v1.8/installation/ubuntulinux/

一般ユーザーでdockerコマンドを実行できるようにするのを忘れずに。

続きを読む

vagrant boxのイメージURLとしてローカルのWebサーバーを参照する方法

Vagrantが非常に便利で、最近よく使っています。

vagrant upとやると通常は登録済みのboxイメージを使うのですが、未登録の状態でvagrant upを実行するとhttps://atlas.hashicorp.com/hogehoge...からダウンロードします。非常に便利な仕組みなのですが、インポート途中にネットワークエラーがよく発生してインポートが切断されることが多いようです。

どうにかならないものかとマニュアルを見たら、「config.vm.box_url」というパラメーターを見つけました。ローカルのファイルを指定するとそれを使うことができるようです。でもできればローカルに大きなファイルを常時置いておくことは避けたい。社内のWebサーバーに置いたファイルを使えないかと調べたらこんなページを見つけました。file://の他にhttp://hogehogeも指定できるんですね。

と言うわけで、次のようにVagrantfileに書いて、vagrant upしました。指定したURLからダウンロードして起動することができました。なるほど、なるほど。

  config.vm.box = "centos/6"
  config.vm.box_url = "http://YOUR-SERVER.local/vagrant/centos66-minimal-x86_64-20150602.box"

MAAS1.8でESXi VMを仮想ノードとして追加する

MAAS 1.8でKVMのほかESXi 5.5のVMを仮想ノードとしてMAAS 1.8で使うことができるようになりました。早速弊社でも試してみました。

構築するためのドキュメントは公式ドキュメントがあるので、要点だけまとめると次のような感じです。

[2016/6/24 追記]
MAAS stable PPAで現在MAASをインストールすると1.9系がインストールされます。
文中のdocs1.8をdocs1.9に置き換えると、MAAS 1.9向けのドキュメントを参照できます。
続きを読む

OpenStack SwiftだけをRDO PackStackで構築する

OpenStack Swiftを簡単に試すにはKeystoneとSwiftが最低限必要です。この二つくらいなら公式の手順書に従ってマニュアルインストールしてもいいのですが、手を抜けるところはとことん抜きたい人なのでRDO Packstackを使って構築することにしました。

基本的にはここの手順のStep 4まで実施して、次の通りanswer-textを編集してデプロイするだけです。answer-textのdiffの結果を貼り付けてみます。

続きを読む

OpenStack KiloのバックエンドDBとしてPostgreSQLを使う

OpenStackはMySQLMariaDBだけでなく、PostgreSQLをバックエンドDBにすることもできます。しかし、公式の手順書はMariaDBをベースに書かれていますし、PostgreSQLを使う手順が纏まっている情報が見つけられなかったので調査してみることにしました。ちなみにこの情報は「Using PostgreSQL with OpenStack」の記事を参考に、クラウドOSとしてUbuntu Server 14.04.2、OpenStackは最新版のKiloで動作確認しています。

「Chapter 2. Basic environment」の実施

まずは公式の手順書を参考に、MySQL/MariaDBのところは飛ばして手順に従って構築。

http://docs.openstack.org/kilo/install-guide/install/apt/content/ch_basic_environment.html

RabbitMQは標準リポジトリーの方を入れる。

$ sudo apt-get update
$ sudo apt-cache policy rabbitmq-server
$ sudo apt-get install -y rabbitmq-server=3.2.4-1
$ sudo apt-mark hold rabbitmq-server

PostgreSQLのセットアップ

・サーバー及びクライアントパッケージのインストール。

$ sudo apt-get -y install postgresql python-psycopg2

クライアントパッケージはその他のノードにもインストールする。

$ sudo apt-get -y install python-psycopg2

・pg_hba.conf設定の変更

末尾に追記する。

※「172.17.14.0/24」の部分はホストが参加しているネットワークに設定する。

$ sudo vi /etc/postgresql/9.3/main/pg_hba.conf
...
host all all 172.17.14.0/24 md5
local all all md5

postgresql.conf設定の変更 全てのホストからアクセスできるようにする。

$ sudo vi /etc/postgresql/9.3/main/postgresql.conf
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;

PostgreSQLを再起動。

$ sudo service postgresql restart

ロールのセットアップ

OpenStack各コンポーネントインストール前に実施。postgresユーザーでOpenStackのコンポーネントの管理用のロールとデータベースを作る(以下はKeystoneの例。インストールするコンポーネントに読替えてください)。

・postgresユーザーに切り替え。

$ sudo -i
# su - postgres

psqlコマンドでデフォルトユーザー(postgres)でログイン。

$ psql

・ロールを作成。

postgres=# CREATE ROLE keystone;

・ロールが作成されたことを確認。

postgres=# \du

・ロールのパスワードを変更。

postgres=# ALTER ROLE keystone WITH PASSWORD 'password';

・ロールにログインする権限を与える。

postgres=# ALTER ROLE keystone LOGIN;

・作成したロールが「Cannot login」でないことを確認。

postgres=# \du

・データベースを作成。

postgres=# CREATE DATABASE keystone;

・適切なユーザーにデータベースの特権を与える。

postgres=# GRANT ALL PRIVILEGES ON DATABASE keystone TO keystone;

・ユーザのパスワードを変更。

postgres=# ALTER USER "keystone" with encrypted password 'password';

・DBの確認

postgres=# \list

OpenStack側のセットアップ

マニュアルの手順に従って、インストールおよび設定する。 ただし、コンポーネントSQLの設定は次のように設定。

[database]       ↓注意
connection = postgresql://keystone:password@controller/keystone

Glance以降も同様に設定する。 各コンポーネントでユーザー、パスワード、利用するDBの指定に注意。