2006年7月21日 星期五

架設 Bugzilla 與 AD 帳號整合(適用 Fedora Core 4 及 5 )

 我們公司有使用 Bugzilla 做為 User 電腦障礙排除的記錄單,最近要準備從 Windows 上轉移到 Linux 上,於是開始研究 Bugzilla。

一、確定已安裝套件
 1. Perl
 2. sendmail
 3. MySQL
二、下載 Bugzilla 套件
 可以到 http://www.bugzilla.org 下載最新的套件。
三、安裝
 1. 首將 Bugzilla 下載至 /var/www/html/ 的目錄下,並解壓縮。
  # cd /var/www/html
  # tar zxvf bugzilla-2.22.tar.gz
  # mv bugzilla-2.22 bugzilla
 2. 執行 Perl 模組檢查程式
  # cd bugzilla
  # ./checksetup.pl --check-modules

  Checking perl modules ...
  Checking for AppConfig (v1.52)
   .....
  The following Perl modules are optional:
  Checking for GD(v1.20) ....
 3. 安裝所需的 Perl 模組,由 checksetup.pl 列出未安裝的 module,如缺 AppConfig...
  # perl -MCPAN -e 'install "AppConfig"'
  ....
  Are you ready for manual configuration?[yes] no <- 第一次安裝會詢問是否要手動設定安裝
  ....
  /usr/bin/make install -- OK <- 若無 Error 則出現安裝完成
  依照以上方法將未安裝的 module 安裝完畢。
補充:
  1) 由於此線上更新是以 ftp 協定安裝,若公司的環境不允 passive ftp,則請修改以下檔案紅色部份。
  # vi /usr/lib/perl5/version/Net/libnet.cfg
  'ftp_int_passive' => 0,
  
  2) 若使用 perl 無法順利安裝,可到 google 尋找此模組相關的套件,再用 yum 來安裝,如 Date::Format 無法安裝,到 google 搜尋「Date::Format +rpm」,知道套件名稱後再使用 yum install package
  3) 其中 Template 及 Image::Magick 兩個模組安裝過程可能出現問題無法順利安裝,筆者使用 yum install perl-Template-Toolkit 與 yum install ImageMagick-perl 順利安裝完成。
  4) 若使用 MySQL 則要增加「DBD::mysql」模組,使用 PostgreSQL 則要增加「DBD::Pg」模組。
 4. 設定 MySQL
  1) 修改 /etc/my.cnf
   # vi /etc/my.cnf
   [mysqld]
   skip-networking <- 若不須要連線到 mysql 可關閉網路服務
   max_allowed_packet=1M
  2) 新增 Bugzilla 的 DataBase 及 Admin 管理者
   # service mysqld start
   # mysql -u root -p

   Enter password: <- 密碼空白,直接按 Enter
   mysql> create database bugs;
   mysql> GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';
   mysql> flush privileges;
   mysql> exit
   Bye
   或是以指令
   # mysql -u root -ppassword -e "create database bugs"
   # echo "GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,LOCK TABLES,CREATE TEMPORARY TABLES,DROP,REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'password';" > bugs.txt
   # mysql -u root -ppassowrd < bugs.txt
 5. 修改 localconfig
  # vi /var/www/html/bugzilla/localconfig
  $db_host = 'localhost';
  $db_name = 'bugs';
  $db_user = 'bugs';
  $db_pass = 'bugs_password';
 6. 執行 ./checksetup.pl
  # ./checksetup.pl
  Checking user setup ...
  ....
  Enter the e-mail address of the administrator: admin@e-mail.address <- 第一次登入 Bugzilla 的系統管理者帳號  You entered admin@e-mail.address. Is this correct?[Y/n] y  Enter the real name of the administrator: <- 管理者名稱
  Enter a password for the administrator account: **** <- 管理者的密碼
  Please retype the password to verify: ****
 7. 設定 Apache
  # vi /etc/httpd/conf/httpd.conf
  <Directory /var/www/html/bugzilla>
   AddHandler cgi-script .cgi
   Options +Indexes +ExecCGI
   DirectoryIndex index.cgi
   AllowOverride Limit
  </Directory>
 8. 將 Apache 及 MySQL 重新啟動
  # service mysqld restart
  # service httpd restart


四、AD 帳號整合
 此整合參數以 Bugzilla 3.0 為例,Bugzilla 3.0 安裝步驟與上述 Bugzilla 2.22 相同,Bugzilla 使用 LDAP 整合 AD 帳號。
 1. 以管理者身份登入 Bugzilla,點選「Parameters」進行參數設定。

 2. 選擇「User Authentication」,修改下列參數:
   user_verify_class:LDAP,DB
  此參數設定 Bugzilla 先以 LDAP 進行身份驗證,若驗證失敗則向 Bugzilla DB 進行身份驗證。
 3. 選擇「LDAP」,修改下列參數:
   LDAPserver:10.1.1.1 <輸入 AD 主機的 IP>
   LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
   LDAPBaseDN:ou=Users,dc=company,dc=com <輸入欲開始搜尋的根路徑>
   LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值>   LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>
 4. 選擇「Email」,修改下列參數:
   mail_delivery_method:SMTP <郵件伺服器寄信類型>
   mailfrom:bugs@company.com <寄件者Mail>
   sendmailnow:On
   smtpserver:mail.company.com <郵件伺服器位址>
  
五、單一樹系多網域整合
 若系統不支援多網域整合,就必須在各網域獨立架設一台伺服器,而 Bugzilla 須修改參數讓它支援多網域。
 1. 在「LDAP」參數中,修改下列參數
   LDAPserver:10.1.1.1:3268 <輸入具有 GC 角色的 AD 主機 IP,並指定 Port Number >
   LDAPbinddn:cn=buguser,ou=Users,dc=company,dc=com:pass123 <輸入可搜尋 AD 資訊的使用者帳號密碼>
   LDAPBaseDN:dc=com <輸入欲開始搜尋的根路徑>
   LDAPuidattribute:sAMAccountName <使用者 ID 在 AD 中的 Schema 值>
   LDAPmailattribute:mail <使用者 Mail 在 AD 中的 Schema 值>

沒有留言:

張貼留言