2015年4月30日木曜日

【Unity、Mac】エディタをVisual Studio Codeに変更する。

昨夜発表されて話題になってたVisualStudioCode、インストールしてUnityで使えるように設定してみました。
今日はMacでのお話。Windowsの人はVisualStudio使ってるだろうし。

環境

OS X Yosemite 10.10.3
Unity 5.0.0 f4
Visual Studio Code 0.1.0

Visual Studio Codeのインストール

https://code.visualstudio.com/
ここから落としてきて解凍。アプリケーションフォルダに移動するだけ。
簡単に起動した。

Unityでの設定

Unityメニュー->Unity->Preferences

External Tools->External Script Editor->Browse...

Visual Studio Code.appを選択

ソリューションファイルを開く

Unityメニュー->Assets->Sync MonoDevelop Project

これでソリューションファイル(.sln)が作られてVisual Studio Codeで開かれる。
File->Open(もしくはCommand+Option+O) でフォルダを開くダイアログを開き、
Unityのプロジェクトフォルダ(.slnファイルがあるフォルダ)を選択する。
Visual Studio Codeの一番下に pick a project と表示されていると思うのでそれを押す。

ソリューションファイルを選択します。どっちでも良さそう?短い方を選んだ。
変なコンソール立ち上がったけど使いそうにないので閉じとく。
(どうみてもブラウザのデバッグウィンドウだな•••)

肝心のエディタ側はエラー出てる。
Error: Cannot start Omnisharp because Mono version >=3.10.0 is required

エラー対応(monoのインストール)

UnityについてくるMonoが古いからこのエラー出るっぽい。
terminal.app起動して brew install mono
$ brew install mono
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mono-3.10.0
######################################################################## 100.0%
==> Pouring mono-3.10.0.yosemite.bottle.tar.gz
==> Caveats
To use the assemblies from other formulae you need to set:
  export MONO_GAC_PREFIX="/usr/local"
==> Summary
🍺  /usr/local/Cellar/mono/3.10.0: 1128 files, 218M

エディタ再起動

もいちどSync MonoDevelop Project でOK
エラーなく起動した〜。

感想

難なくインストールできた。
ちょー軽いしgitも認識してくれるみたいでいい感じ。
変数や関数の参照数を出してくれるのもいいね。インラインで参照元も見れるし。
Atomと同じくCommand+Pでなんでも検索ボックスが出てくるみたい。
(画像はコード整形したかったから検索してみた図)
やりたいことができない場合はとりあえずこれ開いて適当に入力してみるといいかも。

そのうちAtomのようにプラグインパラダイスになるんやろなー。
しばらく使ってみましょい。

20150501追記

今まで痛MonoDevelopを使ってたみなさん。
痛VSCodeにも出来るみたいですよ~。

標準MonoDevelopだと日本語入力ができなくて不便だから痛MonoDevelopにしたはずなのに。
あれ、いなくなると寂しい・・・って方、下記を参考にどうぞ。


2015年4月1日水曜日

ConoHaのVPSにchefを使ってRails環境を構築する。~knife solo 準備編~


最近ConoHaのVPSで遊んでます。
安いしコンソール見やすいしいい感じ。

最終的にはRails環境を作りたいんだけどせっかくなのでChefを使ってやってみる。
ただLinuxもあまり分からないから調べることだらけ。
なんとかchef soloが通るとこまで行ったので一旦メモしておきます。

まだまだ頭の中整理できてないので変なこと書いてたら指摘お願いします。

やりたいこと

・標準テンプレートOSをインストールしたConoHaVPSに対して、
・できるだけ少ない手順で knife solo cook が通るようにする。
まずはここまで。

環境

MacBookAir 2013 Mid
OS X Yosemite 10.10.2
Chef Solo 12.1.1(どうやって入れたか覚えてない)

手順

VPSの作成

OSはテンプレートイメージの CentOS 6.5 を選択。

残りは全部安いやつ。
1〜2分待てば起動する。

ローカル側でSSH接続準備

ConoHaコントロールパネルからSSH Private Keyをダウンロードする。
1234567-1.keyみたいな名前。とりあえずホームディレクトリ(~/)に置く。
ここからローカル側Macのターミナル.appで操作

ローカル側(MacBookAir)
$ cd ~
// ~/.sshフォルダが存在しない場合はフォルダ作成
$ mkdir .ssh
$ chmod 700 .ssh/
$ mv 1234567-1.key .ssh/conoha_private_key
$ cd .ssh/
$ chmod 600 conoha_private_key 
$ vi config 
//configファイルは下記のようにして保存。すでにある場合は追記する。
Host conoha
  HostName [VPSのIP]
  IdentityFile ~/.ssh/conoha_private_key
  User root

//うまく設定できていれば下記コマンドでssh接続ができるはず。
$ ssh conoha
[root@v[xxx-xxx-xxx-xxx]] ~]# logout
Connection to xxx.xxx.xxx.xxx closed.
//成功

どうもConoHaの標準テンプレートを使うとVPS作成時に選んだ秘密鍵でrootへSSH接続できるみたい。 この鍵はVPSをホストしている共有サーバ部分への接続にも使うらしいからあまり共用しない方がいい気がするけどよくわからん。もう少し詳しくなってから考えることにする。

VPS側でChef接続用ユーザーの作成

