まだプログラマーですが何か?

プログラマーネタ中心。たまに作成したウェブサービス関連の話も https://twitter.com/dotnsf

タグ:linux

Linux を使っている時に、ディスクの余った領域を SWAP ファイルとして作成し、SWAP 領域を増やす手順です。OS を起動したまま、サービスを止めることなく変更します。


まず増やす前の状態を確認しておきます:
# free -m
             total       used       free     shared    buffers     cached
Mem:           996        918         77          3          3        586
-/+ buffers/cache:        328        667
Swap:         1023          1       1022

現在のスワップは約 1GB(1023 MB)になっています。この領域を 1024 MB 増やして、約 2GB にします。

方法としては /var/swapfile という 1GB のファイルを作り、このファイルをスワップとして利用します:
# dd if=/dev/zero of=/var/swapfile bs=1M count=1024
# mkswap /var/swapfile
# swapon /var/swapfile

ここまでの作業が出来たら改めて状態を確認します:
# free -m
             total       used       free     shared    buffers     cached
Mem:           996        918         77          3          3        586
-/+ buffers/cache:        328        667
Swap:         2047          1       2046

SWAP メモリが約 2GB に増えました。なお、このまま元の状態(SWAP メモリ 1GB)に戻す場合は swapoff コマンドを利用します:
# swapoff /var/swapfile

このままだと次回起動時には SWAP メモリは 1GB に戻ります。次回起動時以降は SWAP メモリ 2GB の状態で起動させたい場合は、以下のコマンドを実行して /etc/fstab ファイルを書き換えます:
# echo "/var/swapfile        swap                    swap    defaults        0 0" >> /etc/fstab

 

IBM LinuxONE(メインフレーム版 Linux)に IBM Domino をインストールすることに挑戦してみました:2017012200


いくつか前提を紹介します。まず LinuxONE の環境は IBM LinuxONE コミュニティクラウド上の RHEL 6.x のサーバーインスタンスを使うことにします(最大 120 日間無料で使えます)。また IBM Domino を導入する際にはその環境に X Window のデスクトップ GUI が必要です。これらの環境を用意するまでの手順はこちらを参照ください:
IBM LinuxONE コミュニティクラウド上で X Window のデスクトップ環境を構築する


次に IBM Domino ですが、これは無料で入手できるものではありません。IBM Domino のサブスクリプション契約をお持ちで、インストールモジュールをダウンロードする権利をお持ちの人のみが入手可能なものです。

(訂正)
IBM Domino は IBM 無料トライアルダウンロードプログラムに含まれており、IBM LinuxONE 向けのエディションもこの対象でした:
https://www.ibm.com/developerworks/downloads/ls/lsds/

2017012302


IBM ID をお持ちか作成いただくことで、こちらからトライアル版をダウンロードしてご利用いただくことも可能です:
2017012301



(有効なサブスクリプション契約をお持ちの場合は、)"Linux for z System" 向けの IBM Domino の最新版をダウンロードしてください。ちなみに 2017/Jan/22 時点では V9.0 英語版がパーツ番号 CIBM5EN で検索することで見つけることができるはずです。ファイル名は DOMINO_9.0_64BIT_LIN_ZS_EN.tar でした。このファイルを入手済みであるとして、以下を紹介します。

LinuxONE に限らないのですが、Linux 版の IBM Domino は導入前に root ではない実行時のユーザーおよびそのグループを OS 内に作成しておく必要があります。以下、notes グループの notes ユーザーによって実行する前提として、これらのグループとユーザーを作成しておきます:
# groupadd notes
# useradd notes -g notes

ユーザーを作成したら、ダウンロードしたインストールモジュールファイルを展開し、zlinux64/domino フォルダ内のインストーラー(install)をコマンドラインから実行してインストール作業を行います:
# cd /data
# ls
DOMINO_9.0_64BIT_LIN_ZS_EN.tar

# tar xvf DOMINO_9.0_64BIT_LIN_ZS_EN.tar

# cd zlinux64/domino

# ./install

インストーラーを実行すると、次のようなインストール画面に切り替わります。ここから次へは TAB、変更時はスペース+変更内容+Enter で、必要に応じてオプションを編集しながらインストーラーの作業を進めます:

2017012002


