2016年9月22日

redmineのアップグレード

Filed under: Cloud,Computing,Linux — nabecyan @ 2:56 PM

サーバのredmineを2.* から3.0にアップグレードする

前提:Ubuntu 16.04 LTS

1. ruby, rails, bundlerをアンインストール

$ apt-get remove ruby rails bundler

2. rvmをインストールする

  • 事前作業として、curlをインストールする

$ sudo apt-get install curl

  • 公開鍵の取得

$ curl -sSL https://rvm.io/mpapis.asc | gpg --import -

  • 続けてrvmをインストールする

$ curl -L https://get.rvm.io | bash -s stable --ruby

  • ~/.bashrc に下記を環境変数を追加して、読み込ませる。

$ vi ~/.bashrc

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

$ source ~/.bashrc

  • rvmのコマンドを実行し動作を確認

$ rvm -v

rvm 1.27.0 (latest) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

3. rubyをインストールする

  • 下記コマンドを実行しrvmでインストール可能なリストを確認する

$ rvm list known

  • ruby2.3.0をインストールする(–defaultは、複数バージョンが混在している際にデフォルト使用するものを指定するオプション)

$ rvm install ruby-2.3.0 --default

  • 下記コマンドでインストールできたことを確認する

$ ruby -v

ruby 2.3.0p0 (2015-12-25 revision 53290) [i686-linux]

4. railsをインストールする

  • rails3からjavascriptのランタイムが必要であるため、node.jsをインストールしておく

$ sudo apt-get install nodejs

  • railsのインストール可能なバージョンを確認する

$ gem search -r rails

...

radiojs-rails (0.2.1)

radius-rails (0.0.6)

rails (5.0.0.1)

rails-3-settings (0.1.1)

rails-action-args (0.1.1)

...

  • インストールしたruby2.3.0と、これからインストールするrails(5.0.0.1)を「rails5_0_0_1」という名前のgemsetとして定義しておく

$ rvm gemset create rails5_0_0_1

$ rvm 2.3.0@rails5_0_0_1

  • railsをインストールする

$ gem install rails

  • コマンドを実行しインストールできたことを確認

$ rails -v

Rails 5.0.0.1

 5. redmineをインストールする

  • file-tail とpassengerをインストールする。

$ gem install file-tail

$ gem install passenger

  • mod_passenger をビルドする

Webサーバは Apache なので,これ向けのモジュールをビルドする。

$ passenger-install-apache2-module --auto --languages ruby

  • Apache の設定を修正する

事前準備

libapache2-mod-passenger を apt-get でインストールし、a2enmod passenger で有効化しておく

$ vi /etc/apache2/mods-aveilable/passenger.load

## modified by H.Tanabe 20160922

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so

$ vi /etc/apache2/mods-aveilable/passenger.conf

## modified by H.Tanabe 20160922

<IfModule mod_passenger.c>

PassengerRoot /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.30

PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.0/wrappers/ruby

</IfModule>

## H.Tanabe

PassengerDefaultUser www-data

RailsBaseURI /redmine

$ vi /etc/apache2/sites-aveilable/redmine.conf

<VirtualHost *:80>
  ServerName redmine.example.com:80
  ServerAdmin webmaster@example.com
  DocumentRoot /var/www/vhosts/redmine/public/

  <Directory /var/www/vhosts/redmine/public/>
    Options Indexes FollowSymLinks -MultiViews -ExecCGI
    AllowOverride All
    PassengerResolveSymlinksInDocumentRoot on
  </Directory>
</VirtualHost>

  • gem “mysql2″ をインストールする

$ gem install mysql2

  • gem “bundler” をインストールする

$ gem install bundler

$ rake generate_session_store

(in /var/lib/redmine)

Please configure your config/database.yml first

Could not find gem 'rails (= 4.2.7.1)' in any of the gem sources listed in your Gemfile or available on this machine.

Run `bundle install` to install missing gems.

エラーになるので、bundle installしてみる。

$ bundle install

$ rake generate_session_store

(in /var/lib/redmine)

Please configure your config/database.yml first

/usr/local/rvm/gems/ruby-2.3.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: key "inodot" is duplicated and overwritten on line 466

Note: The rake task generate_session_store has been deprecated, please use the replacement version generate_secret_token

  • シークレットトークンを作成する

