Fedora 29: プロジェクト管理ツールのTracをインストールする

Tracのインストール方法を記載します。ダイジェスト認証でユーザを管理します。

1 Tracのインストール

以下のスクリプトはTracをインストールし、testという名前のプロジェクトを作成します。

  • Digest認証経由でTracへログインします。
  • ADMIN_PASSWDはDigest認証で使うadminユーザのパスワードです。
  • USER_NAMEはDigest認証で使う一般ユーザのユーザ名です。
  • USER_PASSWDはDigest認証で使う一般ユーザのパスワードです。
#!/bin/sh -e


[ -z "${ADMIN_PASSWD}" ] && ADMIN_PASSWD="trac"
[ -z "${USER_NAME}" ] && USER_NAME="trac"
[ -z "${USER_PASSWD}" ] && USER_PASSWD="trac"

trac_install()
{
  sudo dnf install -y trac mod_wsgi mod_ssl

  sudo firewall-cmd --add-service=https --permanent
  sudo firewall-cmd --reload

  sudo setsebool -P httpd_unified on

  sudo mkdir /var/lib/trac
  sudo mkdir /var/www/html/trac
  sudo chown apache:apache /var/www/html/trac
}

create_project()
{
  proj=${1}

  sudo trac-admin /var/lib/trac/"${proj}" initenv "${proj}" sqlite:db/trac.db
  sudo trac-admin /var/lib/trac/"${proj}" deploy /var/www/html/trac/"${proj}"
  sudo chown -R apache:apache /var/lib/trac/"${proj}"
  sudo chown -R apache:apache /var/www/html/trac/"${proj}"

  sudo chcon -R -t httpd_sys_content_t /var/lib/trac/"${proj}"

  sudo dnf install -y expect
  expect -c "
set timeout -1
spawn sudo htdigest -c /var/lib/trac/${proj}/.htdigest ${proj} admin
expect \"New password: \"
send \"${ADMIN_PASSWD}\n\"
expect \"Re-type new password: \"
send \"${ADMIN_PASSWD}\n\"
expect eof
"
  sudo trac-admin /var/lib/trac/"${proj}" permission add admin TRAC_ADMIN

  expect -c "
set timeout -1
spawn sudo htdigest /var/lib/trac/${proj}/.htdigest ${proj} ${USER_NAME}
expect \"New password: \"
send \"${USER_PASSWD}\n\"
expect \"Re-type new password: \"
send \"${USER_PASSWD}\n\"
expect eof
"

  cat <<EOF | sudo tee /etc/httpd/conf.d/"${proj}".conf
WSGIScriptAlias /trac/${proj} /var/www/html/trac/${proj}/cgi-bin/trac.wsgi
<Location /trac/${proj}>
  AuthType Digest
  AuthName "${proj}"
  AuthUserFile /var/lib/trac/${proj}/.htdigest
  Require valid-user
</Location>
EOF
  sudo systemctl restart httpd
}

trac_main()
{
  trac_install
  create_project test
  create_project OtherProject
}

trac_main

2 Tracへのアクセス

以下のURLにブラウザでアクセスします。ブラウザでこのページの証明書を許可してください。

https://<server>/trac/test

ダイジェスト認証のダイアログが表示されます。ユーザ名をadmin、パスワードをADMIN_PASSWDの値に設定します。

0001_DigestAuth.png

Tracのページが表示されました。 adminユーザでログインしています。

0002_Trac.png