KUSANAGI 9 にはコマンドラインから使用できるコマンドがいくつもあります。
以前紹介した migrate もその1つです。
便利なコマンドが色々あるので、また今回も紹介しようと思います。
今回紹介するのは kusanagi status コマンドです。
kusanagi status は KUSANAGI の実行環境の状態を簡単に参照できるコマンドです。
実際にどのような状況で使用するかですが、例えば
- サーバーが正しく動いていないときの初動対応
- KUSANAGIユーザーグループへ問い合わせるときの情報出し
- ミドルウェアに脆弱性があった場合のバージョン確認
などがあげられます。
それでは、実際に kusanagi status を実行した結果を見ていきましょう。
kusanagi status の実行
KUSANAGI の実行環境の状態によって内容が変わります。
まずは、まだ KUSANAGI の VM を立てただけの状態で実行してみます。
# kusanagi status
KUSANAGI Version 9.2.17-1.el8
azure
*** (inactive) nginx : ***
*** (inactive) httpd : httpd ***
*** (inactive) php : ***
*** (inactive) mariadb : ***
*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.15
*** ruby ***
ruby is not installed.
*** Cache status ***
*** WAF ***
off
*** SELinux ***
off
status completed.
#
出力された内容は、最初に KUSANAGI のバージョンとクラウド名、 inactive とミドルウェアの名前が並んで……。
表示される内容の詳細は最後に記載してありますのでそちらを参照していただくとして、重要なのはまだミドルウェアがほとんどインストールされていないという点です。
VM を立てただけの状態でインストールされているのは Python3.9 だけです。
プロビジョン後に kusanagi status の実行
では、この状態で kusanagi init -> provision で WordPress 環境をプロビジョンして、 kusanagi status を実行してみます。
# kusanagi init --passwd (kusanagiユーザーパスワード) --nophrase --dbrootpass (DB rootパスワード)
Generating SSL SESS ticket key for security
Generating 2048bit DHE key for security
(中略)
init completed.
# kusanagi provision --wplang ja --wp --fqdn example-wp.com --noemail --dbname wp_test --dbuser wp_user --dbpass (DBパスワード) wp_test
Target directory is /home/kusanagi/wp_test.
(中略)
provison completed.
# kusanagi status
KUSANAGI Version 9.2.17-1.el8
azure
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 10min ago
*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:29:31 JST; 9min ago
*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:30:35 JST; 8min ago
*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.16
*** ruby ***
ruby is not installed.
*** Cache status ***
*** WAF ***
off
*** SELinux ***
off
status completed.
[root@kusanagi9-status-test ~]#
表示内容がかなり増えました。
最初の KUSANAGI のバージョンとクラウド名は変わりませんが、その後のミドルウェアの名前が並んでいた部分が active に変わったり、ミドルウェアのバージョンやサービスの名前が表示されるようになりました。
これは、init 時に指定したミドルウェアがインストールされ、そのサービスが起動したということになります。
KUSANAGI Version 9.2.17-1.el8 では init コマンド実行時にミドルウェアのオプションを指定しないと、自動的に以下のミドルウェアがインストールされます。
- Nginx 1.23
- PHP 8.0
- MariaDB 10.5
上の表示内容を再度確認します。
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 10min ago
これは Nginx1.23 がインストールされ、サービスが起動(active)したということになります。
しかし、provision コマンド実行時に指定した FQDN などの情報はありません。
今度はプロファイルのディレクトリに移動して、同じように kusanagi status を実行してみます。
# cd /home/kusanagi/wp_test/
# kusanagi status
Profile: wp_test
FQDN: example-wp.com
Type: wp
KUSANAGI Version 9.2.17-1.el8
azure
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago
*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:29:31 JST; 15min ago
*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:30:35 JST; 14min ago
*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.16
*** ruby ***
ruby is not installed.
*** Cache status ***
bcache off
fcache off
*** WAF ***
off
*** SELinux ***
off
status completed.
上部に provision コマンド実行時に指定したプロファイルの情報が表示され、更にミドルウェアの部分の Cache status が表示されました。
このようにプロファイルのディレクトリで kusanagi status を実行すると、そのプロファイルの情報が表示されることが分かります。
別プロファイルで kusanagi status の実行
続いて同じ環境内に Movable Type をプロビジョンし、そのプロファイルのディレクトリで kusanagi status を実行してみます。
# kusanagi provision --mt --fqdn example-mt.com --noemail --dbname mt_test --dbuser mt_user --dbpass (DBパスワード) mt_test
Target directory is /home/kusanagi/mt_test.
(中略)
provison completed.
# cd /home/kusanagi/mt_test/
# kusanagi status
Profile: mt_test
FQDN: example-mt.com
Type: mt
KUSANAGI Version 9.2.17-1.el8
azure
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 21min ago
*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:29:31 JST; 20min ago
*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:30:35 JST; 19min ago
*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.16
*** ruby ***
ruby is not installed.
*** Cache status ***
fcache off
*** WAF ***
off
*** SELinux ***
off
status completed.
先ほどと同様に、上部に provision コマンド実行時に指定したプロファイルの情報が表示されます。
そこで表示された内容の Type を確認します。
Type: mt
このように、Movable Type がプロビジョンされたことが分かります。
kusanagi status [profile] の実行
プロファイルの情報を見たいときは、必ずプロファイルのディレクトリにいる必要があるのでしょうか?
そういうわけではありません。
kusanagi status コマンドには引数としてプロファイル名を指定できます。
プロファイル名とは provision コマンドを実行した際の最後の引数部分です。
kusanagi provision --wplang ja --wp --fqdn example-wp.com --noemail --dbname wp_test --dbuser wp_user --dbpass (DBパスワード)
wp_test <- この部分
# pwd
/root
# kusanagi status wp_test
Profile: wp_test
FQDN: example-wp.com
Type: wp
KUSANAGI Version 9.2.17-1.el8
azure
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 2h 23min ago
*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:29:31 JST; 2h 22min ago
*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:30:35 JST; 2h 21min ago
*** (inactive) psql : ***
*** (inactive) pgpool-II : ***
*** python ***
Python 3.9.16
*** ruby ***
ruby is not installed.
*** Cache status ***
bcache off
fcache off
*** WAF ***
off
*** SELinux ***
off
status completed.
このように、どのディレクトリであってもプロファイル名を指定することで、対象のプロファイルの状態を確認できます。
最後に kusanagi status で表示される内容を説明します。
kusanagi status で表示される内容
Profile: wp_test
表示対象のプロファイル名です。
コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。
FQDN: example-wp.com
表示対象のプロファイルの FQDN 名です。
コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。
Type: wp
表示対象のプロファイルの CMS です。
種類は以下の通りになります。
- wp (WordPress)
- mt (Movable Type)
- drupal(Drupal)
- fcgi (FastCGI)
- lamp (LAMP=プロビジョン時にCMS機能を指定しない)
コマンドを実行したディレクトリがプロファイルのディレクトリ配下でない、またはプロファイル名を指定しない場合は表示されません。
KUSANAGI Version 9.2.17-1.el8
VM にインストールされている KUSANAGI のバージョンになります。
azure
VM が稼働しているクラウド名です。
azure / aws / gcp-launcher などがあります。
*** (active) nginx : nginx123 ***
* nginx.service - The NGINX HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago
VM にインストールされている Nginx サーバーの状態です。
インストールされていない場合、バージョンなどは表示されません。
内容を詳細に説明します。
*** (active) nginx : nginx123 ***
(active) の場合はサービスが起動している、(inactive) の場合はサービスが起動していないことになります。
次は、インストールされているミドルウェアのバージョン(この場合は Nginx1.23 )です。
* nginx.service - The NGINX HTTP and reverse proxy server
ミドルウェアのサービスの情報です。
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
ミドルウェアのサービスユニットが読み込まれているか、サービスユニットへの絶対パス、サービスが有効かどうかの情報です。
内容は systemctl status で表示される内容と同じです。
Active: active (running) since Fri 2023-02-03 14:28:42 JST; 15min ago
ミドルウェアのサービスユニットが実行中かどうか、起動したタイムスタンプの情報です。
内容は systemctl status で表示される内容と同じです。
*** (inactive) httpd : httpd ***
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
VM にインストールされている Apache Web サーバーの状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。
*** (active) php : php80 ***
* php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:29:31 JST; 15min ago
VM にインストールされている PHP(PHP-FPM) の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。
*** (active) mariadb : mariadb10.5 ***
* mariadb.service - MariaDB 10.5.18 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2023-02-03 14:30:35 JST; 14min ago
VM にインストールされている MariaDB(MySQL) の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。
*** (inactive) psql : ***
VM にインストールされている PostgreSQL の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。
*** (inactive) pgpool-II : ***
VM にインストールされている Pgpool-II の状態です。
インストールされていない場合、バージョンなどは表示されません。
内容の詳細は Nginx サーバーと同様です。
*** python ***
Python 3.9.16
VM にインストールされている Python のバージョンです。
KUSANAGI は Python で動くため必ずインストールされています。
*** ruby ***
ruby is not installed.
VM にインストールされている Ruby のバージョンです。
インストールされていない場合、バージョンは表示されません。
*** Cache status ***
bcache off
fcache off
各プロファイルのキャッシュ機能の状態です。
キャッシュ機能が有効であれば on 、無効であれば off となります。
bcache は WordPress 環境以外では表示されません。
*** WAF ***
off
VM の WAF 機能の状態です。
WAF 機能が有効であれば on 、無効であれば off となります。
*** SELinux ***
off
VM の SELinux 機能の状態です。
SELinux 機能が有効であれば on 、無効であれば off となります。
status completed.
完了メッセージです。
以上の内容から、実際に動かしている KUSANAGI の実行環境の状態を確認して KUSANAGI の運用に活用してください。