Bluemix はじめの一歩。CFコマンドの導入は新規アプリ作るのが簡単

次のネタの前フリとしてCFコマンドの導入について書きます。
BluemixはWeb画面で一通りの操作ができますが、CFコマンドでしか出来ない操作があったり、CFコマンドの方が確実に動作したりします。
この記事は「CFコマンドを導入するなら新規アプリを作るのが簡単で早いよ」と言うネタです。

#新規アプリの作成
まずはダッシュボードのアプリの作成をクリックします。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/86ff5d54-b84e-e0fc-7213-329326885b5b.png)

WEBを選択します。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/ab3861c1-b2a6-7205-1ec6-ef3fa086a2ea.png)

アプリケーションは何でも良いです。ここではNode.jsを選びました。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/9fca0ccf-8d85-e8c2-0929-b87d92f4077f.png)

名前を決めます。他の人と重複した名前は付けられません。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/f3e301a4-2754-f67f-bb1b-404e1532068b.png)
作成が完了しました。

#CFインストールガイドの表示
**この記事のポイントはココ**、このページにはCFコマンドのインストールからログイン、サンプルアプリの更新までの手順が自分のアカウント応じた内容で表示してくれます。クリップボードへのコピーも付いてますから打鍵ミスの心配もありません。ユーザーに合わせたガイドを提供するのは紙の手順書には出来ない新しくて素敵な仕組みだと思います。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/7e3352d1-1aec-7039-ffe5-0ec566e5e8bc.png)

#CFコマンドのインストール
折角なのでインストールの手順も書いておきます。

CFコマンドのダウンロードボタンを押すとダウンロードページが開くので環境に合わせた物をダウンロードします。私はWin7 64bitなので図のインストーラーを選びました。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/af438b12-d0e9-9efd-4925-51ecce167e53.png)
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/f8bfcf5e-3bc2-ca03-4f3e-a2ddaa3879b3.png)

インストーラーはzip形式なので展開し、```cf_installer.exe```を実行します。
インストーラーが起動するので、導入先を覚えておきましょう。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/5f94d797-0bbe-723d-20c5-26d89bc7d214.png)

#CFコマンドの起動～疎通確認
手順に従い、まずはスターターコードをダウンドーロし、zipを展開します。
コマンドプロンプトを開き展開先に移動します。NodeJsの初期アプリは図の様な構成です。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/19bd866e-a44e-fbb0-b854-c2727210c6ae.png)

手順4,5でCFコマンドを使用してbluemixに接続します。（自分の画面に従って入力して下さいネw）
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/03797987-3640-e956-5b13-1433c603182a.png)

手順6でアプリケーションをデプロイするとあります。まず変更前の表示を確認しておきましょう。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/4d45768d-8222-d7e9-e262-b6cd069ba8f1.png)
次にダウンロードしたファイルを編集してみます。```public/index.html```の"Hi there!"の部分を"Hi Yamazaki!!"に書き換えてみます。
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/1852c968-5add-3cb6-79ca-a323f78a5e3e.png)

保存したらpushしてみます。
```C:\_wk\NodeJs002>cf push NodeJs002
Using manifest file C:\_wk\NodeJs002\manifest.yml
Updating app NodeJs002 in org hyamazak@jp.ibm.com / space dev as hyamazak@jp.ibm.com...
OK
Using route nodejs002.mybluemix.net
Uploading NodeJs002...
Uploading app files from: C:\_wk\NodeJs002
Uploading 18.7K, 10 files
Done uploading
OK
Stopping app NodeJs002 in org hyamazak@jp.ibm.com / space dev as hyamazak@jp.ibm.com...
OK
Starting app NodeJs002 in org hyamazak@jp.ibm.com / space dev as hyamazak@jp.ibm.com...
-----> Downloaded app package (20K)
-----> Downloaded app buildpack cache (636K)
-----> IBM SDK for Node.js Buildpack v2.7-20151118-1003
       Based on Cloud Foundry Node.js Buildpack v1.5.0
-----> Creating runtime environment
       NPM_CONFIG_LOGLEVEL=error
       NPM_CONFIG_PRODUCTION=true
       NODE_MODULES_CACHE=true
-----> Installing binaries
       engines.node (package.json):  0.12.x
       engines.npm (package.json):   unspecified (use default)
       Resolving node version 0.12.x via 'node-version-resolver'
       Installing IBM SDK for Node.js (0.12.7) from cache
       Using default npm version: 2.11.3
-----> Restoring cache
       Loading 1 from cacheDirectories (default):
       - node_modules
-----> Building dependencies
       Pruning any extraneous modules
       Installing node modules (package.json)
-----> Installing App Management
-----> Caching build
       Clearing previous node cache
       Saving 1 cacheDirectories (default):
       - node_modules
-----> Build succeeded!
       ├── cfenv@1.0.3
       └── express@4.12.4
-----> Uploading droplet (14M)
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App NodeJs002 was started using this command `./vendor/initial_startup.rb`
Showing health and status for app NodeJs002 in org hyamazak@jp.ibm.com / space dev as hyamazak@jp.ibm.com...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: nodejs002.mybluemix.net
package uploaded: Fri Dec 4 04:28:21 UTC 2015
stack: cflinuxfs2
buildpack: SDK for Node.js(TM) (ibm-node.js-0.12.7)
     state     since                    cpu    memory        disk          details
   running   2015-12-04 01:29:10 PM   0.0%   70M of 256M   54.1M of 1G
C:\_wk\NodeJs002>
```
無事デプロイが終わりました。ブラウザを再表示するとちゃんと書き換わってます♪
![image](https://qiita-image-store.s3.amazonaws.com/0/99329/b49dd36e-509f-5ac1-fe3c-c4ebae80c7bd.png)

#と言うことで
後半はオマケですが、CFコマンドをインストールする際は新規アプリを作って指示取りに疎通確認まで済ませるのが簡単ですよと言うネタでした。