Skip to content

Instantly share code, notes, and snippets.

@taukajp
Last active January 4, 2019 11:51
Show Gist options
  • Save taukajp/d6bbaf2d303dda69fab758f283dd0767 to your computer and use it in GitHub Desktop.
Save taukajp/d6bbaf2d303dda69fab758f283dd0767 to your computer and use it in GitHub Desktop.
ラズパイにGitbucketを導入する

ラズパイにGitBucketを導入する

ラズパイのOSはRaspbian StretchJava1.8.0がインストール済み。

tomcatユーザの作成

HOMEディレクトリを作成するため、-mオプションをつける。

$ sudo useradd -m tomcat
$ cat /etc/passwd | grep tomcat
tomcat:x:1001:1001::/home/tomcat:/bin/bash

Tomcat9のインストール

Tomcat9のバイナリをダウンロードする。

$ cd
$ wget http://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz

/usr/localに配置する。

$ tar zxvf apache-tomcat-9.0.14.tar.gz
$ sudo mv apache-tomcat-9.0.14 /usr/local

ディレクトリの所有者をtomcatに変更する。

$ cd /user/local
$ sudo chown -R tomcat:tomcat apache-tomcat-9.0.14

シンボリックリンクを貼る。

$ sudo ln -s apache-tomcat-9.0.14 apache-tomcat

Tomcatの起動設定

Tomcatのサービスをsystemdで管理するため、/etc/systemd/system/tomcat.serviceを作成する。

$ cd /etc/systemd/system
$ sudo touch tomcat.service

tomcat.serviceは以下の内容を記述する。

[Unit]
Description=Apache Tomcat 9
After=syslog.target network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/user/local/apache-tomcat/tomcat.pid
RemainAfterExit=yes

ExecStart=/usr/local/apache-tomcat/bin/startup.sh
ExecStop=/usr/local/apache-tomcat/bin/shutdown.sh
ExecReStart=/usr/local/apache-tomcat/bin/shutdown.sh;/usr/local/apache-tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

tomcat.serviceの権限を変更する。

$ sudo chmod 755 tomcat.service

Tomcatを起動する。

$ sudo systemctl start tomcat

ステータスを確認する。

$ sudo systemctl status tomcat
● tomcat.service - Apache Tomcat 9
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2019-01-04 18:54:24 JST; 27s ago
  Process: 2184 ExecStop=/usr/local/apache-tomcat/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 2210 ExecStart=/usr/local/apache-tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 2210 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tomcat.service
           └─2224 /usr/bin/java -Djava.util.logging.config.file=/usr/local/apache-tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls

 1月 04 18:54:23 raspberrypi systemd[1]: Starting Apache Tomcat 9...
 1月 04 18:54:24 raspberrypi startup.sh[2210]: Using CATALINA_BASE:   /usr/local/apache-tomcat
 1月 04 18:54:24 raspberrypi startup.sh[2210]: Using CATALINA_HOME:   /usr/local/apache-tomcat
 1月 04 18:54:24 raspberrypi startup.sh[2210]: Using CATALINA_TMPDIR: /usr/local/apache-tomcat/temp
 1月 04 18:54:24 raspberrypi startup.sh[2210]: Using JRE_HOME:        /usr
 1月 04 18:54:24 raspberrypi startup.sh[2210]: Using CLASSPATH:       /usr/local/apache-tomcat/bin/bootstrap.jar:/usr/local/apache-tomcat/bin/tomcat-juli.jar
 1月 04 18:54:24 raspberrypi systemd[1]: Started Apache Tomcat 9.

自動起動にする。

$ sudo systemctl enable tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service → /etc/systemd/system/tomcat.service.

自動起動を確認する。

$ sudo systemctl list-unit-files --type=service | grep tomcat
tomcat.service                         enabled

Tomcatのアクセス設定

/usr/local/apache-tomcat/webapps/manager/META-INF/context.xmlを以下の内容で修正する。

allowの値に192\.168\.1\.\d+を追加することで、Tomcat Manager192.168.1.0/24からアクセスできるようになる。

<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.1\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

/usr/local/apache-tomcat/conf/tomcat-users.xmlを以下の内容で修正する。

