All Your Bugs Are Belong To Ass

VZNopeというOpenVZ wrapperの紹介 (2)

前回のエントリはこちら

コンテナの一覧を見てみる

vzn list コマンドで、出来上がったコンテナの概要を一覧でみることができます。

~$ vzn list
  VEID              NAME      COMMIT    STATUS        IP_ADDRESS         PHYSPAGES         SWAPPAGES         DISKSPACE  CPUUNITS
----------------------------------------------------------------------------------------------------------------------------------
   101     kangaroo_gold     5970b35   running   192.168.230.101            0:256M            0:512M           2G:2.2G      1000
----------------------------------------------------------------------------------------------------------------------------------

ここでは、kangaroo_goldなんて名前でコンテナが作られたのがわかりますね。その他、稼働状況やIPアドレス、メモリやディスク、CPUリソースの割り当てなんかも、この一覧で見ることができます。COMMITについては後ほど解説します。

コンテナの中で何かを実行する

出来上がったコンテナにmysql-serverを入れてみます。コンテナに対して変更を加える際、基本的には vzn exec コマンドを通して実際のコマンドを実行します。vzn exec コマンドは、指定したコンテナにて、与えられたコマンドをコンテナのroot権限で実行します。文法は以下の通り。

vzn exec [コンテナIDまたはコンテナ名] [実行させたいコマンド]

その前に、yum updateを実行して、パッケージ情報の更新をしておきましょう。

vzn exec kangaroo_gold yum -y update

mysql-serverを入れてみる

ではいよいよmysqlのインストールです。今回はyumを使ってインストールしてみます。

centos6でyumを使ってmysqlを入れる場合には yum install mysql-server などのようなコマンドを実行すると思いますが、それをほぼそのまま vzn exec コマンドの引数として渡してあげるのです。

vzn exec kangaroo_gold yum install mysql-server

しかし、このままですとmysql-serverはインストールできません。どうして?それは、通常yum installは本当に指定したパッケージをインストールするかどうかをy/nで質問してきますし、デフォルトがNなので、インストールされずにコマンドが終了してしまうのです。ですので、実際にmysql-serverをインストールしたければ、

vzn exec kangaroo_gold yum -y install mysql-server

とする必要があります。実際に実行してみると、以下のように特に問題なくインストールされました。

~$ vzn exec kangaroo_gold yum -y install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package mysql-server.x86_64 0:5.1.73-3.el6_5 will be installed
--> Processing Dependency: mysql = 5.1.73-3.el6_5 for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: perl-DBI for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: perl(DBI) for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: libmysqlclient_r.so.16(libmysqlclient_16)(64bit) for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: libmysqlclient.so.16(libmysqlclient_16)(64bit) for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: libmysqlclient_r.so.16()(64bit) for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: mysql-server-5.1.73-3.el6_5.x86_64
--> Running transaction check
---> Package mysql.x86_64 0:5.1.73-3.el6_5 will be installed
---> Package mysql-libs.x86_64 0:5.1.73-3.el6_5 will be installed
---> Package perl-DBD-MySQL.x86_64 0:4.013-3.el6 will be installed
---> Package perl-DBI.x86_64 0:1.609-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch          Version               Repository      Size
================================================================================
Installing:
 mysql-server          x86_64        5.1.73-3.el6_5        updates        8.6 M
Installing for dependencies:
 mysql                 x86_64        5.1.73-3.el6_5        updates        894 k
 mysql-libs            x86_64        5.1.73-3.el6_5        updates        1.2 M
 perl-DBD-MySQL        x86_64        4.013-3.el6           base           134 k
 perl-DBI              x86_64        1.609-4.el6           base           705 k

Transaction Summary
================================================================================
Install       5 Package(s)

Total download size: 12 M
Installed size: 33 M
Downloading Packages:
--------------------------------------------------------------------------------
Total                                           4.7 MB/s |  12 MB     00:02     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : mysql-libs-5.1.73-3.el6_5.x86_64                             1/5 
  Installing : perl-DBI-1.609-4.el6.x86_64                                  2/5 
  Installing : perl-DBD-MySQL-4.013-3.el6.x86_64                            3/5 
  Installing : mysql-5.1.73-3.el6_5.x86_64                                  4/5 
  Installing : mysql-server-5.1.73-3.el6_5.x86_64                           5/5 
  Verifying  : perl-DBD-MySQL-4.013-3.el6.x86_64                            1/5 
  Verifying  : mysql-libs-5.1.73-3.el6_5.x86_64                             2/5 
  Verifying  : mysql-server-5.1.73-3.el6_5.x86_64                           3/5 
  Verifying  : mysql-5.1.73-3.el6_5.x86_64                                  4/5 
  Verifying  : perl-DBI-1.609-4.el6.x86_64                                  5/5 

Installed:
  mysql-server.x86_64 0:5.1.73-3.el6_5                                          

Dependency Installed:
  mysql.x86_64 0:5.1.73-3.el6_5           mysql-libs.x86_64 0:5.1.73-3.el6_5    
  perl-DBD-MySQL.x86_64 0:4.013-3.el6     perl-DBI.x86_64 0:1.609-4.el6         

Complete!

ついでにmysqldを起動してみましょう。これもvzn exec 経由で行います。

~$ vzn exec kangaroo_gold service mysqld start
Initializing MySQL database:  Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h kangaroo_gold password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

[  OK  ]
Starting mysqld:  [  OK  ]

特に問題なく起動できました。あと、コンテナが起動したら一緒にmysqldが起きるように設定しましょう。

~$ vzn exec kangaroo_gold chkconfig mysqld on

これでコンテナが起動したときにmysqldが起き上がるようになりました。

コンテナの中に入り込んでみよう

これまで、コンテナでいくつかのコマンドを実行するのにvzn execコマンドを通してきました。

何故かというと、vzn execコマンドは「コンテナに変更を加える場合に使う」べきコマンドだからでして、実際どれもコンテナに変更を加えるものばかりを実行してきたわけです。

では、例えば「mysqldの起動状況を確認したい」といったような、「コンテナに変更を加えない」ことを行う場合にはどうすればいいのでしょうか。それは vzn enterコマンドを使って、直接コンテナの中に入り込んで確認すると良いのです。vzn enterの文法は以下の通りです。

vzn enter [コンテナIDまたはコンテナ名]

実際にmysqldの起動状況を見てみましょう。

~$ vzn enter kangaroo_gold
entered into CT 101
[root@kangaroo_gold /]# service mysqld status
mysqld (pid  865) is running...

起動してますね。なお、exitコマンドで、enterしたコンテナのシェルから抜けることができます。

(3)へ続く

Created at
by
ytnobody
Last modified at
2014-06-26 16:50
by
ytnobody