IT pass HikiWiki - [Memo2016][ITPASS]サーバ交換作業(WWW) Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

= WWW 班ログ
塩尻, 宮階で作業を行った.

== phase 0 (準備)

WWW 班は特に作業を行っていない.

== phase 1 (入替え開始)

WWW 班は特に作業を行っていない.

== phase 2 (tako の root ログイン許可)

WWW 班は特に作業を行っていない.

== phase 3 (ika から tako へ各種データをコピー)

WWW 班は特に作業を行っていない.

== phase 4 (root ログイン禁止)

WWW 班は特に作業を行っていない.

== phase 5 (tako, ika の交換: 設定ファイルの変更)

=== ホスト名と IP アドレスの変更

各種設定ファイルに存在する,ika と tako のホスト名と IP アドレスを入れ替えた.
編集の際は元のファイルを hoge_old としてバックアップを取った.

* ホスト名の変更

  * 編集したファイル
    * /etc/hostname
    * /etc/hosts
    * /etc/mailname
    * /etc/gate/gate.conf
    * /etc/exim4/update-exim4.conf.conf
  * 上記の場所以外にも古い名前が残っていないか
     # grep tako (または ika) /etc/*
     # grep tako (または ika) /etc/*/*
    などで検索しながら作業する.
    検索すると, ディレクトリですとメッセージが大量に出るので /* を増やして検索する.
  * ssh の公開鍵は消去されるので, そのままで良い.
  * /etc/hosts に関しては新 ika では tako, 新 tako では ika と書き換えた.

* IP アドレスの変更

  * /etc/hosts と /etc/network/interfaces 内の IP アドレスを入れ替えた.

ただし, /etc/network/interfaces の dns-nameservers は ika, tako いずれも133.30.109.22 とする. /etc/hosts の address の項目も忘れない.


== phase 6

* ネットワークを再起動する

# /etc/init.d/networking restart


== phase 7 (サービスの設定変更)

((*ここからホスト名が入れ替わっているので注意すること*)).


=== ika の WWW などの設定変更 (担当: 新 WWW 班)

* ((<[ITPASS2015]サービスの開始・停止>)) を参考に,
  以下のサービスが永続的に立ち上がるように設定.
  * apache2
  * openbsd-inetd

   # systemctl enable apache2
   $ cd /etc/init.d
   # insserv -d openbsd-inetd
   # chmod 755 openbsd-inetd

* ika から tako へ /home 領域を rsync した際に, /home/hiki/cgi /home/itpass/hiki/cgi の下にあるファイルの設定が元に戻ってしまっているので, 以下のファイルを次のように書き換える.
  * hiki.cgi
    * すでに変更後の状態だった.

     #!/usr/bin/ruby -I/usr/local/hiki
     load '/usr/local/hiki/hiki.cgi'



  * hikiconf.rb の最後の方
    * 書き換え前

       ### BEGIN: CREATED BY DEBIAN HIKISETUP ###
       @data_path      = '/home/itpass/hiki/data'
       @plugin_path    = '/usr/local/hiki/plugin'
       @template_path  = '/usr/local/hiki/template'
       @cgi_name       = 'hiki.cgi'
       ### END: CREATED BY DEBIAN HIKISETUP ###


    * 書き換え後

       ### BEGIN: CREATED BY DEBIAN HIKISETUP ###
       @data_path      = '/home/itpass/hiki/data'
       @plugin_path    = '/usr/local/hiki/plugin'
       @template_path  = '/usr/local/hiki/template'
       @cgi_name       = 'hiki.cgi'
       @lang           = 'ja'
       ### END: CREATED BY DEBIAN HIKISETUP ###


== phase 8 (OS 再起動)

OS を再起動する.

# reboot


== phase 9 (再起動後の動作確認)

=== サービスの起動確認

ps aux コマンドで以下の確認作業を行う.

* ika
  * http (https) が起動していることを確認した.

* tako
  * http (https) が起動して((*いない*))ことを確認.
  * ブラウザで https://tako-itpass.scitec.kobe-u.ac.jp/ にアクセスし, 各ページが正常に表示され((*ない*))ことを確認した.


=== サービスの動作確認

==== ika

* ((*http*)): ブラウザで https://ika-itpass.scitec.kobe-u.ac.jp/ にアクセスし, 各ページが正常に表示されることを確認できなかった.

* エラー内容

     cannot load such file -- hiki/config (LoadError)
     /usr/lib/ruby/2.1.0/rubygems/core_ext
/kernel_require.rb:55:in `require'
     /usr/lib/ruby/2.1.0/rubygems/core_ext /kernel_require.rb:55:in `require'
    /usr/local/hiki/hiki.cgi:19:in `<top (required)>'
    /home/itpass/public_html/hiki/hiki.cgi:2:in `load'
    /home/itpass/public_html/hiki/hiki.cgi:2:in `<main>'

* 研究室ページも所々見れない.
  * URL に .ja を付けると見れる.

* /usr/local/apache2/conf/httpd.conf に間違いがあった.
  * mod_negotiation がコメントアウトされていた.
    * コメントアウトを外したところ研究室のページは閲覧可能に.
  * tako と ika で diff を取り, ファイルを修正した.
    * socache_shmcb_module
      * コメントアウト(70 行目)
    * cache_module
      * コメントアウトを外した(85 行目)
    * rewrite_module
      * そのまま
    * cgid_module
      * mod_cgi.so の文を追加(149 行目)
  * しかし Hiki エラー のまま

* /home/epalab/public_html/hiki.cgi を書き換えた.
  * 一行目を /usr/local/hiki/lib に変更した.

* エラー
   undefined method `hiki_menu' for #<Hiki::Plugin:0x00000000c7f808> (NoMethodError)
   /usr/local/hiki/lib/hiki/command.rb:172:in `generate_error_page'
   /usr/local/hiki/lib/hiki/command.rb:138:in `rescue in dispatch'
   /usr/local/hiki/lib/hiki/command.rb:103:in `dispatch'
   /usr/local/hiki/hiki.cgi:36:in `block in <top (required)>'
   /usr/local/hiki/lib/hiki/storage/base.rb:13:in `open_db'
   /usr/local/hiki/hiki.cgi:34:in `<top (required)>'
   /home/epalab/public_html/hiki/hiki.cgi:2:in `load'
   /home/epalab/public_html/hiki/hiki.cgi:2:in `<main>'

* hiki_menu がどこにあるか探す
  * /usr/local/hiki/lib/hiki/plugin/00default にある.
    * ika では /usr/local/hiki/lib/hiki/command.rb で require されている.
    * tako では /usr/local/hiki/hiki/command.rb で require されている.

* 試しに command.rb に以下を追加
  * require "hiki/plugin/00default"
  * エラーだったので消去

* エラー内容
   cannot load such file -- hiki/config (LoadError)

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
   /usr/local/hiki/hiki.cgi:19:in `<top (required)>'
   /home/itpass/public_html/hiki/hiki.cgi:2:in `load'
   /home/itpass/public_html/hiki/hiki.cgi:2:in `<main>'

(12/5 ここまで)

== phase 9 (再起動後の動作確認)

=== サービスの動作確認

* 研究室の hiki ページ(村上真也さんに作業していただいた)
  * ~epalab/hiki/cgi/hikiconf.rb を編集

   @plugin_path   = '/usr/local/hiki/plugin'
   を
   @plugin_path   = '/usr/local/hiki/misc/plugin'
   と編集してもエラー変わらず,
   #@plugin_path   = '/usr/local/hiki/misc/plugin'
   とコメントアウトして成功.

  * 編集前のファイルは以下の場所に
   ~epalab/hiki/cgi/hikiconf.rb-20161206-murashin

* itpass の hiki ページ
  * /home/itpass/hiki/cgi/hikiconf.rb, ~itpass/hiki-secret/cgi/hikiconf.cgi を編集

   @plugin_path   = '/usr/local/hiki/plugin'
   をコメントアウトし,
   #@plugin_path   = '/usr/local/hiki/misc/plugin'
   とした.

  * ~itpass/public_html/hiki/hiki.cgi, ~itpass/public_html/hiki/hiki.cgi を編集
    * 一行目の末尾に /lib を追加した.

  * itpass の Hiki ページが見れるようになった.

* 各 Hiki への書き込みテスト
  * 書き込めた

==== Hiki 修正し忘れの修正(bldg3)

* /home/bldg3/hiki/cgi/hiki.cgi を以下のように変更
     #!/usr/bin/ruby -I/usr/local/hiki
  --->
     #!/usr/bin/ruby -I/usr/local/hiki/lib

* /home/bldg3/hiki/cgi/hikiconf.rb を以下のように変更
    @plugin_path   = '/usr/local/hiki/plugin'
  --->
    #@plugin_path   = '/usr/local/hiki/plugin'

==== /etc/hosts の書き換え

* 2015 年度のマニュアルに間違いがあった.
  * /etc/hosts に関しては新 ika では tako, 新 tako では ika と書き換えると記載があったが, 新 ika では ika, 新 tako では tako とそれぞれの IPアドレスに対応させて書く.
* IP アドレスと名前が対応しているか確認する.

==== httpd.conf
   shiojich@ika-itpass:/usr/local/apache2/conf$ sudo diff -u original/httpd.conf httpd.conf
   [sudo] password for shiojich:
   --- original/httpd.conf      2016-11-02 11:31:35.304212645 +0900
   +++ httpd.conf       2016-12-06 17:40:50.943066089 +0900
   @@ -16,7 +16,6 @@
    # with "/", the value of ServerRoot is prepended -- so "logs/access_log"
    # with ServerRoot set to "/usr/local/apache2" will be interpreted by the
    # server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log"
   -# will be interpreted as '/logs/access_log'.
    
    #
    # ServerRoot: The top of the directory tree under which the server's
   @@ -82,7 +81,7 @@
    #LoadModule auth_digest_module modules/mod_auth_digest.so
    #LoadModule allowmethods_module modules/mod_allowmethods.so
    #LoadModule file_cache_module modules/mod_file_cache.so
   -#LoadModule cache_module modules/mod_cache.so
   +LoadModule cache_module modules/mod_cache.so
    #LoadModule cache_disk_module modules/mod_cache_disk.so
    #LoadModule cache_socache_module modules/mod_cache_socache.so
    #LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
   @@ -128,7 +127,7 @@
    #LoadModule session_cookie_module modules/mod_session_cookie.so
    #LoadModule session_dbd_module modules/mod_session_dbd.so
    #LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
   -#LoadModule ssl_module modules/mod_ssl.so
   +LoadModule ssl_module         modules/mod_ssl.so
    #LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
    #LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
    #LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
   @@ -138,16 +137,18 @@
    LoadModule status_module modules/mod_status.so
    LoadModule autoindex_module modules/mod_autoindex.so
    #LoadModule info_module modules/mod_info.so
   -#LoadModule cgid_module modules/mod_cgid.so
   +LoadModule cgid_module modules/mod_cgid.so
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule vhost_alias_module modules/mod_vhost_alias.so
   -#LoadModule negotiation_module modules/mod_negotiation.so
   +LoadModule negotiation_module modules/mod_negotiation.so
    LoadModule dir_module modules/mod_dir.so
    #LoadModule actions_module modules/mod_actions.so
    #LoadModule speling_module modules/mod_speling.so
   -#LoadModule userdir_module modules/mod_userdir.so
   +LoadModule userdir_module modules/mod_userdir.so
    LoadModule alias_module modules/mod_alias.so
   -#LoadModule rewrite_module modules/mod_rewrite.so
   +LoadModule rewrite_module     modules/mod_rewrite.so
   +#LoadModule rewrite_module     modules/mod_userdir.so
   +LoadModule cgid_module modules/mod_cgi.so
    
    <IfModule unixd_module>
    #
   @@ -158,8 +159,8 @@
    # It is usually good practice to create a dedicated user and group for
    # running httpd, as with most system services.
    #
   -User daemon
   -Group daemon
   +User www-data
   +Group www-data
    
    </IfModule>
    
   @@ -180,7 +181,7 @@
    # e-mailed.  This address appears on some server-generated pages, such
    # as error documents.  e.g. admin@your-domain.com
    #
   -ServerAdmin you@example.com
   +ServerAdmin itpadmin@itpass.scitec.kobe-u.ac.jp
    
    #
    # ServerName gives the name and port that the server uses to identify itself.
   @@ -189,7 +190,7 @@
    #
    # If your host doesn't have a registered DNS name, enter its IP address here.
    #
   -#ServerName www.example.com:80
   +ServerName itpass.scitec.kobe-u.ac.jp:80
    
    #
    # Deny access to the entirety of your server's filesystem. You must
   @@ -213,8 +214,8 @@
    # documents. By default, all requests are taken from this directory, but
    # symbolic links and aliases may be used to point to other locations.
    #
   -DocumentRoot "/usr/local/apache2/htdocs"
   -<Directory "/usr/local/apache2/htdocs">
   +DocumentRoot "/home/itpass/public_html"
   +<Directory "/home/itpass/public_html">
        #
        # Possible values for the Options directive are "None", "All",

        # or any combination of:
   @@ -236,10 +237,12 @@
        #
        AllowOverride None
    
   +    Order deny,allow
   +
        #
        # Controls who can get stuff from this server.
        #
   -    Require all granted
   +         Require all granted
    </Directory>
    
    #
   @@ -247,7 +250,7 @@
    # is requested.
    #
    <IfModule dir_module>
   -    DirectoryIndex index.html
   +    DirectoryIndex index.html index.htm index.htm.en index.html.en index.htm.ja index.html.ja
    </IfModule>
    
    #
   @@ -265,7 +268,7 @@
    # logged here.  If you *do* define an error logfile for a <Virtual Host>
    # container, that host's errors will be logged there and not here.

    #
   -ErrorLog "logs/error_log"
   +ErrorLog "/var/log/httpd-error.log"
    
    #
    # LogLevel: Control the number of messages logged to the error_log.
   @@ -294,13 +297,13 @@
        # define per-<VirtualHost> access logfiles, transactions will be
        # logged therein and *not* in this file.
        #
   -    CustomLog "logs/access_log" common
   +    # Customlog "logs/access_log" common
    
        #
        # If you prefer a logfile with access, agent, and referer information
        # (Combined Logfile Format) you can use the following directive.
        #
   -    #CustomLog "logs/access_log" combined
   +    CustomLog "logs/access_log" combined
    </IfModule>
    
    <IfModule alias_module>
   @@ -339,16 +342,16 @@
        # ScriptSock: On threaded servers, designate the path to the UNIX
        # socket used to communicate with the CGI daemon of mod_cgid.
        #
   -    #Scriptsock cgisock
   +    Scriptsock cgisock
    </IfModule>
    
    #
    # "/usr/local/apache2/cgi-bin" should be changed to whatever your ScriptAliased
    # CGI directory exists, if you have that configured.
    #
   -<Directory "/usr/local/apache2/cgi-bin">
   -    AllowOverride None
   -    Options None
   +<Directory "/usr/local/apache2/cgi-bin/">
   +    AllowOverride AuthConfig Limit
   +    Options +ExecCGI +FollowSymLinks +IncludesNoExec
        Require all granted
    </Directory>
    
   @@ -385,7 +388,7 @@
        # To use CGI scripts outside of ScriptAliased directories:
        # (You will also need to add "ExecCGI" to the "Options" directive.)
        #
   -    #AddHandler cgi-script .cgi
   +    AddHandler cgi-script .cgi
    
        # For type maps (negotiated resources):
        #AddHandler type-map var
   @@ -454,16 +457,16 @@
    #Include conf/extra/httpd-autoindex.conf
    
    # Language settings
   -#Include conf/extra/httpd-languages.conf
   +Include conf/extra/httpd-languages.conf
    
    # User home directories
   -#Include conf/extra/httpd-userdir.conf
   +Include conf/extra/httpd-userdir.conf
    
    # Real-time info on requests and configuration
    #Include conf/extra/httpd-info.conf
    
    # Virtual hosts
   -#Include conf/extra/httpd-vhosts.conf
   +Include conf/extra/httpd-vhosts.conf
    
    # Local access to the Apache HTTP Server Manual
    #Include conf/extra/httpd-manual.conf
   @@ -480,7 +483,7 @@
    </IfModule>
    
    # Secure (SSL/TLS) connections
   -#Include conf/extra/httpd-ssl.conf
   +Include conf/extra/httpd-ssl.conf
    #
    # Note: The following must must be present to support
    #       starting without SSL on platforms with no /dev/random equivalent
   @@ -491,3 +494,68 @@
    SSLRandomSeed connect builtin
    </IfModule>
    
   + #
   +# Setting for Hiki Area
   +#
   +<Directory "/home/epalab/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/itpass/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/aoelab/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/chikuwa2/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/chikuwa3/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +
   +<Directory "/home/itpass/public_html/hiki-secret">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/uwabami/public_html/hiki">
   + AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/bldg3/public_html/hiki">
   + AllowOverride ALL
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/fourtran/public_html/hiki">
   + AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
   + Options -MultiViews
   +</Directory>
   +
   +<Directory "/home/itpass/public_html/hiki-IPtable">
   + AllowOverride ALL
   +</Directory>
   +</Directory>
   +
   +<Directory "/home/yot/public_html/hiki">
   +  AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI, FollowSymlinks
   +</Directory>
   +
   +<Directory "/home/okazakis/public_html/hiki">
   + AllowOverride FileInfo AuthConfig Limit Indexes Options=ExecCGI,FollowSymlinks
   + Options -MultiViews
   +</Directory>
   +
   +# uncomment out the below to deal with user agents that deliberately
   + # violate open standerds by misusing DNT (DNT *must* be a specific
   + # end-user choice)