2013年10月19日土曜日

joruriGWをubuntu+ruby2.0+nginx+unicornで動かす

Ruby on Rails上で動くOSSのグループウェア,joruriGwをubuntu上で動かす手順を説明します。当然のことですが,joruriGwは,ubuntu上でも動きます。

joruriGwについては,公式ページ(http://joruri.org/)を参照してください。

このポストは,joruriGwに付属してたCentOS用のinstallマニュアルをubuntu用に書き換えたものです。

環境

OS:ubuntu 12.04.03 LTS
webサーバ:nginx
ruby:ruby 2.0.0p247
アプリサーバ:unicorn
DB:mysql
jorurigwのパス:home/joruri/jorurigw

ライブラリのインストール


sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate libxslt1.1 libxslt1-dev libxml2-dev libyaml-dev libjpeg-dev libpng12-dev librsvg2-dev libgs-dev imagemagick libmagick++-dev libcurl4-openssl-dev nkf libldap2-dev libsasl2-dev shared-mime-info libevent libevent-dev

rubyのinstall


mkdir /tmp/ruby && cd /tmp/ruby curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz cd ruby-2.0.0-p247
./configure
make
sudo make install

bundlerのインストール


sudo gem install bundler --no-ri --no-rdoc

RubyGemsを更新


sudo gem update –system

joruri実行ユーザをOSに作成

joruriユーザではログインできないようにする。操作は,sudo -u joruri -H で行う。(gitlabのインストールマニュアルのマネ)


sudo adduser --disabled-login --gecos 'Joruri' joruri
cd /home/joruri

memcachedのinstall


sudo apt-get install memcached

mysqlサーバのインストールとユーザの作成


sudo apt-get install mysql-server

インストール中にrootのパスワードを設定する。

ついでに,rubyのライブラリmysql2 (0.3.11) のインストールに必要なパッケージもインストールしておく。


sudo apt-get install libmysqlclient-dev

続いて,joruriGwが使うmysqlのユーザを作成する。とりあえずここでは,ユーザ:joruri password:passwordとする(←ちゃんと変えてください。)


mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO joruri@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit

nginxのインストール


sudo apt-get install nginx

nginxの設定

新しく書くのはめんどいし,ミスりがちなので,gitlabのnginx用の設定ファイルを修正して使う。


sudo nano /etc/nginx/sites-available/jorurigw

jorurigwに,gitlabのnginx用の設定ファイル(lib/support/nginx/gitlab)をコピーして修正して保存。

sites-available/に作った設定ファイルのリンクを,sites-enable/に貼る。


sudo ln /etc/nginx/sites-available/jorurigw /etc/nginx/sites-enable/jorurigw

joruriGWのダウンロードと展開


cd /home/joruri
sudo -u joruri -H wget http://joruri.org/download/jorurigw/jorurigw-2.1.1.tar.gz
sudo -u joruri -H tar xvzf jorurigw-2.1.1.tar.gz

joruriGwのコードは,/home/joruri/jorurigwに展開。

joruriGWの設定

ユーザjoruriが,jorurigwの下のlog/とtmp/にアクセスできるようにパーミッションを修正。


cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp
sudo chown -R joruri log/
sudo chown -R joruri tmp/
sudo chmod -R u+rwX  log/
sudo chmod -R u+rwX  tmp/

tmp/socketsとtmp//pidsにjoruriユーザがアクセス出来るようにパーミッションを設定


cd /home/joruri/jorurigw
sudo -u joruri -H mkdir tmp/pids/
sudo -u joruri -H mkdir tmp/sockets/
sudo chmod -R u+rwX  tmp/pids/
sudo chmod -R u+rwX  tmp/sockets/

gemファイルの設定

bundlerがunicornをインストールするように,gemファイルを修正する。

本来は,Gemfile.localを作成して,そこに書き込む方が良いのだが,joruriGwが配布するgemfileがgemfile.localを読み込む設定になっていないので,Gemfileに直接書き込む。

sudo -u joruri -H nano Gemfile

コメントアウトされている,gem 'unicorn'を有効にする。joruriGwの開発側は,unicorn上での動作も想定に入れているのかしら…

gemのインストール

joruriGwの動作に必要なrubyのライブラリをインストールします。


cd /home/joruri/jorurigw
bundle install

データベースの設定

注意点は,config/databases.ymlに,production以外にも,dev_jgw_gwとgwsubの設定も必要なこと。どうしてこうなっているのかはなぞ。

config/database.ymlの設定


production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: production_jgw_core
  pool: 5
username: joruri #←mysqlに設定したユーザ名に合わせる。 password: "password" #mysqlに設定したパスワードに合わせる。
host: localhost ========(中略)============= dev_jgw_gw: adapter: mysql2 encoding: utf8 reconnect: false database: <%= env_prefix %>_jgw_gw pool: 5 username: joruri #productionと同様に password: "password" #productionと同様に host: localhost socket: /var/lib/mysql/mysql.sock gwsub: adapter: mysql2 encoding: utf8 reconnect: false database: <%= env_prefix %>_jgw_gw_pref pool: 5
username: joruri #productionと同様に password: "joruri" #productionと同様に host: localhost socket: /var/lib/mysql/mysql.sock

セキュリティのために,database.ymlをjoruriユーザ以外が読めないようにする。


sudo -u joruri -H chmod o-rwx config/database.yml

データベースに初期データを作成する

joruriGwのインストールマニュアルは,development環境での設定方法を書いてあるので,気をつけてください。通常のrailsのアプリケーションと違って,rakeでDBの設定が出来ないので,sql文を手打ちします。

最初にデータベースを作成します。


mysql -u root -p -e "create database production_jgw_core"
mysql -u root -p -e "create database production_jgw_gw"
mysql -u root -p -e "create database production_jgw_gw_pref"
mysql -u root -p -e "create database production_jgw_bbs_000001"

続いて,テーブルを作成します。


mysql -u root -p production_jgw_core < ./db/development_jgw_core_schema.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_schema.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_schema.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_schema.sql

初期データを登録します。


mysql -u root -p production_jgw_core < ./db/development_jgw_core_init.sql
mysql -u root -p production_jgw_gw < ./db/development_jgw_gw_init.sql
mysql -u root -p production_jgw_gw_pref < ./db/development_jgw_gw_pref_init.sql
mysql -u root -p production_jgw_bbs_000001 < ./db/development_jgw_bbs_000001_init.sql

さらに環境設定のために次のSQL文を実行してください。


mysql -u root -p -e "UPDATE production_jgw_gw.gwbbs_controls SET dbname = 'production_jgw_bbs_000001' WHERE gwbbs_controls.id =1;"

joruri GWの起動


cd /home/joruri/jorurigw
bundle exec unicorn_rails -c config/unicorn.rb -E production -D

ブラウザでアクセスしてログイン画面が表示されればjoruriGwのインストールは成功です。初期設定では,admin/adminで管理者権限でログインできます。unicornを自動起動する方法は,http://mudanakaigi.blogspot.com/2013/10/unicorn_15.htmlを御覧ください。

httpsで動かす方法などは,気が向いたら別途書くかもです。今は,艦これのイベントで忙しいので,後回しにします。

2013年10月15日火曜日

unicornの自動起動スクリプト


追記 13/11/07

statusがうまく機能しないようです。すいません。


ubuntu12.04.03でunicornを使うrubyのアプリを自動起動するスクリプトです。
主にrailsで作ったアプリを想定しています。
参考にした本はこちら:Ruby on Rails環境構築ガイド

なお,unicorn自体の起動コマンドは,下記の通り。

$cd /path/to/rubyapp/
$bundle exec unicorn_rails -c config/unicorn.rb -E production -D


環境
アプリを起動するユーザ:test アプリのホーム:/home/test/rubyapp

最初に,空の起動スクリプトを作成。

sudo nano /etc/init.d/rubyapp



#! /bin/sh

### BEGIN INIT INFO
# Provides:          test  #作成者の名前
# Required-Start:    $local_fs $remote_fs $network $syslog 
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description:   #短い説明
# Description:       starts redmine ( a rails app ) using start-stop-daemon #説明
### END INIT INFO

USER=test  # rubyのアプリを実行するuser名を入れる。
APP_ROOT=/home/test/rubyapp
RAILS_ENV=production
PID_FILE=$APP_ROOT/tmp/pids/unicorn.pid  #unicorn.rbで指定した値を入れる。
CONFIG_FILE=$APP_ROOT/config/unicorn.rb  #unicorn.rbへのパスを入れる。
CMD="/usr/local/bin/bundle exec /usr/local/bin/unicorn_rails" 
# bundleとunicorn_railsへのバスは,whereisで調べられる。railsのアプリじゃない場合は,/usr/local/bin/unicornで良いのでは?
ARGS="-c $CONFIG_FILE -D -E $RAILS_ENV"
export PATH=/usr/local/bin:$PATH

case $1 in
  start)
    start-stop-daemon --start --chuid $USER --chdir $APP_ROOT \
      --exec $CMD -- $ARGS || true
    ;;
  stop)
    start-stop-daemon --stop --signal QUIT --pidfile $PID_FILE || true
    ;;
  restart|force-reload)
    start-stop-daemon --stop --signal USR2 --pidfile $PID_FILE || true
    ;;
  status)
    status_of_proc -p $PID_FILE "$CMD" redmine && exit 0 || exit $?
    ;;
  *)
  echo >&2 "Usage: $0 "
  exit 1
  ;;
esac

保存したら,次のコマンドでファイルのパーミションを変更する。
sudo chmod 755 /etc/init.d/rubyapp
これで,
service rubyapp start
:rubyappの起動
service rubyapp stop
:rubyappの停止
service rubyapp restart
:rubyappの再起動
service rubyapp status
:rubyappのステータス表示 ができるようになる。 サービスに追加してOSの起動時に,自動で起動するようにするには,下記のコマンドを実行。
sudo update-rc.d rubyapp defaults
これで,unicorn上でrubyのアプリの自動起動ができる。

2013年10月14日月曜日

提督の受験勉強ー昭和4年の英語編

ヘーイ提督!受験勉強しないと提督になれないデース!

t02200165_0640048011854464037

 

戦前の日本で提督になろうと思うったら,海軍兵学校に入学しなければなりませんでした。

海軍兵学校は,「一高陸士海兵」と称された難関校でした。

wikipediaのよる海軍兵学校の説明です。

海軍兵学校の入試 必要受験資格は受験年齢は16歳から19歳の年齢制限があり、身体条件を満たす者、中学校第四学年修了程度の学力、独身者、犯歴の無い者とされた。銓衡にあたり、最初に身体検査、運動機能検査で学術試験受験者が決定され、学術試験は5日間連続で行われた。学術試験は数学に始まり、英語(和訳)と歴史、物理、化学と国語(漢文も含む)、英語(英作文、文法)と地理の順に行われ、それぞれの学術試験の採点結果は当日に発表され、所定の合格点数に達した者のみが次の学術試験を受験できる篩い落とし選考であった。その後、面接試験を経て最終合格者が決定された。志願者の増加と共に内申書による事前選考が行われるようになった。日本海軍の人事政策では兵学校出身者は特別の事情がない限り、大佐まで昇進させる方針を採っており、採用生徒数は海軍の軍備政策と密接な関係にあった。 また、全国から優秀な青年が競って志願した超難関校であり、募集人員が少なかった明治から昭和の初期までの海軍兵学校は、日本最高のエリート校であった。 http://ja.wikipedia.org/wiki/海軍兵学校_(日本)

 