Tomcat Manageradmin/managerでアクセスする場合。

...
  <role rolename="manager-gui"/>
  <user username="admin" password="manager" roles="manager-gui"/>
</tomcat-users>

GitBucketのインストール

GitBucketのwarをダウンロードする。

$ cd
$ wget https://github.com/gitbucket/gitbucket/releases/download/4.30.1/gitbucket.war

Tomcatのアプリケーションディレクトリにgitbucket.warを配備する。

$ sudo cp gitbucket.war /usr/local/apache-tomcat/webapps/

配備すると/home/tomat.gitbucketディレクトリが作成される。

ローカルPCのブラウザから以下URLにアクセスし、Gitbucketの画面を確認する。

http://<ラズパイのIP>:8080/gitbucket

GitBucketプラグインのインストール

Network PluginEmoji Pluginを導入する。

/home/tomat/.gitbucket/pluginsディレクトリにgitbucket-emoji-plugin-gitbucket_4.28.0-4.5.1.jargitbucket-network-plugin_2.12-1.6.1.jarを配置する。

$ sudo su - tomcat
$ cd .gitbucket/plugins
$ wget https://plugins.gitbucket-community.org/releases/gitbucket-emoji-plugin/gitbucket-emoji-plugin-gitbucket_4.30.1-4.5.1.jar
$ wget https://github.com/mrkm4ntr/gitbucket-network-plugin/releases/download/1.6.1/gitbucket-network-plugin_2.12-1.6.1.jar
$ exit

Tomcatを再起動する。

$ sudo systemctl restart tomcat

PostgreSQLのインストール

PostgreSQLをインストールする。

$ sudo apt-get install postgresql

postgresユーザのパスワードを設定する。

$ sudo passwd postgres

postgresユーザでログインする。

$ su - postgres

gitbucketユーザを作成する。-Sはスーパーユーザ権限を与えない。-Dはデータベース作成権限を与えない。Rはユーザ作成権限を与えない。-Pはパスワードを設定する。

$ createuser -S -D -R -P gitbucket
新しいロールのためのパスワード:
もう一度入力してください:

ユーザを確認する。

$ psql
postgres=# \du
                                                      ロール一覧
 ロール名  |                                              属性                                              | メンバー 
-----------+------------------------------------------------------------------------------------------------+----------
 gitbucket |                                                                                                | {}
 postgres  | スーパーユーザ, ロールを作成できる, DBを作成できる, レプリケーション, 行単位セキュリティを無視 | {}

postgres=# \q

gitbucketデータベースを作成する。所有者はgitbucketユーザ。

$ createdb --owner=gitbucket gitbucket

データベースを確認。

$ psql -l
                                          データベース一覧
   名前    |  所有者   | エンコーディング |  照合順序   | Ctype(変換演算子) |      アクセス権       
-----------+-----------+------------------+-------------+-------------------+-----------------------
 gitbucket | gitbucket | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 postgres  | postgres  | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | 
 template0 | postgres  | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |           |                  |             |                   | postgres=CTc/postgres
 template1 | postgres  | UTF8             | ja_JP.UTF-8 | ja_JP.UTF-8       | =c/postgres          +
           |           |                  |             |                   | postgres=CTc/postgres
(4 行)

/etc/postgresql/9.6/main/pg_hba.confに以下を追記する。192.168.1.0/24のネットワークからアクセスできる。

host    all             all             192.168.1.0/24          md5

pg_hba.confの場所は以下コマンドでわかる。

$ psql -U postgres -P format=unaligned -t -c 'SHOW hba_file;';
/etc/postgresql/9.6/main/pg_hba.conf

/etc/postgresql/9.6/main/postgresql.confを以下の内容で編集する。外部からのアクセスを許可する。

listen_addresses = '*'

サービスを再起動する

$ sudo systemctl restart postgresql

Gitbucketの使用データベースをPostgreSQLに変更

/home/tomcat/.gitbucket/database.confを以下の内容で編集する。

db {
  url = "jdbc:postgresql://localhost/gitbucket"
  user = "gitbucket"
  password = "gitbucket"
}

Tomcatを再起動する。

$ sudo systemctl restart tomcat
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment