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

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

2016年01月

「VMWare Player で CentOS を使う」ための情報は溢れていますが、逆の「CentOS で VMWare Player を使う」情報が少なかったのでまとめておきました。RedHat 環境でも同様だと思うので、適宜読み替えてください。


まず CentOS に VMWare Player を使うには X WIndow 環境が前提となります。X Window 未導入の場合は以下のコマンドで事前にインストールしておいてください:
# yum groupinstall "X Window System"

VMWare Player 本体は VMWare のサイトから(非商用であれば)無料で提供されています。Linux 用のモジュールを選んでダウンロードしてください(2016/Jan/22 時点での最新バージョンは 12.1.0 で、Linux 用モジュールのファイル名は VMware-Player-12.1.0-3272444.x86_64.bundle でした):
ダウンロード VMWare Workstation Player

2016012201


ダウンロードしたファイルはシェルで実行可能なインストーラーになっています。X Window 環境内のターミナルからダウンロードファイルを指定して以下を実行します:
# bash VMWare-Player-12.1.0-3272444.x86_64.bundle

VMWare Player のインストーラーが展開されて、インストールウィザードが開始されます:
2016012202


ライセンスに同意して進めていき、インストールを行います:
2016012204


インストールが完了しました!:
2016012205


導入した VMWare Player は CentOS メニューの「システムツール」として登録されているので、ここから起動できます:
2016012206


初回起動時にライセンスの確認が行われます。商用利用の場合はライセンスキーを指定します。非商用利用であればメールアドレスを入力して先に進みます:
2016012207


CentOS 内で VMWare Player が起動しました。ここから先は Windows 版と同様に利用することができます:
2016012208



CentOS に OpenVPN のコマンドラインクライアントを導入する手順を紹介します。


OpenVPN そのものは yum で導入可能ですが、前提として EPEL のリポジトリが必要です。未登録の場合はこのコマンドで EPEL リポジトリを作成しておきます:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

そして EPEL リポジトリから OpenVPN を導入します:
# yum install --enablerepo=epel openvpn

これで導入は完了です。/usr/sbin/openvpn コマンドが導入されたはずです:
# which openvpn
/usr/sbin/openvpn

次に接続の設定を行います。.crt ファイルや .ovpn ファイルが存在する場合はそのまま使います。設定ファイルは /etc/openvpn/ フォルダ以下にまとめてコピーしておきます。ない場合は以下のような内容の接続設定ファイルを作成します(以下は一例です。XX.XX.XX.XX 部分に VPN サーバーのアドレスを指定しています。/etc/openvpn/wasaas-uss.ovpn というファイル名で作成しているものとします):
client
dev tun
proto tcp
remote XX.XX.XX.XX 1194
remote-random
resolv-retry infinite
nobind
persist-key
persist-tun
ca wasaas-uss-ca.crt
cert wasaas-uss-client.crt
key wasaas-uss-client.key
ns-cert-type server
verb 3

接続設定ファイルができたら、そのファイルを指定して OpenVPN クライアントを起動します。なお、このコマンドは VPN 接続中はプロンプトが戻ってこないので、メインで利用するのは別のターミナルを開いて行ってください:
# cd /etc/openvpn
# openvpn /etc/openvpn/wasaas-uss.ovpn

しばらく待つと、以下の様なメッセージが表示されて、VPN 接続が完了したことがわかります(プロンプトは戻ってきません):
  :
  :
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.55.255.64/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.55.255.160/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.45.151.32/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.54.255.192/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.55.4.160/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.55.235.0/27 via 10.255.255.1
Wed Jan 20 17:11:30 2016 /sbin/ip route add 169.45.191.0/25 via 10.255.255.1
Wed Jan 20 17:11:30 2016 Initialization Sequence Completed