現在の高校1年生くらいが受験したのだと思われます。

国立国会図書館のHPで海軍兵学校の入試問題を見つけたので紹介します。

参照:海軍諸学校入学試験問題及模範解答集 http://dl.ndl.go.jp/info:ndljp/pid/1461276

まずは,英語から。英語は,「英文和訳」と「英作文及び英文法」の2科目に分かれていました。

昭和4年 英文和訳

[第1問] Want of laughter means want of health. Laugh as much as you can: it does you so good whenever you can get a good laugh, laugh on. And make other people laugh, too, when possible, as it does them good.

[第2問] One ship sails east, another west. By the self-same winds that blow; 'Tis the set of the sails and not the gales. That shows us our way to go. Like the winds of the sea on the waves of fate, As we voyage on through life, 'Tis the set of the soul that decides the goal And not the winds or the strife.

〔第三問〕 There seems to be no,reason why fencing should not become a valuable village game. It ia played in winter and summer. It is available for working people who have scant leisure for play. It requires hard work and a very high spirit of honour. It ia a game suitable for old and young, skill and experience compensating for advancing years.

[第四問] Chiefs and people of the Arawa tribe, on behalf of the prince, myself and my officers, I express to you our thanks for your kind and cordinal welcome to-day. We are deeply moved by your touching words expresing the sentiment of welcome to us. We are proud to have been associated with you in the Great War for the common aim of the allies, and we know how yon safrificed yourselves. We shall have pave memories of our visit, and shall tell our families and friends how kind was your wellcome to us. We wish yon every success and health in the future.

英文和訳解答

[第一問]

笑ひの充分でない人は、健康も充分ではないものだ。諸君が大いに笑ひ、笑ひ続けることの出来る時はいつでも、諸君に非常に為になつてゐるのだ。だから諸君は笑へるだけ笑ひ給へ!そし て出来るならば、諸君だけでなく、他人をも笑はせてやり給へ、笑ふことは彼等にも非常にためになることだから。

(解説) mean:意味す。 want:欠乏、不足。 laughter:laughing. as much as you can:できるだけ does good:ためになろ利益になる. laugh on:大いに笑ふ、笑ひつづける。 when poesible when it is possible to laugh.

