railsgirlsの補足

Railsgirlsに沿っての講習を受けた。

その中で気になったことを補足。

http://railsgirls.jp/app/

 

rake db:migrateの前に…

MysqlのインストールとDB作成をしなければならない。

 

mysqlのインストールはgemファイルに書いてbundle install

gem 'mysql2'

-mysqlの起動

sudo mysql.server start

 

-mysqlにログイン

mysql

-mysqlにrootでログイン

 

mysql -u root -p

Enter password: パスワードを入力

 

-DBを確認

show databases;

-developmentとかがないのでDB作成する。

 

create database hello_development;

 

→これを project/config/database.ymlの内容と合わせる。

 

ex.)

adapter:mysql2

database:development

 

 

rails g scaffold idea name:string  picture:string

 

ちょっと雑多なメモになってしまったけどそんな感じ。

 

メールサーバ構築の参考URL

職場でメールサーバの構築の依頼に対応したので参考にしたURLを備忘までに。

※インターネット環境ではなくクローズドなローカル環境で実施。

dnsがないので、クライアント端末にhosts設定してもらった。

 

 

はじめての自宅サーバ構築 - Fedora/CentOS - メールサーバ

 

メールサーバ構築(Postfix +MySQL +Dovecot +postfixadmin) | clicktx::Tech::Memo

DBのリカバリについて

リカバリには2種類ある

 

1.クラッシュリカバリ

 

【どんな場合?】

システム稼働中に停電等、何らかの障害で急にインスタンスが停止した

SHUTDOWN ABORTコマンド実行等、データベースが正常日停止されなかった状態からデータベースを起動した場合

トランザクションが実行中だった可能性がある。

 

【リカバリ方法】

自動でのREDOログファイルの適用(ロールフォワード)

※UNDOセグメントもREDOログで復元

 

 

2.メディアリカバリ

【どんな場合?】

ディスク障害等によってデータの格納されているデータファイルが消失してしまった場合など

 

 

【リカバリ方法】

①バックアップをリストア

②アーカイブREDOログ・ファイルとオンラインREDOログ・ファイルを利用して、ロールフォワード処理を手動で実行。

③手動でコマンド実行することによって、先ほどのクラッシュリカバリと同様にロールフォワードを行い、確定していないトランザクションロールバックし、データベースの整合性を維持する。

 

 

<参考URL>

Oracleバックアップ/リカバリ講座(2):アーキテクチャから理解するOracleリカバリ (3/3) - @IT

 

http://www.oracle.co.jp/corp/hiroshima/club/specially/events/doc/hrs070626-2.pdf

SSH接続を楽にするクライアント側の設定

 

Mac での SSH 接続は iTerm2 を使っているのですが、毎回ユーザー名やポート番号を指定して SSH ログインするのも面倒くさくなってきます。また、複数のサーバーに SSH 接続したい場合に利用する秘密鍵が違う場合などに、 Mac 側で以下のように設定しておくと楽になります。

 

これで、以下のように簡単に SSH ログインできる。

ユーザー名、ポート番号や鍵の指定を省き、ホスト名だけでログインできるようになります。複数書いても大丈夫。

ssh接続できない場合の対処

まずは原因を探る。

sshデバッグオプションつけて実行しましょう。

 

ssh -vvv ~~~~  でOK

 

【よくある問題】

・ユーザーのホームディレクトリのパーミッションは適切か(700など).
・~/.ssh ディレクトリのパーミッションは適切か(700など).
・秘密鍵のパーミッションは適切か(600など).
puttyで作ったopenssh形式に公開鍵は変換("ssh-keygen -i -f Puttyで作った公開鍵 > openssh形式の公開鍵")しないといけない.

・ローカルマシンのvi ~/.ssh/config に書いた秘密鍵のpathは正しいか。

※自分は一回、sshをssjとtypoしてハマった。。。デバッグで動かせば一発で分かります。

 

etc