この状態で ifconfig コマンドを実行すると、VPN 接続で追加された tun0 デバイスが確認できて、IP アドレスも正しく設定されていることが確認できるはずです:
# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:356 errors:0 dropped:0 overruns:0 frame:0
          TX packets:356 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:228991 (223.6 KiB)  TX bytes:228991 (223.6 KiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.XX.XX.XX  P-t-P:10.255.255.9  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

wlan0     Link encap:Ethernet  HWaddr CC:E1:D5:3E:37:A2  
          inet addr:192.168.0.114  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:627126 errors:0 dropped:0 overruns:0 frame:0
          TX packets:253371 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:272600426 (259.9 MiB)  TX bytes:157587766 (150.2 MiB)

これで VPN 接続ができました。VPN 接続を終了する場合は openvpn コマンドを実行したターミナルで Ctrl+C を実行して、コマンドを終了してください。


IBM Bluemix にはもともと Liberty for Java という Java アプリケーションサーバーのランタイムが用意されています:
2016011903

軽量な Java アプリケーションサーバーである Liberty は Bluemix 上で簡単に使えて、Bluemix のメリットでもあるスケール対応も容易になり、また PaaS としてのメリットでもあるサーバー資産管理が不要になる、などなど、非常にメリットの多い Java アプリケーションサーバーです。

その一方、「IBM の Java アプリケーションサーバーといえば WAS(WebSphere Application Server)」という認識を持っている人も多いと思います。商用 Java アプリケーションサーバーのデファクトスタンダードとしても君臨しており、今でも多くのお客様の環境内で稼働しています。

これまで WAS 環境を Bluemix で利用することはできませんでしたが、現在は WebSphere Application Server on Bluemix という(ランタイムではなく)サービスの1つとして提供されています:
2016011904


このサービスは WAS のサーバーを IBM Cloud 上にホスティングするサービスです。サーバーへのウェブ管理コンソールが提供され、利用者自身が WAS の設定を管理することができます。なお Bluemix 上ではサービスの1つとして提供されていますが実際にはアプリケーションサーバーであり、ランタイムにバインドして使う、というものではありません(バインド未対応):
2016011905


用意されているエディションは Liberty Core(のホスティング版)、WAS Base、WAS ND(Network Deployment)、WAS v9 Classic(ベータ)、そして既に WAS のライセンスをお持ちのユーザーを対象としたライセンス持ち込み利用エディションの5つです。各エディションのスペックと料金はこのページから個別に確認してください。うち WAS v9 Classic (共有 CPU 1個 + メモリ 2GB + ディスク 12 GB + RedHat Linux)はベータ版ということもあり、2016/Jan/19 時点では無料で提供されています。試しにこのエディションを1インスタンス作ってみます:
2016011906


インスタンス作成後の画面がこちらです。管理コンソールに接続するための情報が書かれていますが、その前にサーバーに VPN 接続をする必要があります。VPN 接続に必要なファイルは「VPN 構成のダウンロード」と書かれたボタンをクリックするとダウンロードできます:
2016011901


ダウンロードしたファイル(openVPNConfig.zip)を展開すると、openvpn というディレクトリが作られ、その中に VPN 接続に必要な構成ファイルや鍵ファイルが含まれていることが確認できます:
2016011902


これらのファイルを使って VPN 接続をします。ファイルは OpenVPN 環境用のものなので、自分の環境にあわせて OpenVPN クライアントをセットアップする必要があります。


追記 Linux 環境であればこちらの記事を参照ください
CentOS に OpenVPN クライアントを導入する


例えば Windows 環境であれば OpenVPN のダウンロードサイトにバイナリのインストーラーがあるので、最新版をダウンロードして実行してインストールするだけです、簡単です:
2016011903


デフォルト設定で導入すると、OpenVPN クライアントの導入先フォルダは C:\Program Files\OpenVPN になります。この下の config ディレクトリ(C:\Program Files\OpenVPN\config)に先程ダウンロード&展開した VPN 接続用の設定ファイルと鍵ファイル一式をコピーします:
2016011904


これで準備は整いました。OpenVPN を実行します:
2016011901


実行直後はタスクバーの中で起動します。この時点ではまだ VPN 接続していないのでタスクバーの OpenVPN GUI を探します:
2016011902


OpenVPN GUI のアイコンを右クリックし、wasaas-uss - 接続 を選択します:
2016011903


すると接続ログがダイアログで表示されます。接続されるまでこのまま待ちます:
2016011904


接続されるとダイアログが消え、タスクバー内の OpenVPN GUI が緑色に変わります。これで VPN 接続ができました:
2016011905


VPN 接続後であれば WAS サービスの画面に表示されていた URL を指定するとウェブ管理コンソールのログイン画面が表示されます。同じ画面に表示されていた ID とパスワードでログインします:
2016011901


無事に管理コンソールが表示されました。ここから先は(いつもの?)WAS のように使うことができます:
2016011902


WAS だけでなく、DB2 についても同様のホスティング環境が IBM DB2 on Cloud サービスとして提供されています。これら2つのサービスを併用することで既存のオンプレミス環境を IBM Cloud(Bluemix)上に移行することが可能になります:
2016011908


柔軟な管理機能はそのままに、クラウドメリットを活用できる WAS のサービスも Bluemix から提供された、ということになります。


コマンドプロンプトをずっと使っていたけど、このワザは知らなかった。。。

Windows7 以降では、エクスプロラーで開いているディレクトリをカレントディレクトリとしてコマンドプロンプトを開く、ということが可能になっていました。その手順を紹介します。

まずエクスプローラーで適当なディレクトリを開きます。この例ではデスクトップを開いています:
2016011801


この状態で画面上部のアドレスバーに "cmd" と入力して Enter キーを押します:
2016011802


別ウィンドウでコマンドプロンプトが開き、直前に見ていたフォルダ(この例ではデスクトップ)がカレントディレクトリになっています:
2016011803


IBM Bluemix の cf ツールはカレントディレクトリをドキュメントルートとみなしてアプリケーション一式を転送、なんてことをよくやるので、このオペレーションで今見ているディレクトリをコマンドプロンプトで開けるのはかなり便利だと思いました。エクスプローラーでファイル一覧からテキストエディタで編集して、編集が終わったら cf ツールでプッシュ、という一連の流れをスムーズにできるようにするために多用することになりそうです。

コマンドプロンプトに関するこの手のワザは結構詳しいつもりでいたのですが、これは知らなかった・・・・

Android アプリケーションを開発するための統合環境 Android Studio を CentOS に導入する手順を紹介します。なお、Android Studio は GUI を使うので、CentOS に X Window System などのデスクトップ環境を導入し、かつ VNC などを使って(ターミナル画面ではなく)デスクトップ画面にアクセスできるような環境が構築できているものとします:
2016011701


まず Android Studio を利用するための前提として、1.7 以上の JDK が導入されている必要があります。推奨環境は Oracle Java のようですが、OpenJava(OpenJDK) でも動くようです。というわけで OpenJDK の 1.7.0 以上を導入します(以下の例では 1.8.0 を導入しています):
# yum install java-1.8.0-openjdk-devel

環境によっては 1.7 未満の Java が導入されていて、かつそちらがデフォルトに設定されてしまっている場合もあります。その場合は alternatives コマンドでデフォルトを 1.7 以上に変更しておきます:
# alternatives --config java

3 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java
   2           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
   3           /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java


例えばですが、↑この例では 1.6, 1.5, 1.8 の3つのバージョンが導入されていますが、1.8 を使いたい場合は 3 を選択してシステム上のデフォルト Java バージョンを変更します。


JDK の準備ができたら Android Studio をダウンロードしてインストールします。このダウンロードページ内の、(画面上部の "SDK Tools Only" ではなく)下の方にある "All Android Studio Packages" から、Linux Platform 用の最新版モジュールをダウンロードします。この図の例では android-studio-ide-141.2456560-linux.zip というファイルを CentOS 環境内にダウンロードします:
2016011702


CentOS 側ではダウンロードしたファイルを適当なフォルダ(↓の例では /opt/AndroidStudio)内に展開します:
# mkdir /opt/AndroidStudio
# cd /opt/AndroidStudio
# wget https://dl.google.com/dl/android/studio/ide-zips/1.5.1.0/android-studio-ide-141.2456560-linux.zip
# unzip android-studio-ide-141.2456560-linux.zip
# rm android-studio-ide-141.2456560-linux.zip

ここからはデスクトップ環境を使ってセットアップを行います。CentOS のデスクトップ環境にログインして、先程展開した中の android-studio/bin/studio.sh を実行して、セットアップウィザードを起動します:
# cd /opt/AndroidStudio
# ./android-studio/bin/studio.sh

セットアップウィザードの最初に過去の同環境を引き継ぐかどうかを聞かれます。全くの新規で引き継ぐデータがない場合は "I do not have a previous version of Studio or I do not want to import my settings" を選択して "OK" をクリックします:
2016011701


Android Studio が起動します:
2016011702


最初の起動時にセットアップウィザードが実行されます。"Next" をクリックします:
2016011703


セットアップタイプを選択する画面では "Standard" を選択します:
2016011704


セットアップ内容の確認画面です。問題なければ "Next" をクリックします:
2016011705


最終確認画面です。このまま "Finish" をクリックするとセットアップが開始され、しばらく待ちます:
2016011706


セットアップが完了すると、そのまま Android Studio の起動画面に移行します:
2016011707


以前に試した時よりも設定内容が少なく、洗練された印象です。

 

このページのトップヘ