LinuxONE で利用する場合、唯一意識すべきはインストール先のディスクだと思われます。比較的メインディスクに空きがない状態で導入するには /data 以下を指定して導入するようにします。以下の例はデータディレクトリをデフォルトの /local/notesdata から /data/local/notesdata に変更している様子です:
2017012003


最終確認画面が表示されています。問題なければ TAB キーでインストールが開始されます:
2017012004


インストールが完了しても、IBM Domino の場合はセットアップを行わないと動きません。というわけでセットアップに移りますが、その前に1つ作業があります。 xhost の設定をしておかないとセットアップ時に利用する GUI のウィンドウが開かないのです。

またここからは X Window システムのデスクトップ GUI 環境が必要になります。というわけでまずは VNC クライアントを使ってこのサーバーのデスクトップを開いてターミナルを起動し、この xhost コマンドで notes ユーザーの画面でインストーラーウィンドウが開くようにしておきます:
# xhost +local:notes

そのまま続けて notes ユーザーに su し( root ユーザーでは server は起動しません)、ノーツデータディレクトリがカレントディレクトリになっている状態から server を実行します。これ実はサーバーの起動手順と同じですが、最初の一回はセットアップモードでの起動が行われます:
# su - notes

$ cd /data/local/notesdata
$ /opt/ibm/domino/bin/server

すると GUI に Domino セットアップのフラッシュスクリーンが表示され・・・
2017012005


しばらくすると、見慣れた Domino サーバーセットアップの画面に遷移します。ここからはいつもの(Windows とかの)セットアップと同じです:
2017012006


セットアップが完了し、再度 server コマンドを実行すると、今度は Domino サーバーがコンソール内で起動し、Domino サーバーとして利用可能になります:
zdomino


IBM Domino は有料のソフトウェア製品であり、この製品(特に IBM z Systems 版)を無料で入手する方法は限られてしまいますが、その手段をお持ちの方であればのインストールモジュールを入手する方法がちと面倒ではありますが、IBM Domino はメインフレーム上のパブリッククラウド Linux に導入して使うまでの環境は(IBM LinuxONE コミュニティクラウドを使うことで)無料で用意できることになります。

試験的な利用も含め、パブリッククラウド上で IBM Domino の環境を作って動かしてみたい、という方は是非一度お試しください。

CentOS や RHEL で便利に利用されているパッケージ管理コマンドの "yum" 。このコマンドの便利な使い方の1つが groupinstall と呼ばれる機能です。ある環境を用意しようとした際に複数のパッケージを導入しないといけない場合、その複数のパッケージを1つの「グループパッケージ」のまとまりとみなし、グループパッケージ1つを指定して導入することで環境構築が可能になります。

個人的によく使う例で紹介すると、GUI のデスクトップ環境であれば "Desktop"、日本語サポート環境であれば "Japanese Support" などです。それぞれ以下のコマンドで導入できます:
(デスクトップ環境)
# yum groupinstall "Desktop"
(日本語サポート環境) # yum groupinstall "Japanese Support"

上記のようにグループパッケージを指定するだけでまとまったパッケージを導入できるのは便利なのですが、ではこれらのコマンドで実際にどのようなパッケージが導入されるのかを調べる方法はあるでしょうか? その答が yum の groupinfo コマンドです。例えば "Desktop" で何が導入されるのかを確認するには以下のようなコマンドを実行します(黒字が入力、青字が出力結果です):
# yum groupinfo "Desktop"
  :
  :
グループ: デスクトップ
 説明: シンクライアントとして使用できる最低限のデスクトップ
 強制的なパッケージ:
   NetworkManager
   NetworkManager-gnome
   alsa-plugins-pulseaudio
   at-spi
   control-center
   dbus
   gdm
   gdm-user-switch-applet
   gnome-panel
   gnome-power-manager
   gnome-screensaver
   gnome-session
   gnome-terminal
   gvfs-archive
   gvfs-fuse
   gvfs-smb
   metacity
   nautilus
   notification-daemon
   polkit-gnome
   xdg-user-dirs-gtk
   yelp
 標準パッケージ:
   control-center-extra
   eog
   gdm-plugin-fingerprint
   gnome-applets
   gnome-media
   gnome-packagekit
   gnome-vfs2-smb
   gok
   openssh-askpass
   orca
   pulseaudio-module-gconf
   pulseaudio-module-x11
   vino
 オプション パッケージ:
   sabayon-apply
   tigervnc-server
   xguest


