GitBucketの基本的な設定
動作環境
- OS : Ubuntu 20.04
GitBucketの基本的な設定
自分好みの設定
GitBucketを使用していくにあたって、以下の設定をしておこうと思いました。 - GitBucketのホームディレクトリは、自分で指定した場所にしたい。 - 指定したディレクトリ丸ごとバックアップをとりたかったので。 - Port番号は変更したい - 8080はやっぱり、何かで使うかもしれないので開けておきたい。 - アップロードファイルの制限を緩和したい - ファイル管理するのに、デフォルトの3Mはちょっと心もとないなと。10Mぐらいかな。
ということで設定ファイルの更新です。
[Unit] Description=The GitBucket Server [Service] User=develop ExecStart=/usr/bin/java -jar [gitbucket.warを置いてあるフルパス]/gitbucket.war \ --gitbucket.home=[フルパスで任意の場所]] \ --port=60001 \ --max_file_size=10485760 \ [Install] WantedBy=multi-user.target
- ポイントは、gitbucket.war を起動するとのオプションを追加するだけ。(簡単)
- --gitbucket.homeは、フルパス指定じゃないとダメみたい。
- オプションに関するマニュアルはここから
GitBucketを自動起動させてみる。
動作環境
- OS : Ubuntu 20.04
GitBucketを自動起動させてみる。
- 当然だけど、GitBucketを導入しただけでは、 OSの起動時に勝手に起動してくれているわけではないです。
- これから、OSの起動時に勝手に起動してくれるように設定していきます。
自動起動させるまでの手順
- GitBucketが起動していないことを確認。
$ ps -ef | grep gitbucket | grep -v grep $
- 何も表示されなければ、GitBucketは起動していないということ。
さぁ、これから自動起動の設定を始めます。
サービス定義ファイルを作成。
- まずはローカルで作成するので、ログインユーザで作成できるところに gitbucket.service を作成します。
- 作成した gitbucket.service は、以下の内容で作成します。
[Unit] Description=The GitBucket Server [Service] User=develop ExecStart=/usr/bin/java -jar -jar [gitbucket.warを置いてあるフルパス]/gitbucket.war [Install] WantedBy=multi-user.target
- Unit -> Description : サービスの説明を記入
- Service -> User : 実行ユーザを指定(今回は、通常使用しているユーザアカウントを使用しています。)
- Service -> ExecStart : 起動時のコマンドを指定。(すべてフルパスで)
- Install -> WantedBy : ランレベル3で実行するので。
サービス定義ファイルをコピーします。
$ sudo cp -p gitbucket.service /lib/systemd/system/. $ sudo chown root:root /lib/systemd/system/gitbucket.service
- GitbucketをOS起動時に実行させるようにします。
$ sudo systemctl enable gitbucket.service Created symlink /etc/systemd/system/multi-user.target.wants/gitbucket.service → /lib/systemd/system/gitbucket.service.
ちょっとつまづいたところ
自動起動させようとしたら、起動していなかった件
$ journalctl --boot -u gitbucket.service
を用いてログを確認したところ、以下のようなエラーが発生していました。
$ journalctl --boot -u gitbucket.service -- Logs begin at Fri 2022-01-28 17:18:39 JST, end at Thu 2022-02-03 14:24:16 JST. -- 2月 03 14:23:13 ubuntu systemd[1]: Started The GitBucket Server. 2月 03 14:23:14 ubuntu java[618]: エラー: メイン・クラス.home.develop.work.gitbucket.warが見つからなかったかロードできませんでした 2月 03 14:23:14 ubuntu systemd[1]: gitbucket.service: Main process exited, code=exited, status=1/FAILURE 2月 03 14:23:14 ubuntu systemd[1]: gitbucket.service: Failed with result 'exit-code'.
- なんでかなぁと思っていたら、どうやら起動コマンドが誤っていたみたいでした。
(誤)ExecStart=/usr/bin/java /home/develop/work/02_Service/01_GitBucket/gitbucket.war (正)ExecStart=/usr/bin/java -jar /home/develop/work/02_Service/01_GitBucket/gitbucket.war
- -jar オプションをつけ忘れていたみたいです。Javaのことはあまりわからないので・・・
GitBucketの導入
動作環境
- OS : Ubuntu 20.04
GitBucketの導入
GitBucketの導入背景
- 無償で利用できるGitHubなどの利用も考えましたが、一般公開するほどのプログラムでもないので^^;
- 個人的に使っているプログラムの履歴管理をしたかったので。
- せっかくローカルサーバを立てたので活用したかった。
- GitBucketは、以前から使っていて導入のしやすいところや、安定性にも問題なかったので、個人的に気に入っているOSSであるので。
GitBucketのインストールを始める。
- Java8をインストールします。
sudo apt-get install openjdk-8-jdk
GitBucketを動作させるには、Java8が必要です。
GitBucketをダウンロードします。
wget -v -O gitbucket.war https://github.com/gitbucket/gitbucket/releases/download/4.37.2/gitbucket.war
インストール方法の詳細が必要であれば、ここを参照くださいね。
gitbucket.war を 任意の場所にコピーします。
コピー先は、どこでもでいいです。ダウンロードした場所でも特に問題ないですが、几帳面な方は、どこか整理されたディレクトリに移しておいた方が良いですね。
GitBucket.war を実行してみます。
# gitbucket.warがある場所に移動して、以下のコマンドを実行して下さい。 $ java -jar ./gitbucket.war
- 実行すると、標準出力にログが出力されます。
Ctrl + C で 止めることもできます。
「4.」が実行されている状態で、ブラウザから以下のアドレスに接続します。
http://[domain]:8080/
以下のような画面が表示されれば、ひとまずOKです。
必要最低限、動かすだけならすごく簡単でしょ ^^
- 8080ポートが取られてしまいますが、まぁ仕方ないと割り切って使います。
- ポートの変更が必要になったら、その時に真面目に考えます。
今後はぼちぼち
Apache2の自動起動の設定
動作環境
- OS : Ubuntu 20.04
Apache2の自動起動の設定
Ubuntuを再起動してみると
- 以前インストールした Apache2 が自動的に起動されるようになっていました。
- 特に設定したつもりはなかったのだけれど、
sudo apt install -y apache2
を実行したときに、勝手に登録されていたのかなぁと。 - では、ubuntu の機構でどのように登録されているのか気になったので、少しだけ掘り下げて確認してみました。
色々情報収集してわかったこと。
- Ubuntuでは、自動起動の設定は systemd でサービスが管理されているようです。
- systemd で管理されるサービスの定義ファイルは、 /etc/systemd/system/ ディレクトリに収録されているようです。
- apache2 においては、/etc/systemd/system/ 配下の multi-user.target.wants ディレクトリに、 apache2.service が存在していました。
$ pwd /etc/systemd/system/multi-user.target.wants $ $ $ ls -l apache2.service lrwxrwxrwx 1 root root 35 1月 31 15:04 apache2.service -> /lib/systemd/system/apache2.service
- ざっくり結論として、自動起動させるには以下の手順が必要そうです。
まだ分からないことがあったので補足
multi-user.target.wants ディレクトリって何者?
- Ubuntuが起動する状態において、ランレベルというものがある。
- Ubuntuでは、ランレベルに応じて、ターゲットが定められているようです。
- 例えば、multi-userであれば、ランレベル2,3,4に該当するようです。
$ ls -l /usr/lib/systemd/system/runlevel?.target lrwxrwxrwx 1 root root 15 1月 10 13:56 /usr/lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx 1 root root 13 1月 10 13:56 /usr/lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx 1 root root 16 1月 10 13:56 /usr/lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx 1 root root 13 1月 10 13:56 /usr/lib/systemd/system/runlevel6.target -> reboot.target
- ランレベルとターゲットについて、もう少し調べて整理してみたのが以下の表となります。
ランレベル | ターゲット | 説明 |
---|---|---|
0 | poweroff | システムが停止された状態 |
1 | rescue | セーフモードなどで起動された状態。 |
2, 3, 4 | multi-user | マルチユーザモード。CUIのみで起動するときはこの状態 |
5 | graphical | グラフィカルモード。GUI付きで起動するとこの状態 |
6 | reboot | 再起動をするときの状態 |
- なお、ランレベル4は未使用らしいです。
Apacheが起動するタイミング
Apache2のインストール(Ubuntu)
動作環境
- OS : Ubuntu 20.04
Apache2のインストールから起動までの手順
Apache2のインストール
sudo apt install -y apache2
- 端末によっては、ファイアウォールの設定が必要になりますので、気をつけて下さいね。
- ubuntuでは、apache2としてインストールしますが、CentOSなんかはhttpdでインストールするんですよね。
Apache2が起動しているか確認
$ sudo systemctl status apache2 [sudo] develop のパスワード: ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2022-01-31 15:04:19 JST; 2 days ago Docs: https://httpd.apache.org/docs/2.4/ Process: 1004645 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Main PID: 682294 (apache2) Tasks: 55 (limit: 2243) Memory: 4.7M CGroup: /system.slice/apache2.service ├─ 682294 /usr/sbin/apache2 -k start ├─1004649 /usr/sbin/apache2 -k start └─1004650 /usr/sbin/apache2 -k start 1月 31 15:04:19 ubuntu systemd[1]: Starting The Apache HTTP Server... 1月 31 15:04:19 ubuntu systemd[1]: Started The Apache HTTP Server. 2月 02 00:00:02 ubuntu systemd[1]: Reloading The Apache HTTP Server. 2月 02 00:00:02 ubuntu systemd[1]: Reloaded The Apache HTTP Server.
- 「Loaded: loaded」 や Active: active (running) と表示されているので、ちゃんと起動しているっぽいですね。
- 実は私は上記のコマンドはあまり使ってなくて。
- 昔からのクセで ps コマンドを使って、apacheプロセスが起動しているかどうかで判断していたりします。
- psコマンドで確認するときは、
$ ps -ef | grep apache2
で確認したりします。