[第2問〕 一つの船は東へ、他は西へ行く、 吹く風はただ一つの風であるのに。 帆の張り方如何なのだ、風のためではない、 吾々に進むべき道を教へてくれるのは。 (同様に)吾々が運命の波に乗って人生を航海する時, 海上を吹く風の如く、 吾々の目標を決定するものは、精神(といふ帆の)張り方による。 決して風や闘争によるものではない。

(解説) self-same:全く問一の。'Tisはその後のthat以下を受ける。gale強い風。strife闘争、喧嘩、努力。

[第3問〕 剣術が有益な村落遊戯になれない理由はないやうに思はれる。剣術は冬でも夏でも出来る。又遊ぶ暇に乏しい労働者にも利用され得る。剣術は,非常な努力と名誉を尊敬する高尚な精紳に必要とされるものである。(そして)若人にも老人にも後年のために熟練や経験を補ふためには適切な遊戯である。

(解説) valuable:貴重な、有償な。 available:利用せらるる,適当な。 scant:乏しき。 high spirit of honour:名誉を重んずる高尚な精神。 compensate:補ふ、埋合す。

[第4問〕 アクタ族の長並びに部下たちよ、私は本日、皇子、私自身及び私の部下を代表して,諸君の親切にして丁寧なる御歓迎に対して感謝の意を表す る吾々は諸君が吾々を歓迎する心持を表現した感動的言葉に深く動かされた。吾々は世界大戦に於いて聯合國の共通の目的のために諸君と共に提携したことを誇りとする。又吾々は諸君たちが如何に犠牲的に行動されたかをよく存じてゐる。吾々は今皮の訪問について愉快なる記憶を永く持つことであらう。そして諸君の歓迎が如何に吾々に親切であったかを、吾々の家族並びに友人に告げる であらう。吾々は諸君のすべてが将来成功し,健康であることを希望する。

(解説) tribe:種族、部落。 on behalf of:代表して。 cordial:丁寧な touching:感動すべき。 allies:聯合軍。

昭和4年  和文英訳及び英文法

「第一問」 次の和文を英訳せよ。

イ、のんびりした沖に帆かけ船が殆んど動かず水平線上に並んで居る。

ロ、もし英語以外に外國語を學ぶのだったら僕は将来潜水艦を研究するために独逸語を學ぶ。

ハ、年が新になると誰でも一年の計を立てるが此をやり通す人は少い。

ニ、某老海軍大将曰く「私は今年七十七の老齢に達したが、今から考へて見ると、この健康長寿は若い時軍隊の訓練を受けて海上生活をしたことが余って力があったと思ふ」と。

[第二問〕 次の文中下線を施せる部分をclauseに書き改めよ。

イ, I have made a promise to do it.

ロ, Having lived abroad, he was proficient in English.

〔第三問〕 次の二文を意味の相違を明示し得る楳に和訳せよ。

イ, I found the book easily.

ロ, I found the book easy.

[第四問〕 次の各文中下線を施せる語の品詞を問ふ。

イ, If you need a dictionary, I will lend yon one.

ロ You shall go no farther.

ハ That Is the very thing I was going to say.

[第5問] 次の文の空所に適当なる一語を押入せよ。

イ  I should like to see paper (   ). (紙が拵らへられるのを見たいものだ。)

ロ I am obliged to absent (   ) from school to-day. (本日止むを得ざる事故のため欠席致候。)

ハ You will soon (   ) need to the work. (直きに仕事に慣れるだらう。)

英作文及び英文法解説

[第1問]

1. Several sailing boats are lying motionless in the calm offing on the horizon.

2. If I were to learn any foreign language besides English, I would prefer German, so as to get some assistance in the study of submarines.

3. When a new year comes round, most people makes a plan for the year, but very few carry it out.

4. A certain old admiral said, "I have reached the advanced age of seventy-seven now. When I come to think of my sound health and good age, I attribute it to the military discipline in youth and to my having spent my life on the sea."

[第2問]

1. I have made a promise that I will do it.

2. As he had lived abroad, he was proficient in English.

[第3問〕

1. 私は容易く書物を見付けた。

2・私はその書物の容易いのが分った。

[第4問]

1・代名詞 2・副詞 3・形容詞

[第五問]

1. I should like to we paper made.

2. I am obliged to absent myself from school to-day.

3. Yon will soon get used to the work.

印象

長文読解がメイン担っている現在の難関高校の入試や大学入試と異なり,精読がメインになっている感じです。形式的には一昔前の東大前期の英語から要約・リスニング・自由英作文・最後の長文を除いたような感じでしょうか。

単語レベルは,高校受験用としては相当難しいレベルでしょう。

実際の入試では,数学・理科・社会・国語も解かなければなりませんでした。その辺を勘案すると,「現在のすべての私大文系よりも全然難しい!」のではないかと思われます。

海軍兵学校の難易度的にも,おそらく,東大の文Ⅱ・Ⅲよりは難しいでしょう。

DMMのアカウントを作り,夕方に突撃するだけで鎮守府に着任できる平成の世の中の天下泰平っぷりを噛み締めながら,艦これを楽しみましょう。

2013年10月13日日曜日

gitlabの設定でハマった点

 

 

gitlabの設定でハマった点と解決策。自己署名証明書(俺様野良証明書)でHTTPSをするときにはまるのだと思われる。

環境

  • OS:Ubuntu 12.04.03 LTS 64bit
  • webサーバ:apt-getでインストールしたnginx
  • ruby:ruby 2.0.0p247 (ソースからコンパイル)
  • gitlab:6.1
  • gitlabのインストールは,公式のインストール方法に従った。
  • gitlabへの接続は,https接続。httpで接続した場合は,https接続に強制的に切り替える。
  • SSLは自己署名証明書を使う。

サーバのgit repositoryにsshで接続できない

gitlabへの接続をnginxの設定で強制的にhttps接続にしている場合,gitlab-shellのconfig.ymlにsslの鍵ファイルへのパスを設定しないと,クライアントのPCから,sshでgitできない。

修正するファイル:gitlab-shell/config.yml(説明通りにしている場合,/home/git/gitlab-shell/config.yml)

修正する場所:https_settings

http_settings: 
  # user: someone
  # password: somepass
  # ca_file: /etc/ssl/cert.pem
  # ca_path: /etc/pki/tls/
  self_signed_cert: false

  • ca_fileに,sslの証明書ファイルのパスを入れて,#を外して有効にする。
  • ca_pathに,sslの証明書ファイルのあるディレクトリへのパスを入れて,#を外して有効にする。
  • self_signed_certを有効にするために,falseをtrueに変える。

上記の設定を行わないと,git でpushしたときに,エラーがでる。

ca_fileとca_pathは,rubyのOpenSSLクラスのattributeであるよう(参照:ca_fileの説明ca_pathの説明)。未検証だが,ca_fileかca_pathのどちらか一方を設定するだけでもよいかもしれない。

self_signed_certの部分は自己署名証明書を使う場合の設定だと思われる。gitlabへの接続を自己認証証明書を使ったhttpsだけで行っている場合には,trueに設定する。

http_settingsの設定は,sshで接続をする場合には,全く関係がないはずなのですが…。gitlab-shellがsshをつかったgitのやりとりとhttpを使ったgitのやりとりの両方を司っている関係で,http関係の設定が必要になっているのではと勝手に納得した。

git+httpsでgitlabに接続できない

これはgitlabの問題ではない。git+httpsで自己署名証明書を使ったサーバ接続するときに起こる問題の様子。

上記のサーバ側のgitlab-shell/config.ymlのhttp_settingsの設定に加えて,ローカルのgitに設定が必要。

gitは,https上で動く場合には,自己署名証明書は認めない設定がデフォルトの様子。そのため,クライアントのPCのgitの設定を変える必要がある。

設定の変え方は,2通りある。

その1.git+httpsに関して全面的に証明書のチェックをしないと心に決めた場合

ローカルで下記のコマンドを実行。

config --global http.sslverify false

その2.リポジト毎に切り替えたい場合

.git/configのsslVerifyの値をfalseに変更する。

[http]
sslVerify = false
とする。

ssh接続するときのクライアント側の設定(ubuntu-desktop)


opensslを使ったkeyの作成後,ssh-addをする。ssh-addをするまで,秘密鍵がssh-agentに追加されない。




gitに慣れていないので,git関係の単語の使い方がよくわからん…。




2013年10月10日木曜日

zentyalが3.2になって残念なことに。

以前のエントリで,zentyalのvirtualization managerの機能を使って,zentyalをkvmのホストに設定する方法を書きました。

ところが,2013年9月のバージョン3.0から3.2へのアップデートで,仮想機能が削除されてしまいました。

参考:virtualization manager機能を消すアナウンス

このため,現状で,ubuntuサーバで,仮想環境をwebベースのGUIで簡単に管理する方法はなくなりました。

勿論,WebベースのGUIで,仮想環境を管理するならば,例えば,WebVirtMgrをつかったり,そもそも,open stack辺りを使うという方法もあります。ただ,zentyalほど設定が楽では無いようです。

Webではなくても,GUIならば良いというなら,virt-managerを使うのが良いと思われます。

virt-managerは,linuxのデスクトップ環境上で動く,GUIの仮想サーバを管理するソフトです。リモートでの管理も可能です。手元にwindowsやMacなどしかない場合は,virtual boxなどを使って,ubuntu-desktopを立ち上げれば,virt-managerが使えるかと思います。

なにはともあれ,スペイン人に期待した私が悪いんです…。はい。

FC2ブログのサイトマップをgoogleウェブマスターツールに登録する

最近では,FC2ブログはSEOに適したブログシステムと評価されているようです。urlがサブドメイン形式になるのがよいのでしょうか。

FC2ブログのサイトマップをgoogleウェブマスターツールに登録する方法です。

追加する方法はここに書いてあります。FC2のヘルプ[検索エンジン対策] Google サイトマップを利用する

気をつける点はひとつ。FC2ブログのサイトマップは,.sitemaps.xmlである点です。

普通,sitemap.xmlがサイトマップのurlになっていることが多いのですが,FC2はsitemaps.xmlです。sitemapではなく,-sがついたsitemapsです。気をつけましょう。

なお,FC2ブログではなく,googleのbloggerを使っている理由は,windows live writerとの相性の問題です。windows live writerはマイクロソフトのwindows essentialsについてくるblog用のエディターです。

windows live writerでFC2ブログに投稿した場合,画像やCSSがうまく扱えませんでした。

2013年10月7日月曜日

2TB以上のHDDにubuntu12.04LTSをインストール(再び)

2TB以上のHDDでRAID1をくみ,その上で,lvmを使ってubuntu12.04をインストールするときの注意点。

参考にしたのは,さくらインターネットのこのページ。Ubuntu / Debian パーティション設定手順←というか,このページだけで充分。

やりたいこと: 2TB以上のHDD(実際に使ったのは3TBのHDD)2台で,raidを組んで,更に,lvmを構成してubuntuをインストール。

注意点:

  1. 2台のHDDの先頭に,それぞれ,1MBのReserved BIOS boot area(biosgrub)を設定する。
  2. /boot領域を,250MB以上,確保する。

手順:

  1. 2台のHDDの先頭に,1MBのReserved BIOS boot areaを取る。
    1. 2台とも取る。片方だけではダメ。
    2. HDD上の場所は,パーティションを切るときに,BeginningとEndから,Beginingを選択する。
  2. 2台のHDDの残りの領域を使って,raidエリアとしてパーティションを作成する。
  3. raid configurationで,raid1を作成する。
  4. 作成したraid1のエリアを,lvm用のphysical volumeに変える。
  5. lvm configurationで,lvm用のエリアにしたraid1の領域で,volume groupを作成する。
  6. volume group上に,3つのlogial volumeを作成。
    • logical volumeその1:/boot用 250MB以上。
    • logical volumeその2:/ 用 お好きにどうぞ。  
    • logical volumeその3:swap area メモリの2倍だったっけ?適当に。

あとは,インストーラの指示にしたがって,インストールをすすめる。 Reserved BIOS boot areaに気を取られて,/bootを作り忘れないようにしましょう。

gitlab6.1 on ubuntu12.04でメール通知を有効にする

gitlab6.1でメール通知を有効にする方法。

gitlab/config/environments/production.rbを編集する。

sudo nano -u git production.rbで編集。

  config.action_mailer.delivery_method = :sendmail
  # Defaults to:
  # # config.action_mailer.sendmail_settings = {
  # #   location: '/usr/sbin/sendmail',
  # #   arguments: '-i -t'
  # # }

コメントアウトされている,config.action_mailer.sendmail_settings以下を有効にすればよい。

locationは,sendmailの場所を書く。ubuntu上で使う場合には,/usr/sbin/sendmailのままで問題がない。

なお,ubuntuで,postfixをインストールした場合,sendmailの実態は,postfixになる模様。

$man sendmail

DESCRIPTION
       The Postfix sendmail(1) command implements the Postfix to Sendmail com‐
       patibility interface.  For the  sake  of  compatibility  with  existing
       applications,  some  Sendmail  command-line  options are recognized but
       silently ignored.

2013年9月17日火曜日

ubuntu server LTS 12.04.03にgitlabをインストールする

 

gitlab_logo

 

さぞかし難ししいかと思いきや,gitlabの公式のインストールドキュメントを参照すれば,ほぼ問題なくできた。

参照:gitlabのインストールドキュメント

詰まったてんは,「ubuntuに入っているgitのバージョンが古い」という点。

これは,このサイトを見て解決。

ubuntu12.04に最新のgitをインストールする方法

このとき,apt-add-repositoryを使ったppaの追加が必要になるが,これはdefaultのubuntuではできないので,下記のサイトを参照。

apt-add-repositoryを使えるようにする方法

ただ,mail回りの設定と,https接続がまだ手つかずなので,それは今後の課題ということで…。

2013年9月15日日曜日

ms writerからの投稿

 

googleのbloggerに,MSのwriterから投稿できるかどうかのテスト。

2013年9月12日木曜日

ubuntuを2TB以上のHDDにインストールするときの注意

ubuntuを2TB以上のHDDにインストールするときには,HDDの先頭にReserved BIOS boot area(biosgrub)を確保ないと起動できない。大きさは1MB程度で良い模様。

ソフトウェアRAIDを組む場合には,各々のHDDの先頭に,biosgrubを確保しないとダメ。

インストール画面のパーティションを作るところで,HDDの先頭に1MBの領域を確保し,用途をReserved BIOS boot areaを選択しておく。

なお,2本のHDDで,ソフトウェアRAIDを使ってraid1を組む場合には,2本とも先頭領域にReserved BIOS boot areaを確保しておくこと。

Reserved BIOS boot areaは,選択時以外には,biosgrubと表示されるので注意すること。

仮想環境でインストールしてスクショを載せようと思ったのだが,2TB以上の仮想ディスクを用意しないと,biosgrubを設定する画面が出てこないことが発覚したので,載せないでおく。仮想環境でbiosgrubが出てこないからネット上に情報が少ないのだと思われる…。

あと,2TB以上のHDDにインストールするときは,boot flagをonにできない模様。boot flagが立たないのジャーといってムキにならずに,さらっと無視しましょう。

こちらのサイトを参考にさせていただきました。 Linux Mania RAIDボリュームからのブートとパーティション

zentyalのvirtual manger機能について

zentyalには,webのguiからKVMベースの仮想マシンを立ち上げる機能がある。

仮想マシンのimgの場所

仮想マシンのimgの場所は,WebベースのGUIからも指定できる。指定しなかった場合には,下記の場所に保存する模様。

/var/lib/zentyal/machines/(仮想マシンの名前)/

上記のディレクトリには,domain.xml,manage.sh,(仮想マシンの名前).imgの3つのファイルができる。

vnc関係の設定

zentyalで仮想マシンを立ち上げたときに迷いがちなのが,vnc関係の設定。WebのGUI上からは,vncのport番号もpasswordも謎。

vnc関係の設定は,上記のdomain.xmlファイルの中に書いてある。

domain.xmlの最後の方にある


<graphics type='vnc' listen='0.0.0.0' port='ポート番号' passwd='パスワード' keymap='en-us'/>

がvncのポート番号とパスワード。 これで,vncで外から接続できます。よかったね。

2013年7月27日土曜日

google アラートの検出速度について

googleのインデックス速度を検討する。今回検討するのは,新しいページを作ってからそのページがgoogleの検索エンジンに認識されるまでの期間である。ドメインを新しくとって新しいサイトを立ち上げた場合の,googleの検索エンジンにインデックスされるまでの期間ではない。


最初に結論:1週間はかかる

普通のブログサイトやウェブサイトの場合は,googleの検索エンジンにインデックスされるまでに1週間程度かかった。大手サイトの場合は,即日インデックスされるサイトもあった。googleにニュースサイトと認識されている場合は,即日インデックスされた。


検証の方法

googleアラートに適当な単語を入れて,都度配信ないし,1日に1回配信する設定にして置く。

google アラートはRSS配信機能をなくしたようなので,gmailで受け取るように設定。ちゃんとメールフィルターを設定しておけば,メールが大量にきてもまったく気にならない。

アラートに使った単語は,AV女優とUbuntuと,Sureface。出版社系のニュースサイト,個人のブログ,2チャンネルのまとめサイト,普通のサイトなど,多くのサイトにまんべんなく掲載されやすい単語を選んだつもり。

ページ作成日時は,ページ上の投稿日時で確認した。ブログサイトや出版社系のニュースサイトの記事の場合,投稿日時が記載されているので,作成日時の確認が簡単でよい。googleアラートが配信された日時と,記事の作成日時を比較して,ページ作成とインデックスのタイムラグを計算。


検証期間は,2013年7月1日〜4日の4日間。ぱっと見た感じでは,これ以前でも,あまり変わらない感じがした。

なお,めんどくさいので,統計検定はおこなっていないので,そのつもりで。



結果

検索ワードと関係なく,ニュースに区分される媒体の場合は,記事作成当日か翌日にはアラートが上がった。webとblogに区分される媒体の場合は,1〜7日程度間隔が空いていた。大手の2chまとめサイトでは,間隔が短い傾向があると思われる。webとblogでは,差がないと思われる(統計検定はおこなっていない)。動画は比較的間隔が広く,10日以上アラートされるまで間隔が空いていた。



考察

通常,記事の作成からアラートに登録されるまで,1週間程度時間がかかる。告知記事を作成する場合には,短くとも1週間前には記事を作成し,公開しておかないと,googleの検索エンジンに引っかかった時には,もう,イベントは終了している,ということになる。広報担当者は,気をつけましょうね。

AV女優の名前でgoogleアラートをかけると,違法アップロードされたファイルが見つかる…。xvideoの紹介サイトなども見つかる。ちまちまとエロ動画探すなら,お気に入りのAV女優の名前でgoogleアラートを設定するほうが楽なのかもしれない…。

検索トレンドに乗っている語句でSEOをかけても,インデックスされるのが1週間後なので,インデックスされたときには,別のトレンドに変わってしまうので,意味無いじゃん。



疑問点

googleアラートと,googleの検索ツールの期間指定を付けて検索した結果に,微妙にズレがある気がするがどうしたものか。 要検証です。


2013年7月3日水曜日

zentyalのinstall

zentyalコミュニティ版をインストールします。インストールしたのは,zentyal 3.0-2の32bit版です。

zentyalのisoのダウンロード

zentyal.orgダウンロードページから,isoでダウンロードします。32bit版と64bit版がありますが,何か事情がない限り,64bit版をインストールすればいいと思います。

今回は,32bit版のubutnu13.04 desktop上のvirtulaboxを使って仮想環境でインストールした都合で,32bit版を使いました。

zentyal-3.0-2-i386.isoがダウンロードできたら,インストール開始です。




zentyalのinstall

CD-ROMドライブに,isoファイルを突っ込んで,起動すると,起動画面が現れます。


言語の選択。男らしく英語を選びましょう。
最初に,インストーラーの言語を選択します。この手のものは,英語を使ったほうが安全なことが多いので,Englishで行きます。カーソルをEnglishに合わせて,Enterを押します。
なお,この程度の英語がわからない人は,PC触る前に,英語の勉強をしてください。

インストール開始
インストール画面が現れます。
普通のインストールするので,一番上の"Install Zentyal3.0-2(delate all disk)"にカーソルを合わせて,Enterを押します。
softwareRAIDやLVM上にもインストールできますが,今回は扱いません。








地域の選択。ここでは,otherを選択。
次に,地域を選択の画面に移動します。地域は日本にします。

最初に出てくる画面には,日本 (Japan)はないので,otherにカーソルを合わせて,Enterを押します。



地域の選択その2。Asiaを選択。
次の画面で,"Asia"を選択しますので,Asiaにカーソルを合わせて,Enterを押します。



地域の選択その3。Japanを選択。
次の画面で,"Japan"を選択して,Enterします。このあたりは,Ubuntuのインストールと同じだと思います。



localeの選択。United-Statesを選択。
インストールするlinuxの言語を選択します。ここでもトラブルを避けるために,United-Statesを選択します。


キーボードのレイアウトの設定。Noを選択。
次に,キーボードのレイアウトの設定です。Japaneseを自分で選択した方が楽なので,この画面では,Noを選択(インストーラーに検出させない)して,Enter。


選択画面ではJapaneseを選択。
キーボードレイアウトの選択画面が出ますので,"Japanese"を選択して,Enter。


一番上のJapaneseを選択。
日本語キーボードにもいろいろあるようで,さらに選択画面がでますが,"Japanese"を選択。他を選択するとどうなるのかは,知らない。



hostnameを入力。
キーボードの設定ができたら,hostnameを入力します。あとで変更できるので,ネットワーク上の他のPCと名前被りしなければ,何でもよいのではないでしょうか。デフォルトで,zentyalが入っています。



適当な名前を入力してから,tabを押す。



TABを押して,Continueに移動。
TABを1回押すと,Continueを選択できる。Continueを選択したら,Enterを押して,hostnameの入力はおしまい。なお,TABを複数回押すと,入力欄と,を巡回できる。



zentyalのaccountは空のままでOK。
zentyalのaccountを入力しろと言われるが,E-mail address欄は空のままで良い。TABを押して,Contineuに移動。



空のまま,Enter
E-mail address欄は空のまま,Continueを選択して,Enter。



user名を入力。
アカウント名を決めないといけない。今回は,スクリーンショットを取るためだけにインストールしているので"testuser"という適当な名前にした。

あとで変更するのもめんどいので,もっと愛着がわくユーザ名をつけよう。

あと,ユーザ名は忘れないようにしましょう。

センスが問われるところです。

入力したら,TABを押す。



ContinueでEnter
TABを押して,Continueを選択して,Enter。TABを複数回押すと,user name入力欄に戻れる。


パスワード入力
続いて,パスワードの入力。今回はやる気なく,パスワードを"password"している。



悪いパスワードの例ですね。



入力したらTABを1回おして,Continueに移動。



ContinueでEnter
Continue上でEnter。



パスワードをもう1回入力
確認のため,もう1回,パスワードの入力を求められる。



先ほど入力したパスワードと同じもの(今回は,"password")を入力して,TABを押す。



Continue上でEnter。



入力したパスワードが1回目の入力と一致していれば,パスワードの設定は完了。Time Zoneの設定画面に遷移する。



パスワードが一致していない!
なお,パスワードが一致しないと,赤い警告画面がでる。Continue上で,Enterを押し,パスワード入力画面に戻る。を選択してEnterを押すと,インストールメニュー一覧のような画面に遷移するので,気をつけること。



Time Zoneの設定。Asia/Tokyoなので,Yes
 Time Zoneの設定。"your time zone is Asia/Tokyo."となっていれば大丈夫。



Yesを選択してEnter。



Asia/Tokyo以外のTime Zoneを設定したい場合には,TABを押して,Noを選択してEnterを押せば良いと思われる。詳しいことは知らん。



Yesを選択して,Enterを押すと,OSのインストールがはじまるので,しばし待つ。









インストール終了のお知らせ
タバコでもすいながら,待っていると,インストールが終わり,終わったよ画面がでる。



あとでわかるが,Open SSH serverは勝手にインストールしてくれた模様。



Continueを選択してEnterを押して,再起動。



zentyal初起動。
再起動すると,zentyalのロゴが見えてくる。イスパニア製だけあって,ロゴがおしゃれ。



Zentyalで使うパッケージをインストールしている様子。




GUIが立ち上がる。LXDEベースだったはず。
zentyalで使うパッケージのインストールが終わると,いきなり,GUIのdesktopが立ち上がり,firefoxも立ち上がる。





firefoxはzentyalのweb guiのログイン画面を表示する。



インストール時に設定したユーザ名とパスワードでログインできる。



User Consoleでipアドレスを確認。
zentyalの設定は,別のPCのブラウザから行いたいので,ローカルipを確認するために,User Cosoleをダブルクリックして起動。



ifconfigで,eth0のinet addrを確認。



この環境では,192.168.12.46になっている。



確認したら,User Consoleで,exitを入力して,コンソールを閉じる。



右下の赤いアイコンをクリック。
デスクトップのGUIには用がないので,ログアウトする。



画面右下の赤いアイコン(shut down)をクリックして,shut down画面を表示する。


Logoutをマウスでクリック。
"Logout"をマウスで選択してクリックすると,ログアウトできる。


zentyalデスクトップのログイン画面
ログアウトすると,zentyalデスクトップのログイン画面が表示される。



 userにユーザ名を入れて,Enterを押すと
password入力欄がでる。正しいパスワードを入力してEnterを押すと,デスクトップに再度ログインできる。


以上で,インストールは終わり。

ブラウザベースのGUIを使った設定や,SSHでの接続はまた今度。