同様に "Japanese Support" の場合は以下のようになりました:
# yum groupinfo "Japanese Support"
  :
  :
グループ: 日本語のサポート
 Language: ja
 標準パッケージ:
   ipa-gothic-fonts
   ipa-mincho-fonts
   ipa-pgothic-fonts
   ipa-pmincho-fonts
   vlgothic-fonts
   vlgothic-p-fonts
 条件付パッケージ:
   autocorr-ja
   eclipse-nls-ja
   ibus-anthy
   kde-i18n-Japanese
   kde-l10n-Japanese
   libreoffice-langpack-ja
   man-pages-ja
   poppler-data


これらの結果の中の「強制的パッケージ」と「標準パッケージ」が groupinstall コマンドによって導入されます。また「オプションパッケージ」や「条件付きパッケージ」が導入可能になります。

滅多にはないのですが、CentOS/RHEL の環境によっては "yum groupinstall" コマンドが使えないこともあります。その場合はここに記載した情報を使って "yum install" で同様の環境構築が可能になります。

※ここに記載されていないグループパッケージを導入する場合は、"yum groupinfo" の使える環境でパッケージを確認し、そこにリストされたパッケージを "yum install" する、という形になります。


この記事の続きです:


IBM LinuxONE コミュニティクラウド上に作った仮想サーバーにいわゆる "LAMP"(=Linux + Apache HTTPD + MySQL + PHP) 環境を構築してみます。まずは上記記事を参考に仮想サーバーを作り、SSH でリモートログインします:
2017010403


ミドルウェアの導入作業を伴うため、ルート権限を持ったユーザーにスイッチしておきます:
$ sudo /bin/bash
#


LAMP 環境に必要なミドルウェアや言語環境をまとめて導入します(赤字はコメント):
# yum install httpd -y (Apache HTTP サーバー)
# yum install mysql-server mysql -y (MySQL)
# yum install php php-mbstring php-mysql php-gd php-pear php-xml php-devel -y (PHP)

また以下は LAMP 環境構築においては必須ではありませんが、使うことも多いというか、あると便利だと思うので必要に応じて導入しておいてください:
# yum install screen -y (screen)
# yum install git -y (git)
# yum install java-1.8.0-ibm-devel -y (JDK 1.8)

ミドルウェアを起動する前にファイアウォールの設定を行います。デフォルトの LinuxONE では iptables によるファイアウォールが有効になっており、このままでは http(s) によるアクセスができません。今回の環境では iptables を無効にしておきましょう:
# /etc/init.d/iptables stop
# chkconfig iptables off

あらためて各ミドルウェアを起動し、また自動起動設定をしておきます:
# /etc/init.d/httpd start
# /etc/init.d/httpd mysqld
# chkconfig httpd on
# chkconfig mysqld on
# exit
$

この時点で Apache HTTP サーバーが動いています。iptables の解除が成功していれば http://(IPアドレス)/ にアクセスすることができるようになっているはずです:
2017010601


さて、MySQL に関しては root のパスワードを設定しておきましょう。この例では P@ssw0rd というパスワードにしていますが、ここは必要に応じて変えてください:
$ mysql -u root

mysql> set password for root@localhost=PASSWORD('P@ssw0rd');
mysql> exit

これで LinuxONE 上でも LAMP の環境が作れました! ちなみに PHP のバージョンは 5.3.3 が導入できます:
$ php -v
PHP 5.3.3 (cli) (built: Dec 15 2015 04:50:47)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

メインフレーム(IBM z Systems)の Linux 環境である LinuxONE を無料で 120 日間試用できる IBM LinuxONE コミュニティクラウドを紹介します:
https://developer.ibm.com/linuxone/


なお、この記事は 2015 年 12 月に公開したこの記事に似ていますが、いくつか変更点があるため、内容を 2017 年1月時点の最新版にして書き直したものです:
LinuxONE Community Cloud を使う


予定としては、この LinuxONE コミュニティクラウドを使って、cakePHP が動く環境を構築する所までの一通りの手順を紹介しようと思っています。とりあえず今回は同環境にユーザー登録してサーバーを申し込み、そのサーバーにアクセスするまでの手順を紹介します。


まず、ユーザー登録を行うため、IBM LinuxONE Community Cloud にアクセスし、トップページの "Request your trial" と書かれたボタンをクリックします(Ubuntu 環境を選択する場合のみ右側の "Test drive it now" ボタンをクリックします):
2017010401


