rake db:migrateで作ったDBにアクセスする時にエラー
rake db:migrate で作成したあと rails sで起動して、http://192.168.33.10:3000/Userにアクセスしたら出たエラー
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
これは
vi config/application.rb
で、以下を追加
config.web_console.whitelisted_ips = '0.0.0.0/0'
で解決した。
でもまだエラーがあって、
ActionController::RoutingError (No route matches [GET] "/User1"):
これはいろいろやってみたけど developmet.rbとか書き換えてみたり。。なぞ。
もう今日はおわりーと思って db:migrateでつくったやつ戻そうとコマンド調べて実行
rake db:migrate:reset == 20150909130346 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0012s == 20150909130346 CreateUsers: migrated (0.0026s) =============================
!?!!!!
users? ほうほう http://192.168.33.10:3000/users
見れますた。ちゃんとメッセージは見ましょうってことですな。
scaffoldの使い方
Railsには、scaffordという仕組みがあるらしいです。 なんかいい具合に、DBに反映してくれるらしい。
rails generate scaffold User name:string score:integer
これはdb/migrateに string型でnameと integer型でsocreという項目のあるUserってDB作ってよってことらしい。
そして
rake db:migrate
でDBが作成されるんだそうだ。
Rails sで起動したサーバーにローカルPCから接続できない
Ruby on Railsを勉強中です。 いや、Rubyも書いたことないけど、まぁなんとかなるでしょ、と始めましたが、 環境作りで手間取っております。
とりあえずVagrant upで落としてきたイメージを起動するところは到達。
rails new
コマンドもたどり着いた。
で、
rails s
でhttpサーバーが起動されるところまできたのだけど、 ブラウザから接続できない。。。。
ipも間違ってない、ポートフォワーディングの設定もあっている。。。 なんかオプションか?とおもいつつ
rails s -h
と打ったら、--binding=IP を発見。
-p, --port=port Runs Rails on the specified port. Default: 3000 -b, --binding=IP Binds Rails to the specified IP. Default: localhost -c, --config=file Uses a custom rackup configuration. -d, --daemon Runs server as a Daemon. -u, --debugger Enables the debugger. -e, --environment=name Specifies the environment to run this server under (test/development/production). Default: development -P, --pid=pid Specifies the PID file. Default: tmp/pids/server.pid -h, --help Shows this help message.
このPCってlocalhostだよなと思いつつ、 ふとAWSのanywhereの表現の0.0.0.0にのっとって
rails s -b 0.0.0.0
にしてみたら、つながった。 PCはMacなので、ifconfigとかしてみたらわかるかと思ったけど、、
rails s -b en0のip rails s -b vboxnet0のip
でも繋がらなかった。 まぁ動くからいいか。。。
Windows Server 2012でカスタムメトリクス
気がつけばめっちゃさぼっていました。 Ansible,Terraformも今後載せていこうと思っています。 あとはaws cliとか。
とりあえず、Windows server2012でカスタムメトリクスがはまったので、備忘録的に。
2012の場合、Powershellが無効になっているので、Amazonが提供している方法に追加が必要です・
Get-ExecutionPolicy Restricted
以下のコマンドを発行し、RremoteSignedにする。 Yを入力しエンターを押す
Set-ExecutionPolicy RemoteSigned 実行ポリシーの変更 実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies のヘルプ トピック (http://go.microsoft.com/fwlink/?LinkID=135170) で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか? [Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): Y
確認
Get-ExecutionPolicy RemoteSigned
あとはサイトの提供する通りに。 →https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts-powershell.html
CentOS7のlocale設定
以下のコマンドで設定
localectl set-locale LANG=ja_JP.utf8
以下のコマンドで確認
localectl status System Locale: LANG=ja_JP.utf8 VC Keymap: us X11 Layout: us
設定ファイルはここ
vi /etc/locale.conf
以下のコマンドでユーザーに反映
source /etc/locale.conf
S3に圧縮ファイルを格納する
S3は堅牢性が高いので、 ログの保管などに便利です。
例えばlogrotateを設定して 1日ごとにファイルを切り替えて圧縮したりとか。 で、圧縮ファイルをS3に格納する。
#!/bin/sh #s3へファイルを移動する。 #引数:第1引数 ファイルのフィルタリング名フルパス # 第2引数 バケット名 echo "start..."; #引数を変数に格納する。 S3_from=$1 S3_to=$2 #対象ファイルの抽出 targetfiles=`ls ${S3_from}` #それぞれの対象について処理をする。 for i in `echo ${targetfiles}` do #s3へ移動させる。 aws s3 mv ${i} ${S3_to} done echo "end...";
なんかシンプルすぎるなwwww あ、エラー処理は省きました。