他にハマったポイント

AWS EC2インスタンスにssh接続するまで その2

[技術メモ]AWS EC2インスタンスssh接続するまで その1

の通りにやっても自分はできなかった・・・

 

なぜか!?

 

これは秘密鍵の作り方に問題ありました。。。

 

自分は鍵の名前をid_rsaでなく、neco_id_rsaとしていました。

なぜかというと、他のPJでもawsでssh接続しており、既にid_rsaがあったため。

 

どうやらデフォルトでは~/.ssh/id_dsa ,~/.ssh/id_ecdsaおよび~/.ssh/id_rsaの名前の秘密鍵しか読みにいかないらしい。
増やしたい場合は設定ファイル(/etc/ssh/ssh_config)にIdentityFileプロパティを追加する.

IdentityFile ~/.ssh/neco_id_rsa

ちなみにMACの場合は /etc/ssh/sshd_config(~/.ssh/config だったかな?)に設定する。

AWS EC2インスタンスにssh接続するまで その1

 

ユーザはnecoで論じていきます。

 

(1) インスタンスに新規ユーザを作成する。

EC2インスタンス作成時に割り当てたキーペアファイル(ここではxxx.pemとする)を使って、ユーザ名「ec2-user」でインスタンスにログインする。

[neco@local ~]$ ssh -i xxx.pem ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com

新規ユーザ「hoge」を追加して、パスワードを設定する。

[ec2-user@instance ~]# sudo adduser hoge
[ec2-user@instance ~]# sudo passwd hoge

ユーザhogeにsudoを許可する。

[ec2-user@instance ~]# sudo vi /etc/sudoers
(下記を追記)
neco    ALL=(ALL)       ALL

インスタンスからログアウトする。

(2) 独自の公開鍵と秘密鍵を作成する

ローカルマシンで、SSHの鍵を作成する。

[neco@local]$ ssh-keygen -t rsa

ユーザホームディレクトリの.ssh以下に、秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が作成される。

(3) 公開鍵をインスタンスに配置する

公開鍵をEC2インスタンスにコピーする。コピー先は、一旦ec2-userのホームディレクトリとしている。scpには、キーペアを使用する。

[neco@local]$ scp -i xxx.pem ~/.ssh/id_rsa.pub ec2-user@ec2-xxx-xx-x-xx.compute-x.amazonaws.com:/home/ec2-user/

EC2インスタンスに、最初と同じ方法でログインする。公開鍵がコピーできたことを確認する。

[ec2-user@instance ~]$ ls
id_rsa.pub

suコマンドで、ユーザhogeになる。

[ec2-user@instance ~]$ su neco

hogeユーザのホームディレクトリに、.sshディレクトリを作成する。ローカルからコピーした公開鍵を、authorized_keyという名前に変えて配置する。

[neco@instance ec2-user]$ sudo mkdir /home/hoge/.ssh
[neco@instance ec2-user]$ sudo mv id_rsa.pub /home/hoge/.ssh/authorized_keys

移動した公開鍵の所有者とグループを、ec2-userからhogeに変更する。

[neco@instance ec2-user]$ sudo chown neco /home/neco/.ssh/authorized_keys 
[neco@instance ec2-user]$ sudo chgrp neco /home/neco/.ssh/authorized_keys 

公開鍵と格納ディレクトリのパーミッションを変更する。

[neco@instance ec2-user]$ sudo chmod 600 /home/neco/.ssh/authorized_keys 
[neco@instance ec2-user]$ sudo chmod 700 /home/neco/.ssh

インスタンスからログアウトする。

(4) 作成した鍵を使ってログインする

ローカルからSSHで接続する。(暗黙に秘密鍵が使用される)

[neco@local ~]$ ssh neco@ec2-xxx-xx-x-xx.compute-x.amazonaws.com

これで、ログインできるようになります。

 

はずですが!

できない!

なぜだ!

 

解決方法は次回。