僕の私的メモ

dockerでcentos動かしてたんだけど、yumがくっそ遅かった件

dockerでrails開発用の環境構築をcentos6でやってたんだけど、
# Dockerfile
FROM centos:centos6
RUN yum -y install yum-plugin-fastestmirror
RUN yum update -y
した時、くっそ遅かった。
結論、yumのmirrorの向き先を日本にしたらはやくなりましたとさ

# Dockerfile
FROM centos:centos6
RUN yum -y install yum-plugin-fastestmirror
RUN echo "include_only=.jp" >>  /etc/yum/pluginconf.d/fastestmirror.conf
RUN yum update -y

FirefoxのRSSフィード登録先にFeedlyを追加

一瞬悩んだのでメモメモφ(..)
  • feedlyを開く
  • Shift+F4を押しスクラッチパッドを開く
  • 下記コードを入力する
  • 実行を押して、登録すればOK

navigator.registerContentHandler(
"application/vnd.mozilla.maybe.feed",
"https://feedly.com/#subscription/feed/%s",
"feedly"
);
こんなかんじででてきたらおっけー!

macのdateコマンドでミリ秒以上の精度を計測したいとき

むりというかわかんなかったので、gnu dateいれました>< bsd系のdateとGNU系のdateオプションが違うので困ったので、 ググってもつらい思いをしたので、とりあえずbrewでcoreutils(gnu date)を入れた。 gdateって叩いてなんかでてくればOK
brew install coreutils

gdate
木  8  7 16:12:02 JST 2014

date
2014年 8月 7日 木曜日 16時12分05秒 JST
時間の差分というかベンチマーク取りたいときは、こんなかんじでだせるね macとか使ってない人は、読み替えてね s/gdate/date/g
START_TIME=`gdate +%s%N`

# ベンチマークしたい処理書くといいよ
sleep 3

END_TIME=`gdate +%s%N`
秒数調整は適宜遣ってもらうかんじで
RUN_TIME=`expr \( $END_TIME - $START_TIME \) / 1000000`
echo $RUN_TIME
3117

centos6.3にtmux1.7をインストール

CentOS 6.3にtmux1.7をインストールした時のメモ エラーが出て困ったので、手順残しときますね。

libeventのインストール
cd /usr/local/src
wget https://github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar xzf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable
./configure
make
sudo make install


lib更新したのでlibキャッシュを更新しておく
sudo ldconfig


tmuxのインストール
cd /usr/local/src
wget downloads.sourceforge.net/tmux/tmux-1.7.tar.gz
tar xzf tmux-1.7.tar.gz
cd tmux-1.7
./configure
make
sudo make install


動作確認して終了!
tmux -V
tmux -2

VMのクローン作成後の作業

さしぶりに記事書いてみた。 VMWarePlayerとかKVMでVMのクローン作成した時に、NICがかぶってネットワークサービスが起動しない!!!というアレゲな現象があって、それで何回かハマったので備忘録を残しておく。

対象のOSはCentos6.2です。あと、事情があってNICが2つになってます。

ちなみに出ていたエラーメッセージはこんな感じ

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILD]



静的IPアドレスを設定していた場合、事前に指定したいIPアドレスを設定する。
 # vim /etc/sysconfig/network-scripts/ifcfg-eth0
 DEVICE="eth0"
 BOOTPROTO="static"
 NM_CONTROLLED="yes"
 ONBOOT="yes"
 IPADDR=192.168.9.XXX <= ぶつからないようにIPアドレスを書き換えよう
 NETMASK=255.255.255.0

ネットワークインターフェースを確認
 ifconfig -a

クローンしたことにより、ネットワークインターフェースのMACアドレスが、 変更となっているはずなので、以下ファイルに正しいMACアドレスを設定する。 VMのクローン作成時、MACアドレスを設定するはずなのでそれ事前にメモっとく。 また、静的IPを割り振理たい場合、IPアドレスも設定する。
 vim /etc/sysconfig/network-scripts/ifcfg-eth0
 vim /etc/sysconfig/network-scripts/ifcfg-eth1
 ~略~
 HWADDR="UR MAC ADDR"
 IPADDR="172.21.XXX.XXX"

eth0-1がなく、eth2-3となっていた場合。 以下ファイルの既存のeth0-1の行を削除し、eth2-3の項目をeth0-1に変更。
 vim /etc/udev/rules.d/70-persistent-net.rules

 # 既存のeth0-1の項目を削除

 # PCI device 0x8086:0x100f (e1000)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="UR OLD MAC ADDR1", ATTR{type}=="1", KERNEL=="eth*",