Chefを実行するためにはSSH接続可能且つパスワードなしでsudo可能なユーザーが必要らしい。ConoHa側に専用の'chef'ユーザーを作成し、rootに設定済みの公開鍵をchefユーザーでも利用可能にする。(rootへのssh接続は後で禁止します)

ローカル側(MacBookAir)
$ ssh conoha

ここからVPSのrootユーザーでの操作

VPS側(rootユーザー)
# adduser chef
# passwd chef
ユーザー chef のパスワードを変更。
新しいパスワード: <パスワードを決めて入力>
新しいパスワードを再入力してください: <パスワードを再入力>
passwd: 全ての認証トークンが正しく更新できました。
# visudo
// 下記1行を追加(パスワードなしでsudoできるようになる)
root    ALL=(ALL)       ALL                          ←この行の下に
chef    ALL=(ALL)       NOPASSWD:ALL     ←この行を追加
// 保存して閉じる(esc -> :wq)

# mkdir /home/chef/.ssh
# cp ~/.ssh/authorized_keys /home/chef/.ssh/
# cd /home/chef/.ssh/
# ls -la
drwxr-xr-x 2 root root 4096  4月  1 00:08 2015 .
drwx------ 3 chef chef 4096  4月  1 00:08 2015 ..
-rw------- 1 root root  445  4月  1 00:08 2015 authorized_keys
# chown chef:chef authorized_keys 
# chown chef:chef .
# chmod 600 authorized_keys 
# chmod 700 .
# ls -la
drwx------ 2 chef chef 4096  4月  1 00:08 2015 .
drwx------ 3 chef chef 4096  4月  1 00:08 2015 ..
-rw------- 1 chef chef  445  4月  1 00:08 2015 authorized_keys
これでVPS側は一旦終わり。logoutで抜ける。

ローカル側(MacBookAir)
$ cd ~/.ssh/
$ vi config
//root接続用になってるところをchefに書き換える
Host conoha
  HostName [VPSのIP]
  IdentityFile ~/.ssh/conoha_private_key
  User root   ←  chefに書き換える

//これでchefユーザーでssh接続できるはず。
$ ssh conoha
[chef@vxxx-xxx-xxx-xxx ~]$ who am i
chef     pts/0        2015-04-01 00:17
[chef@vxxx-xxx-xxx-xxx ~]$ logout
Connection to xxx-xxx-xxx-xxx closed.
//成功
これでchef solo実行準備が整った。

ChefでHello World

Chef-Soloを使ってVPSにHello Worldしてみることまでやってみます。

キッチン(リポジトリ)の作成

knife solo initコマンドを使ってリポジトリ(cookbookを入れていくための箱)を作ります。

ローカル側(MacBookAir)
$ cd ~
$ knife solo init conoha-helloworld
WARNING: No knife configuration file found
Creating kitchen...
Creating knife.rb in kitchen...
Creating cupboards...
Setting up Berkshelf...

こんな感じでファイルが生成されてるはず

Cookbookの作成

knife cookbook createコマンドを使ってクックブック(レシピを入れるための箱)を作ります。

ローカル側(MacBookAir)
$ cd ~/conoha-helloworld/
$ knife cookbook create helloworld -o site-cookbooks/

-oで指定した site-cookbooksフォルダにhelloworldクックブックが生成されました。

レシピの編集

helloworldクックブックの中にあるrecipes/default.rbを修正します。
log "Hello World!!"
これだけ。

VPSにchefをインストール

さて、レシピを作ったので実行準備。knife solo prepareコマンドを使ってvpsにchefをインストールします。

ローカル側(MacBookAir)
$ knife -v
Chef: 12.1.1
$ knife solo prepare conoha
WARNING: No knife configuration file found
Bootstrapping Chef...

//インストールログがずらずらと

Thank you for installing Chef!
Generating node config 'nodes/conoha.json'...
//インストール完了

//vps側で確認してみる。
$ ssh conoha

VPS側(chefユーザー)
[chef@vxxx-xxx-xxx-xxx ~]$ knife -v
Chef: 12.1.1
これでVPSにchefをインストールできました。

VPSにレシピを適用

knife solo prepareを行ったときに、conoha-helloworld/nodes/conoha.jsonが生成されています。
このホストに対してどのcookbookを適用するかを管理するファイル。
すでにhelloworldクックブックは作成済みなのでこれを適用するようにconoha.jsonを書き換えます。
{
  "run_list": [
    "recipe[helloworld]"          ←この1行を追加
  ],
  "automatic": {
    "ipaddress": "conoha"
  }
}
あとはcookするだけ。
knife solo cookコマンドでレシピを適用します。
ローカル側(MacBookAir)
$ cd ~/conoha-helloworld/
$ knife solo cook conoha
Running Chef on conoha...
Checking Chef version...
Installing Berkshelf cookbooks to 'cookbooks'...
Resolving cookbook dependencies...
Uploading the kitchen...
Generating solo config...
Running Chef...
Starting Chef Client, version 12.1.1
Compiling Cookbooks...
Converging 1 resources
Recipe: helloworld::default
  * log[Hello World!!] action write
  

Running handlers:
Running handlers complete
Chef Client finished, 1/1 resources updated in 1.36169233 seconds
Hello World出ましたね!今日はここまで。
ここから先はcookbook作成→レシピ編集→conoha.jsonに追記→knife solo cook conohaの繰り返しです。
Rails環境の構築ができたらまた整理します。
Related Posts Plugin for WordPress, Blogger...