GitBucket 本家https://github.com/takezoe/gitbucket
既にatlassianのSourceTreeをスタンドアローンで使っているのだが、中央たるリポジトリを持つことにした。

GitBucket/SourceTree

Tomcat環境

正直、愚生はJava/Tomcat関係の経験は皆無。まったくわからない
GitBucketはサーブレット形式でも稼動可能なので、ここではWebコンテナにTomcatを採用して動かしてみた.

webコンテナで動かす場合、GitBucket は「Servlet 3.0」対応が求められる.
「Servlet 3.0」対応な Tomcat はhttp://tomcat.apache.org/whichversion.htmlで確認可能で、どうやら「7.0.x」でいいみたい.
*後方互換性が明確ではないけど、本家は「Tomcat8」「Tomcat9」を明示しているから、これらでも行けるのかも

っでyumでインストール可能なTomcatのバージョンは「7.0.69」なのでyumでインストール.

[root@c ~]# yum install tomcat

次に、/var/lib/tomcat/webappsに本題の GitBucket を入れる

[root@c ~]# cd /var/lib/tomcat/webapps/
[root@c webapps]# wget https://github.com/gitbucket/gitbucket/releases/download/4.14.1/gitbucket.war
[root@c webapps]# ls -lh gitbucket.war
-rw-r--r-- 1 root root 48M  7月  5 00:25 gitbucket.war
[root@c webapps]#

httpと連携

httpとWebコンテナTomcatを連携させたいので、Tomcatの8080は閉じて、AJPでhttpとTomcatを連携させる設定を行う。

[root@c ~]# vi /etc/tomcat/server.xml
(略
<!-- 無効化
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
-->
(略
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!-- httpとTomcatの連携部分 -->
(略
[root@c ~]#

httpがTomcatと連携するには下記モジュールが必要で、これらはhttpdパッケージに含まれている

  • mod_proxy.so
  • mod_proxy_ajp.so

次にhttpdの設定

[root@c ~]# vi /etc/httpd/conf.d/gitbucket.conf
<Location /gitbucket/>
  ProxyPass ajp://localhost:8009/gitbucket/
  Require ip 192.168.0
</Location>
[root@c ~]#

ホストの /gitbucket への要求が来たら、localhostの8009ポートの/gitbucket へ渡す形である。
そしてアクセス制限もここでは設定しています

起動

httpdとtomcatを稼働させる

[root@c ~]# systemctl enable tomcat
 
[root@c ~]# systemctl restart httpd
[root@c ~]# systemctl restart tomcat

そして、gitbucketにアクセスると、画面が生じる
2017y07m13d_002618698.png

ログイン

画面右上の「Sign in」を押下して、
2017y07m13d_002725256.png
表示された認証画面にて、初期ユーザ「root」、パスワード「root」でログインします。
2017y07m13d_002850302.png

ログインに成功したら、まずはパスワードを変更しましょう。
右上のマーク(?)をクリックして、ブルダウンから「Acount setting」を選ぶ
2017y07m13d_003038298.png
すると、プロファイル画面に変更となり、「Password」欄に新規のパスワードを入力して、画面下部の「Save」リンクを押下します。
2017y07m13d_003328819.png
これでパスワードが変更される。

LDAP

LDAPサーバから参照可能なようで、ここではsambaからユーザ情報を借用する。
「System Settings」から「Authentication」欄にて LDAP チェックを有効にして、下記の様に有効にします。

項目設定値備考
LDAP Hostc.sybyl.localsambaサイト
LDAP Port389samba/LDAP機能のport番号
Bind DNcn=administrator,cn=users,dc=sybyl,dc=localLDAPに接続するユーザ名
Bind PasswordBind DNのパスワード
Base DNdc=sybyl,dc=local
User name attributecn
Additional filter condition&(objectCategory=Person)(objectClass=user)(|(gidNumber=2000)(gidNumber=2001))gidが2000と2001
Full name attributedisplayName
Mail address attributemail

2015y10m15d_105635258.png
*注意 この設定内容は ~tomcat/.gitbucket/gitbucket.conf にも記載されるが、Bind Passwordがそのまま書かれる。。。

[root@c ~]# cat ~tomcat/.gitbucket/gitbucket.conf
#Thu Oct 15 11:21:31 JST 2015
gravatar=false
ldap.bind_password=xxxxxxxxxxxxxxxxxxxxxxx
notification=false
ldap.baseDN=dc\=sybyl,dc\=local
is_create_repository_option_public=true
ldap.additional_filter_condition=&(objectCategory\=Person)(objectClass\=user)(|(gidNumber\=2000)(gidNumber\=2001))
ldap_authentication=true
ssh=false
ldap.username_attribute=cn
allow_account_registration=false
ldap.host=c.sybyl.local
ldap.bindDN=cn\=administrator,cn\=users,dc\=sybyl,dc\=local
allow_anonymous_access=true
ldap.mail_attribute=mail
ldap.fullname_attribute=displayName
ldap.port=389
[root@c ~]#

まあtomcatユーザさえ見えるように調整とか必要なのかも。

実際にどのユーザがログイン可能なのかは、ldapsearchを使って確認できます.
ldapsearchに「ldap.additional_filter_condition」の値を組み込んで

[root@c ~]# ldapsearch -h c.sybyl.local -D "CN=administrator,CN=Users,DC=SYBYL,dc=local" \
            -b "dc=sybyl,dc=local" \
          '(&(objectCategory=Person)(objectClass=user)(|(gidNumber=2000)(gidNumber=2001)))' -W

*ldap.additional_filter_condition」の値をさらに括弧で括ります。あと"\"を除きます

留意 コマンドラインでfilterの確認ができても、ldap.mail_attributeの「mail」とかSAMBA(ldap)内の該当エントリーが存在しないとログインできないみたい.

Jetty

WebコンテナにTomcatの代わりにJettyを選んでみたJetty

Servlet Spec

めもとして

Servlet SpecJSPApache TomcatJetty
4.02.4?9.0.x-
3.12.38.5.x, 8.0.x9.3、9.2
3.02.27.0.x8
2.52.16.0.x7

トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2017-08-29 (火) 12:19:28 (105d)