[Memo2014][ITPASS]サーバアップグレード(ika)
ITPASSサーバアップグレード(ika)
ika から tako へのバックアップの cron を止める
- /etc/cron.local/daily 以下の該当スクリプトの実行権限を外す
# chmod a-x /etc/cron.local/daily/230_rsync_itpassbk
システムアップグレード作業
パッケージ関連の設定確認
- Squeeze の最新版にする
# apt-get update # apt-get upgrade
- パッケージマネージャにおいて中断しているアクションの確認
- aptitude のビジュアルモードで起動し, g を押す
- いくつかのパッケージが削除推奨になった
- 指示通り削除した
APT の pin 機能を無効にする
- exim4 関連のパッケージが hold されているので, それを解除した (参考ページ)
# echo exim4 install | dpkg --set-selections # echo exim4-base install | dpkg --set-selections # echo exim4-config install | dpkg --set-selections # echo exim4-daemon-light install | dpkg --set-selections
- 一応 これらの exim 関連パッケージも更新した
- パッケージの状態をチェックする
インストールが未完了のパッケージ (Half-Installed) や設定に失敗したパッケージ (Failed-Config), 何らかのエラー状態にあるパッケージを表示
# dpkg --audit
- 何も表示されなかった
- /etc/apt/source.list の電脳関連の部分をコメントアウト
wheezy へのアップグレード
- APT のインターネットソースの編集
- /etc/apt/source.list の squeeze を wheezy に書き換え
アップグレードセッションの記録をとる
- サンプル
# script -t 2>~/upgrade-wheezy手順.time -a ~/upgrade-wheezy手順.script
- パッケージリストの更新
# apt-get update
- アップグレードするのに十分な領域があることを確認
# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
コンピューターが PAE を持っているかを確認
# grep -q '^flags.*\bpae\b' /proc/cpuinfo && echo yes || echo no
- yes と表示された
システムの最小アップグレード
# apt-get upgrade
- update-passwd に関するメッセージが表示された
- bind ユーザー, およびグループの削除を推奨された
- 削除した
- この後の作業で再度追加する
- bind ユーザー, およびグループの削除を推奨された
- adduser パッケージの更新で, /etc/deluser.conf を更新するか確認された
- 更新しないので, N を押した
- cron のパッケージの更新で, /etc/crontab
- 更新しないので, N を押した
- fail2ban /etc/fail2ban/filter.d/sshd.conf
- 更新しないので, N を押した
- fail2ban /etc/fail2ban/filter.d/apache-auth.conf
- 更新しないので, N を押した
- fail2ban /etc/fail2ban/filter.d/jail.conf
- 更新しないので, N を押した
- sudoers /etc/sudoers
- 更新せず, 後で書き換える
- update-passwd に関するメッセージが表示された
システムのアップグレード
# apt-get dist-upgrade
以下のように表示され, アップグレードが中断された.
「openjdk-6-jre」の即時設定は動作しません。詳細については man 5 apt.conf の APT::Immediate-Configure の項を参照してください
- マニュアルに従い以下のように実行
apt-get dist-upgrade -o APT::Immediate-Configure=0
- linux-image-... で上と同様に表示され, 中断される
- 別の方法を探すことにした
- openjdk-6-jre を削除し, dist-upgrade を行った
- libc6 の設定で, 一部のサービスを自動的に再起動してもいいか聞かれる
- YES を選択
- bash /etc/bashrc の設定を更新するか聞かれる
- 更新しないため, N を押した
- openssl /etc/ssh/openssl.cnf
- 更新しないため, N を押した
- /etc/services
- 更新しないため, N を押した
- /etc/logrotate.d/rsyslog
- ひとまず更新せず, 変更点を後で書き換え
- /etc/init.d/exim4
- 更新し, 後で exim4.bk にリネームする
- /etc/cron.daily/exim4-base
- 更新しない
- /etc/csh.cshrc
- 更新しない
- /etc/logrotate.d/apache2
- 更新しない
- /etc/init.d/apache2
- 更新しない
sudoers 関連の設定
- マニュアルで推奨されている /etc/sudoers.d 下への移動は行わない
- gate-touroku-system が /etc/sudoers を編集するので
/usr/local/gate/sbin/gate-db-sudoers ファイルを編集し, 以下の内容を該当部分に追記
Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
rsyslog
invoke-rc.d rsyslog reload > /dev/null
となっているところを
invoke-rc.d rsyslog rotate > /dev/null
とする。
その他ソフトウェアのアップグレード
bind の設定
bind ユーザー, グループを追加する
- vipw を実行して以下の行を追加する
bind:x:53:53:Bind Sandbox:/usr/local/bind/var:/bin/false
- vipw -s を実行して以下の行を追加する
bind:!:13749:0:99999:7:::
- vigr を実行して以下の行を追加する
bind:x:53:
- vigr -s を実行して以下の行を追加する
bind:*::
- bind を起動する
# /etc/init.d/bind start
hiki の設定
- 村上 (真) のインストールログ を参考に作業する
- ログと異なる点のみ記載
- インストールソフトウェアの確認
- ruby1.9.1 が入っていなかったので, 追加した
hiki のピン止め
- 追加内容を以下のように変更
Package: hiki Pin: release n=testing Pin-Priority: 90 Package: ruby-rd Pin: release a=wheezy-backports Pin-Priority: 1001 Package: rdtool Pin: release a=wheezy-backports Pin-Priority: 1001 Package: rdtool-elisp Pin: release a=wheezy-backports Pin-Priority: 1001
- パッチ当て
- エラー削減
- hiki-1.0.0-util.diff が failed したが, そのまま進めた
- 必須項目
- hikisetupでインストールされる hiki.cgi の shebang を書き換え
- Apply anyway? と聞かれるので n を入力
- auth_ldapをインストール(ITPASSサーバでは不要)
- 不要なので飛ばした
- attach.rbにパッチ当て
- 不要なので飛ばした
- attach.cgiにパッチ当て
- 不要なので飛ばした
- hikisetupでインストールされる hiki.cgi の shebang を書き換え
- ツール関係
- ここも飛ばした
- 機能拡張
- html_formatter.rb の修正
- パッチでエラーが出た
- html_formatter.rb の修正
- エラー削減
- ここで hiki のバージョンを確認したところ, 0.8.8.1-3 であったので, hiki を remove し hiki 1.0.0 をインストールし, 初めから作業し直すことにした
hikiのインストール
- コマンドを以下のように変更
# apt-get install hiki/testing
- パッチあて
- hiki.cgiのshebangを書き換え
- エラーが出たが, パッチは当たっていたようなので, そのまま進める
- hikisetupでインストールされる hiki.cgi の shebang を書き換え
- Apply anyway? と聞かれるので n を入力
- ツール関係
- 先ほどと同様飛ばした
- 機能拡張
- セッションの有効期限を伸ばす
- hiki_hiki_session.rb.patch を使用する
- セッションの有効期限を伸ばす
- 文字コード指定の変更
- ~itpass/hiki/, ~itpass/hiki-secret/cgi/, ~itpass/hiki-IPtable/cgi/, ~epalab/hiki/cgi/ ~bldg3/hiki/cgi/ の hikiconf.rb を編集した
- CVSを使っている場合
- ~itpass 下の hiki のみこの作業を行った
- commitinfo の編集
- commitinfo ファイルに書き込み権限をつけた chmod a+w commitinfo
- commitinfo の編集後元に戻した chmod a-w commitinfo
- 同様に, CVSROOT 以下のその他のファイルの編集を行った
- データの移行
- 記事を変換する,info.dbを念のため書き戻す は飛ばした
- info.dbを変換する
- 変換のコマンドを実行したところエラーが出た
- convert_info_db.rb の require の hiki/ で始まるパスの先頭に ./ を追加する
- 67 行目でエラーが出た
- /usr/share/hiki/tools を作成し, そこに convert_info_db.rb を配置し, /usr/share/hiki/ にcd してそこから実行する
- 変換のコマンドを実行したところエラーが出た
- 「ログを見る」は飛ばし, 「CVSを利用している場合」までスキップ
- 上と同様に convert-cvs.rb を /usr/share/hiki/tools にコピーし実行する
- 「リポジトリからデータをチェックアウトする。」まで完了した後, 「ログを見る。」からの作業を行った
- 「合宿型セミナー開催のための作業手順・内容-撮影部隊スケジュール」の変換に失敗していた
- この時点では, hiki がエラーで見られず修正できないので, この問題は後で修正する
- 「合宿型セミナー開催のための作業手順・内容-撮影部隊スケジュール」の変換に失敗していた
- 「失敗しなかった場合は」の部分の作業は飛ばして, ~itpass/hiki/data/hiki.conf の utf8 への変換のみ行った
hiki 閲覧時にエラーが表示される問題の対策
- 2か所の hiki.cgi の先頭を書き換えた
#!/usr/bin/ruby1.9.1 -I/usr/share/hiki
- ~itpass/hiki/cgi/hikiconf.rb の文字コードを utf8 に変更した
- hiki.cgiのshebangを書き換え
- hiki の作業はここで中断した
gate の設定
- [itpass 7849] gateのためのwrapperプログラム のメール添付ファイルをコンパイルした
- /usr/local/gate/bin の以下のファイル名の末尾に.plを付けた
gate-user-accept gate-user-apply gate-user-authkey-list gate-user-authkey-lock gate-user-authkey-unlock gate-user-renew gate-user-withdraw
- コンパイルしたファイル (gate-user-show) を /usr/local/gate/bin 以下に置いた
- このファイルの所有者は gate:gate, パーミッションは 2755 とした
- 動作テスト
gate-user-show
- libperl4-corelibs-perl をインストールして再実行したところエラーは出なくなった
- gate-user-show ファイルをコピーして, 以下のファイル名に変更
gate-user-accept gate-user-apply gate-user-authkey-list gate-user-authkey-lock gate-user-authkey-unlock gate-user-renew gate-user-withdraw
- gate の GUI から動作テスト
- 「更新/変更」を押し, ログインしたところ, 何も表示されない
- 文字化けする
- gate の作業はここで中断した
hikiの設定(2)
- 文字化けの問題の修正
- /home/itpass/hiki/cgi の hiki.cgiとhikiconf.rb を編集した
- ファイルのエンコードと, hikiconf.rd の @charset の部分の修正
- /home/itpass/hiki/cgi の hiki.cgiとhikiconf.rb を編集した
- 左のメニューのエラーメッセージ
- SideMenu ページをいったん「編集」して「保存」すると消えた
gateの設定(2)
- 以下の作業を行ったところ解決した
- wrapperプログラムの不備を解消した
- wrapperプログラムをsetuid gateした(モードを2755にした、所有者をgate:gateにした)
- gate-common.plでhtmlの文字コードを指定するようにした
- mailサーバとしてqmailでなくexim4を使うようになってしまっていたのでqmailを使うようにした (参考ページ)
- 加えて以下の作業をした。
- libjcode-perlの代わりにlibjcode-pm-perlを使うように変更。
- htpasswdで生成する.gateファイルのフォーマットが変わったので、従来のフォーマットで生成するためのオプション-dを付け加えるようマニュアルを書き換えた。
hikiの設定(3)
以下の hiki についての作業を行った
~itpass/hiki-secret, ~itpass/hiki-IPtable, ~epalab/hiki ~bldg3/hiki, ~fourtran/hiki
- 村上 (真) のインストールログ の, 「CVSを使っている場合」以降の部分を行った.
- commitinfo などの書き換えは, 該当行がなければ行わなくてよい
- データの移行作業の内, convert.rb を使った作業は ITPASS の hiki の場合と同様に飛ばしてよい
- hiki.conf の修正
- ファイルの文字コードを utf8 に変更した
ファイル内の site_name, author_name に日本語が含まれている場合は, いったんその部分を消した
- 日本語の部分はこのようにエンコードされていた
site_name = "\274\253\301\263\262\312\263\330\301\355\271\347\270\246\265\346\305\357\273\260\271\346\264\333 \311\364\262\260\244\316\315\275\314\363\264\311\315\375Wiki"
- site_name, author_name の日本語の部分は, hiki がみられる状態になった後, 管理者ページの設定から改めて記入する
- hiki-1.0.0 の site_name.sh を使うと, 日本語の部分を読める形に戻すことができる
- hiki.cgi の修正
- 文頭の部分を, ruby1.9.1 で実行するような記述に直した
- table_form_rd.rb の修正
- /usr/share/hiki/misc/plugin の table_form_rd.rb を utf8 に変換した
- 以上の作業で, 各 hiki が閲覧可能になった
- 村上 (真) のインストールログ の, 「CVSを使っている場合」以降の部分を行った.
- 記事名の長いページに関する修正
- hiki/data/text 以下の該当ページのファイルを開き, 中身をコピーした
- 短くした名前で新しい hiki ページを作成し, コピーした内容を貼り付けた
- info.db から古いページの記述を削除した(これで「検索」ができるようになった)
aptの設定
- /etc/apt/source.list の testing の記述が残ったままだったので, 削除した
hikiの追加の設定
/home/itpass/hiki/cvsroot/CVSROOT/html2cgiform.rb
を無効化するために、
hikidb_update.shのHTML2CGIの部分をコメントアウトした。 /home/itpass/hiki/cvsroot/CVSROOT/extra_spaces_checker.rb
の72行目のopenメソッドの引数に external_encoding: "UTF-8" を足した。
/usr/share/hiki/misc/plugin/table_form_rd.rb
の 80 行目の lines.each を lines.each_line に書き換えた
Keyword(s):
References:[[ITPASS2014]2014年度サーバアップグレードログ] [[Memo2014][ITPASS]サーバ構築に関する覚書]