LinuxONE の申込画面に移動します。ここでは名前や住所、メールアドレスなどを英語で入力していきます。一番下のテキスト欄には申込みの利用目的を記載してください:
2017010402


画面下にスクロールし、2箇所のチェックボックスにチェックを入れます。そして SMS を受け取れる(つまり手元にある)携帯電話の番号を入力します。国番号は日本の "81" を選択し、電話番号の最初の 0 を除いた番号( 080 で始まる場合であれば 80 から)を記載して、"Get Code" ボタンをクリックします:
2017010403


しばらくすると、指定した携帯電話の SMS に数字の登録コードが送られてきます:
IMG_0163


先程の画面に戻り、入手した登録コードを "Get code" ボタンの右にあるフィールドに入力して "Request your trial" ボタンをクリックします:
2017010404


暫く待つと、指定したメールアドレスに登録結果が送られてきます。成功していると、LinuxONE コミュニティクラウドへのリンクと、ログイン時に指定する User ID (メールアドレス)およびパスワードが記載されています。これでサインアップは完了です:
2017010405


では IBM LinuxONE コミュニティクラウドにログインしてみましょう。メールで送られてきた URL にブラウザでアクセスし、サインイン画面が表示されたらメールで受け取った User ID とパスワードを入力して、"Sign in" ボタンをクリックします:
2017010406


正しくログインできると以下のようなトップ画面に移動します。今回はここから仮想サーバーを作成したいので、Virtual Servers の "Manage Instances" と書かれたボタンをクリックします:
2017010401


最初の段階ではまだサーバーが1つも存在してないはずなので、以下のような画面になります(作成後は簡易ステータス画面になります)。それでは LinuxONE のインスタンスを作成するため、この画面の "Create" ボタンをクリックします:
2017010402


Step 1 では最初にインスタンス名、次にその説明文を入力します。その下の Step 2 では OS のイメージを選択します(この図では RHEL 6.7 を選択していますが、SuSE Linux も含めて好きなディストリビューション/バージョンを選んでください):
2017010403


その下の Step 3 ではサーバースペックを選択します。そして Step 4 ではログイン時に利用する SSH 鍵を指定します。鍵ペアのファイルを手元に持っている場合はそれをアップロードしていただいても構いません。ここでは新規に作成する前提で紹介しますので "Create" をクリックします:
2017010404


鍵の名前を入力し、"Create a new key pair" ボタンをクリックします:
2017010405


PEM 形式の秘密鍵ファイルのダウンロードが始まるので、これを保存してください:
2017010406


作成した鍵は画面から選択できるようになっているはずです。この鍵を選んで、最後に "Create" ボタンをクリックしてください:
2017010407


元の画面に戻ります。先程はサーバーインスタンスが1つも存在していなかったのですが、作成したサーバーが準備されています(この時点ではまだ準備中です):
2017010408


数分待ってステータス(Status)欄が Active に変わるとサーバーインスタンスが準備完了です。IP Address 欄を見ると、このサーバーの IP アドレスが表示されていることも確認できます:
2017010409


ではこのサーバーにリモートログインしてみましょう。SSH クライアントを使って、確認した IP アドレスに接続します(図は Windows の Tera Term):
2017010401


認証ではユーザー名に "linux1" を指定します。パスフレーズはなしで、鍵ファイルに先程ダウンロードしたファイルを指定します:
2017010402


IBM LinuxONE コミュニティクラウドのサーバーにログインできました!
2017010403


念のため /proc/cpuinfo を cat してみます。アーキテクチャが IBM/S390 になっていて、メインフレームサーバーが使われていることがわかります:
2017010404


以前試した時は DNS の設定が不十分だったりして、ここから更にネットワークの環境設定が必要だったりしたのですが、現在ではそういったこともなく、このまま利用開始できるサーバーとなっています。

(注 2017/Jan/11 追記)
現在でも LinuxONE コミュニティクラウドの RHEL6 では DNS の設定が不充分でした。 /etc/sysconfig/network-scripts/ifcfg-eth0 の最後に以下の1行を加えるなりして、DNS サーバーを手動で設定する必要があります:
  :
  :
DNS1=8.8.8.8

この LinuxONE の環境は 120 日間使える仮想サーバーなので、色々な使い勝手があります。次回以降で LAMP としての環境構築も含めて紹介する予定です。



このページのトップヘ