NAME="eth2"

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="UR OLD MAC ADDR2", ATTR{type}=="1", KERNEL=="eth*",
NAME="eth3"

 ↓修正

 # PCI device 0x8086:0x100f (e1000)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="UR MAC ADDR 1", ATTR{type}=="1", KERNEL=="eth*",
NAME="eth0"

 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
ATTR{address}=="UR MAC ADDR 2", ATTR{type}=="1", KERNEL=="eth*",
NAME="eth1"

ネットワーク再起動してつながればおk
service network restart

さくらのVPS サーバーセットアップメモ 5 CentOS 6.2にRVM+ruby1.9をインストール

CentOS 6.2にRVMとruby 1.9をインストール。 対応事項
  • rvmのインストール
  • ruby 1.9.3のインストール
rvmのインストールはこんな感じ
# インストール
curl -L get.rvm.io | bash -s stable

# rvmの読込
source ~/.rvm/scripts/rvm

# 必要なものをyumでインストール
yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel \
libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake \
libtool bison iconv-devel sqlite-devel

# ruby1.9.3をインストール
rvm install 1.9.3

# ruby 1.9.3を選択!
rvm use 1.9.3 --default

あとは、適当に使ってみてね!

さくらのVPS サーバーセットアップメモ 4 『Postfixのインストール・設定』

今回は、Postfixの設定です。
 
対応事項
  • postfixのインストール・設定
  • dovecotのインストール・設定
  • Gmailで接続確認

postfixのインストール・設定

# yumでpostfixをインストール
sudo yum -y install postfix

インストールが終わったら、postfixのconfigをいじります。
いじったあとの、configのdiffは以下です。
diff /etc/postfix/main.cf.bak /etc/postfix/main.cf
76a77
> myhostname = mail.nadekosnake.com
83a85
> mydomain = nadekosnake.com
99c101
< #myorigin = $mydomain
---
> myorigin = $mydomain
164,165c166,167
< mydestination = $myhostname, localhost.$mydomain, localhost
< #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
---
> #mydestination = $myhostname, localhost.$mydomain, localhost
> mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
419c421
< #home_mailbox = Maildir/
---
> home_mailbox = Maildir/
570a573
> smtpd_banner = $myhostname ESMTP unknown
676a680,690
>
>
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = $myhostname
> smtpd_recipient_restrictions =
>     permit_mynetworks
>     permit_sasl_authenticated
>     reject_unauth_destination
>
> # mail limit size 10*1024*1024
> message_size_limit = 10485760

SMTP-Authにシステムのユーザ/パスワードを使用する場合は以下を設定
sudo /etc/init.d/saslauthd start
sudo chkconfig saslauthd on

スケルトンにメールディレクトリ作成
sudo mkdir -p /etc/skel/Maildir/{new,cur,tmp}
sudo chmod -R 700 /etc/skel/Maildir/

念のため、MTAがpostfixに設定されているか確認。
sudo alternatives --config mta

There is 1 program that provides 'mta'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.postfix

Enter to keep the current selection[+], or type selection number: 1 # 1を選ぶ(postfixを設定)

dovecotのインストール

# yumでpostfixをインストール
sudo yum -y install dovecot

# dovecotのサービスを起動・自動起動オン
sudo /etc/init.d/dovecot start
sudo chkconfig dovecot on
# システムユーザーをsaslアカウントに追加
# パスワードを要求されるので適宜入力!
saslpasswd2 -p -u linux.centossrv.com -c nadeko

# 初設定の時だけ
sudo chgrp postfix /etc/sasldb2


# 追加されたか確認!
sasldblistusers2

dovecotの設定追記
# maildirを定義
diff /etc/dovecot/conf.d/10-mail.conf.bak /etc/dovecot/conf.d/10-mail.conf
30a31
> mail_location = maildir:~/Maildir

diff /etc/dovecot/dovecot.conf.bak /etc/dovecot/dovecot.conf
83a84
# plaintextの認証を許可
> disable_plaintext_auth = no


Gmailで接続確認

POPサーバ経由でGmailから接続できるかチェック
設定後の画面をキャプチャとってみた。

あとは、自分にメール送信テストをして、
確認できたら、終了!