仮想化通信

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

社内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の指定に注意。

Vagrantで複数の仮想マシンをいっぺんに作る

Vagrant仮想マシンを作るには、ディレクトリーを掘って、vagrant initをして設定ファイルのサンプルを作って、その設定を書き換えてvagrant upといった一連の作業を行います。数台であればこれの繰り返しでいいのですが、ディレクトリーの移動が面倒ですよね。

同じように考えている人は多いようで、検索したところ方法を書いてくれている人がいました。

通常、一つの仮想マシンを制御するためのVagrantファイルには次のような記述が羅列してありますが、

config.vm.box = "precise"
config.vm.hostname = "precise"
config.vm.network "public_network", bridge: 'en0: Ethernet'

複数の仮想マシンを制御するためのVagrantファイルには次のように記述するようです。パラメータの冒頭がconfigでないところがポイントです。

VAGRANTFILE_API_VERSION = "2"     ← 追記

Vagrant.configure(2) do |config|
config.vm.define :node1 do |node1|
node1.vm.box = "precise"
node1.vm.hostname = "node1"
node1.vm.network "public_network", bridge: 'en0: Ethernet'
end

config.vm.define :node2 do |node2|
node2.vm.box = "precise"
node2.vm.hostname = "node2"
node2.vm.network "public_network", bridge: 'en0: Ethernet'
end

(以下略)

vm名.vm.設定値 ="設定"」のようなルールでつらつらと書いていけばいいようです。上記の例では2つの仮想マシンが作られ、各仮想マシンにhostnemeで指定したホスト名が設定され、3行目の設定でブリッジアダプターが割り当てられます。同じように設定を追記すれば、それぞれの仮想マシンをカスタマイズして希望通りの仮想マシンを自動的に作成できます。便利ですね。

さらに次のようにaptコマンドを仕込めば、任意のパッケージインストール済みの環境も簡単に作ることができます。

config.vm.define :node1 do |node1|
node1.vm.box = "precise"
node1.vm.hostname = "node1"
node1.vm.network "public_network", bridge: 'en0: Ethernet'
node1.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y apache2
SHELL
end