bundle exec rake generate_secret_token

  • データベースの移行をする

$ RAILS_ENV=production bundle exec rake db:migrate

  • デフォルトデータの反映

$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Webアクセスしてもプロジェクトなどが表示されず、エラーログを確認。

config/databese.ymlがないというエラーだったので

$ ln -s /etc/redmine/default/database.yml /var/lib/redmine/config/

でシンボリックリンクを貼って

$ bundle install

で見えるように なった。

しかしながら、アップグレード前のデータを移行していないので、projectをクリックしても(当然ながら)表示エラーとなる。

$ cd /var/lib/redmine

$ bundle exec rake db:migrate RAILS_ENV=production

$ /etc/init.d/apache2 restart

でようやくWebアクセスできるようになった。

 

 

2015年4月13日

Lubuntuにリモートデスクトップ接続

Filed under: Computing,Linux — nabecyan @ 10:21 PM

LutbuntuにXRDPをインストールしてリモートデスクトップ接続できるようにした。

1.xrdpをインストール
$ sudo apt-get install xrdp lxde

2.ユーザ hideki のホームディレクトリに所定のファイルを作成。
$ echo lxsession -s LXDE -e LXDE > ~/.xsession

3./etc/xrdp/xrdp.iniを編集
$ sudo vi /etc/xrdp/xrdp.ini

crypt_levelをlowからhighにする
## H.Tanabe 20150411
#crypt_level=low
crypt_level=high

xrdp1セクションの書き換え
[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1

## H.Tanabe 20150411
#port=-1
port=ask-1

4.最後にこれを実行
$ sudo gsettings set org.gnome.Vino require-encryption false

5.サービスの起動
sudo service xrdp restart
または
sudo /etc/init.d/xrdp restart
デスクトップの共有設定からリモートデスクトップアクセスを許可する

6.iptablesの設定
sudo vi /root/iptables/iptables-rules.resotre

### for XRDP (VNC/RemoteDesktop)
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3389 -j ACCEPT sudo /etc/init.d/iptables restart
sudo iptables -L | grep 3389 sudo netstat -an | grep 3389

7.接続してみる
mstsc /v:<接続先コンピュータ名またはIPアドレス>
mstsc /?したらヘルプメッセージダイアログが出現する
Moduleはsesman-Xvncのままにする.
usernameとpasswordはLinuxマシンのそれを入力する.
portは,初回接続時は-1で良い

こんな感じになるので、ユーザ名、パスワードを入力してログインする。Moduleはsesman-Xvnxでよい。

こんな感じになるので、ユーザ名、パスワードを入力してログインする。Moduleはsesman-Xvnxでよい。

 

2014年5月30日

Intel SSD 8MB病

Filed under: Computing,Linux,Mac,Windows — nabecyan @ 11:50 PM

Mac miniに入れてるIntel SSD 320シリーズが認識しなくなったので、確認したら‥ 容量が8.4MBとなってしまった。
ファームウェアのアップデートは済ませてあったのだけど。
どうもアップデートで100%修正されているわけではないらしい。
電源の瞬停でもあったのだろうか。

Intelのサイトからisoイメージのアップデータをまずダウンロードして、CD-Rに焼き込んで、Mac mini上でトライ。
Mac miniではアップデータで起動はできるものの、マウス、キーボードが認識しなくなり、うまくいかない。

次にSSDをWindowsマシンに接続してWindows版SSD Toolboxでチャレンジ。

まず、ToolboxがWindwos8だとSecureEraseできないとのたまう。
互換性の設定でWindows7互換のプログラムとして動作させたらSecureEraseの機能が使えるように。さて、一件落着と思いきや、電源ケーブルを一旦抜き差ししなさいときた。

なんとか、ここまでやってSecureErase成功。600GBの容量に復活。

2014年5月19日

postfixのmail transport修正

Filed under: Computing,Linux — nabecyan @ 10:08 PM

JmicronのRAIDエラーをメール通知設定する際にDyndnsへのtransport設定でエラーになっているのに気づいた。

原因はsasl passwordが設定できてなかったこと。

/etc/postfix/sasl/sasl_password に

outbound.mailhop.org ユーザ名:パスワード

を記述、

$ sudo postmap /etc/postfix/sasl/sasl_password

でハッシュdbに変換してエラーがなくなった。

2014年4月30日

sshのアクセス制限

Filed under: Computing,Linux — nabecyan @ 11:19 PM

sshで接続がうまくできないことがあって、調査。

  1. JeganにはローカルネットのどのマシンからもSSHログインできる
  2. ReGZはJegan以外のマシンからはログインできる。Jeganからはタイムアウト
  3. nmap -sS 192.168.11.112 -p 22 で確認すると、filtered port となってる?
  4. 以前iptablesで22番ポートに細工をしてたのが原因みたい。
  5. 22番ポートは普通にacceptしてやることで解消。

SSH自体はできるようにしたけど、やっぱり外部からの攻撃は鬱陶しい。

ということで、denyhostsをインストールと思ったら…ubuntu 14.04ではサポートしないみたい。仕方なく、代替の方法をさらに調査。

fail2banというのが使えるっぽい。ログを監視してiptablesに登録してくれる便利なやつらしい。

sudo apt-get install fail2ban sudo vi /etc/fail2ban/jail.confで

  • ignoreip = 127.0.0.1/8   192.168.0.0/16

としてローカルネットは検査対象にかけないようにする。

取り敢えずはこれで様子見しよう。

2014年4月27日

Ubuntu 14.04LTS + LXDE

Filed under: Computing,Linux — nabecyan @ 8:22 AM

Ubuntu14.04LTSがリリースされたので、サーバのOSを全面的に見直し。

・Unityは2Dが廃止されたので、LXDEを入れる

→ 一旦は緩慢なUnity3Dで起動してパッケージマネージャからLXDE,lubuntu-desktopsをインストール

→ LXDEで再ログイン、Unityはpurgeしておく。

結果、1080pの画面解像度でのデスクトップが実現できた。

Ubuntu 12.04LTSのXGA画面のときより快適かな。 他、各種サービスも順次復元。

 


これまでに復元したもの


<BIND9、ddlient>

設定をほぼそのまま復元で問題なく動作。

 

<apache2>

設定をconf-available/mods-available/sites-availableに移動してa2enconf/a2enmods/a2ensitesで有効にするように変更。

 

<wordpress>

mysqlのデータベースを本来エクスポート→インポートで移行すべきだが、今回はmysql設定、wordpressのデータベース、Webディレクトリをそのままコピーして、強制的に移行した。

mysql側で読み込めるユーザの設定で手間取ったが、なんとか復元。(今、正に復元したwordpressに書き込んでる)

 

<postfix,dovecot>

main.cf,dovecot.confの設定を書き直し。

 

<webdav>

最初クライアントからうまく接続できなかったが、エイリアスパスとディレクトリパスの最後の’/’の統一で解消。(これまではいい加減な設定でも動いてた?)

 

<ntpd>

ntp.confのNTPサーバの記述だけ変更。

  1. server eagle.center.osakafu-u.ac.jp
  2. server -4 ntp.nict.jp
  3. server -4 ntp.jst.mfeed.ad.jp

 

 


動作はできたけど、まだ完全ではないもの


<dhcpd>

これまでのprimary,secondaryの構成がうまく動かない。(Master側のReGZのCPUだけプロセス稼働率が90%以上になってしまう)

仕方ないので、failover peerの設定をコメントアウトして、ReGZだけのdhcpサーバとして今は動かしている。

できればsecondaryサーバを動かしてやりたいのだが。もう少し調査してからか?

 

<samba>

smb.confをUbuntu 12.04LTSのときとと同じにした。

OSXクライアントからゲストで接続はできたが、Linuxユーザアカウントでの接続ができない状態。

 

<hostapd>

設定自体は良さそうにみえるものの、/etc/init.d/hostapd start でフェイルしてしまう。

ネットで調べたところ、

http://askubuntu.com/questions/435253/doesnt-ubuntu-13-10-support-the-hostapd-nl80211-driver

にあった、以下の2つのコマンドを使ったら、/etc/init.d/hostapd restartが通った。

  1. sudo nmcli nm wifi off (ネットワークマネージャを経由してWiFiをオフにする?)
  2. sudo rfkill unblock wlan (WLANの再有効化をするのかな?)

ということで、nmcli,rfkillを/etc/init.d/hostapdのstart,restartのデーモン起動開始前に実行するようにして、Jegan(Atheros AR9285)、ReGZ(Ralink RT3070)ともアクセスポイントとして見えるようにできた。

 

4/29 アクセスポイントとしては見えるけれど、接続するとうまくIPアドレスが払い出されない。無線LANの認証は通っているんだけど。もう少し設定を見直さないとだめかなぁ。

 

2011年5月30日

サーバが入力/出力エラー?

Filed under: Computing,Linux — wp-post @ 11:24 PM

Web/Mail/DNSとかをサービスしてるfit-PC2iがぁ…
どうしてか、sshログインして、他のマシンにsshしようとすると”入力/出力エラーです”って蹴られる。
ls /usr/bin/ssh
ってやると、I/Oエラー。
sudo shutdown -r now
も効かない。
「え、ついにSSD壊れたか」と会社からのsshを一旦断念。
帰宅後、画面の固まったマシンを強制再起動してみた…あ、動くじゃないか。

40GBのIntel SSD手配したのにぃ。
でもまあ、いいか。新しい40GB-SSDに入れ替えて、今の64GBはバックアップにするかな。

2010年12月21日

fit-PC2iをアクセスポイント化した

Filed under: Computing,Linux — nabecyan @ 11:58 AM

fit-PC2iのRalink RT3070 USB無線LANを使ってアクセスポイント化することに成功したので、メモとして残しておく。

OS:ubuntu 10.04 (Kernel 2.6.32-27)

無線LAN:Ralink RT3070 USB

レシピ
1. 最初に古いモジュールを探して全部無効化する。
sudo lsmod | grep rt2 sudo rmmod rt2800usb
…関連するモジュールはすべてrmmodしちゃう。

2. 古いドライバの在処を調べてどこか別の場所(今回は/root/tmp/old_rt2xxx_driversってディレクトリ下)に移動する。
sudo updatedb sudo locate rt2800usb.ko
sudo locate rt2800lib.ko sudo locate rt2x00usb.ko
sudo locate rt2x00lib.ko sudo locate rt2870sta.ko
で、これらすべてを/root/tmp/old_rt2xxx_drivers/以下に引っ越してからtarで固める。

3. http://wireless.kernel.org/ から最新のcompat-wirelessドライバを取ってくる。
$ wget http://wireless.kernel.org/download/com … 20.tar.bz2

4. compat-wirelessドライバをコンパイルする。
tar xfv compat-wireless-2010-12-20.tar.bz2 cd compat-wireless-2010-12-16
./scripts/driver-select rt2x00 make && make install

5. hostapdをインストールする。(AP化するため)
sudo apt-get install hostapd

6. bridge-utilsをインストールする。(ブリッジ化するため) sudo apt-get install bridge-utils

7. /etc/hostapd/hostapd.confを適宜編集
今回はテストのためにWEP認証にした。勿論WPA/WPA2でも問題ないはず。
vi /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=TEST_AP
country_code=JP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wep_default_key=0
wep_key0=********** <-WEPキー
ieee80211n=1
wpa=0

8. /etc/network/interfacesを編集して、Ethernet〜WiFi間ブリッジの設定をする。 sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet manual
wireless-mode master
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.11.111
network 192.168.11.0
broadcast 192.168.11.255
netmask 255.255.255.0
gateway 192.168.11.1
pre-up ifup eth0
pre-up ifup wlan0
post-down ifdown eth0
post-down ifdown wlan0
bridge_ports eth0 wlan0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

9. fit-PC2iを再起動して、ちゃんと動くか確認する。
sudo iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
wlan0 IEEE 802.11bgn Mode:Master Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:on
br0 no wireless extensions.
mon.wlan0 IEEE 802.11bgn Mode:Monitor Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
sudo ifconfig wlan0

wlan0     Link encap:イーサネット  ハードウェアアドレス 00:0d:f0:63:99:4c
inet6アドレス: fe80::20d:f0ff:fe63:994c/64 範囲:リンク
UP BROADCAST MULTICAST  MTU:1500  メトリック:1
RXパケット:2831 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:245636 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:366703 (366.7 KB)  TXバイト:44669092 (44.6 MB)

みたいな感じで表示されてればOK.

 

HTML convert time: 0.539 sec. Powered by WordPress