プロジェクト

全般

プロフィール

20220930 gitbucket » 履歴 » バージョン 1

健二 酒井, 2022/09/30 22:42

1 1 健二 酒井
# 20220930 gitbucket
2 1 健二 酒井
3 1 健二 酒井
## 概要
4 1 健二 酒井
5 1 健二 酒井
etckeepeの中身を見やすくするためにgitbucketを立てた話。
6 1 健二 酒井
7 1 健二 酒井
### 動機・背景
8 1 健二 酒井
9 1 健二 酒井
etckeeperでサーバの設定情報を一応は履歴も含めて保存しているが履歴や中身をちょっと読みたいときにコンソールはちょっと不便(不慣れの間違いかもしれないが)。
10 1 健二 酒井
gitリポジトリなのでそれを管理するツール、例えばgithubやbitbucket、を使えばちょっとはマシになるかと思うが、自分のサーバー設定を他人に渡すのが気持ち悪い。
11 1 健二 酒井
機能やセキュリティはどう考えてもgithubのほうが上だが趣味でやる上で「気持ち悪い」は譲れない点。
12 1 健二 酒井
13 1 健二 酒井
ということで自分で上記のツールを運用すれば解決するはず。ちなみにサーバは非力なのでgitlabは選択肢にない。
14 1 健二 酒井
15 1 健二 酒井
### やりたい事
16 1 健二 酒井
17 1 健二 酒井
ということでやりたいことをまとめると以下になるのかな。
18 1 健二 酒井
19 1 健二 酒井
1. サーバーの設定情報・履歴を見やすくする。
20 1 健二 酒井
1. gitbucketを建てる。URLは既存のWebサーバと統合。
21 1 健二 酒井
1. gitbucketにetckeeperが管理しているリポジトリを追加。自動で追随できるようにする
22 1 健二 酒井
1. gitbucketへはsshでpushする。パスワード入力なんて自動化せん。
23 1 健二 酒井
24 1 健二 酒井
データベースも統合したいとかいろいろあるけどいったんパス。とりあえず動かす。
25 1 健二 酒井
26 1 健二 酒井
### 作業概容
27 1 健二 酒井
28 1 健二 酒井
1. gitbucketの導入と基本的な設定
29 1 健二 酒井
1. etckeeper管理のリポジトリを自動でgitbucketにpushする設定
30 1 健二 酒井
1. sshdのインスタンスを二つ用意(思い込み。いらなかった)
31 1 健二 酒井
32 1 健二 酒井
### gitbucketの導入と基本的な設定
33 1 健二 酒井
34 1 健二 酒井
まぁ公式サイト見ながら実施。gitbucketはjetty内蔵しているので単独で動かせるソフトウェアだけど、tomcatの勉強もかねて。管理者ユーザーのパスワード設定ミ→再インストールするも戻らないとかで焦った。`/usr/share/tomcat/`配下に発見。そういや`/usr/share`ってよく知らんディレクトリだ。
35 1 健二 酒井
その他いくつか詰まったところメモ:
36 1 健二 酒井
37 1 健二 酒井
- 初期ユーザーのID:PASSはroot:root
38 1 健二 酒井
    + きっちり無効化
39 1 健二 酒井
- データベースは`/usr/share/tomcat/`配下に設置された
40 1 健二 酒井
- warファイルは`/var/lib/tomcat/`配下
41 1 健二 酒井
- tomcatはloocalhostをlistenしてユーザーとのやり取りリバースプロキシ。なのでCookieのドメイン書き換えとか必要。しないとログインできない。
42 1 健二 酒井
    + ポートフォワードで一時しのぎはできるけど
43 1 健二 酒井
- 8080は大人気ポートなのであらかじめ考えておくと吉
44 1 健二 酒井
- gitbucketはそのままだと日本語化できない。非エンジニア層含めて社内利用するにはそのままだとキツいかもなー。
45 1 健二 酒井
- そのままだとgitbucketに表示されるリポジトリURLのドメイン部分がlocalhostになる。gitbucketのbaseURLを変えること。
46 1 健二 酒井
47 1 健二 酒井
### etckeeper管理のリポジトリを自動でgitbucketにpushする設定
48 1 健二 酒井
49 1 健二 酒井
etckeeper管理のgitリポジトリにremoteブランチ追加とかはなんか嫌な感じなので一旦適当なディレクトリ配下にリポジトリをclone。そこからgitbucketにpushする形に。なんかもっときれいにできるかもしれんが簡単だし似たような経験もあったし。etckeeperからのcloneとgitbucketへのpushはcronで設定。想定漏れてたのは以下のこと:
50 1 健二 酒井
51 1 健二 酒井
- sshでpushできるようにしないとpush時にパスワード入力を求められてcronからのpushが面倒になる
52 1 健二 酒井
- etckeeper管理下のリポジトリは当然rootユーザー用のパーミッションなのでrootユーザでpushまでしたい。gitbucket側にサーバを表現するユーザーを作成して解決(?)
53 1 健二 酒井
54 1 健二 酒井
### sshdのインスタンスを二つ用意
55 1 健二 酒井
56 1 健二 酒井
これは単純に勘違いしてやった作業。想定外が起こるとこういうこと始めるから怖い。gitbucketでsshでのやりとりするにあたり専用のインスタンスを用意しなければいかんかと思って作業実施。以前OpenSSHの本で「こんなことができる」ということは見てたけどやっててみたのは初。ざっくりとやったのは
57 1 健二 酒井
58 1 健二 酒井
- systemdのunitファイル(serviceファイル)の追加
59 1 健二 酒井
- sshdのconfigファイルの追加
60 1 健二 酒井
61 1 健二 酒井
あたい、これもWebで見つけた情報。詳細は参考のURL。よくわかる内容だったけど`/usr/lib`配下にunitファイルを新規作成は気持ち悪い。/etc/systemd/system`にunitファイル作成。
62 1 健二 酒井
63 1 健二 酒井
### 増えた知識と疑問
64 1 健二 酒井
65 1 健二 酒井
- 知識
66 1 健二 酒井
    + /usr/lib、/usr/local、/optの使い分け
67 1 健二 酒井
    + sshdの複数インスタンス
68 1 健二 酒井
    + tomcatでのwarのデプロイ
69 1 健二 酒井
    + gitbucketいろいろ
70 1 健二 酒井
    + ssh-keygenは.sshディレクトリを作ってくれる。
71 1 健二 酒井
- 疑問
72 1 健二 酒井
    + /usr/share ディレクトリの役割
73 1 健二 酒井
74 1 健二 酒井
## 参考
75 1 健二 酒井
76 1 健二 酒井
- sshdの複数インスタンス https://access.redhat.com/ja/solutions/3019711
77 1 健二 酒井
- gitbucketへのssh設定 https://seeku.hateblo.jp/entry/2016/12/10/102618
78 1 健二 酒井
     + SSHの設定が増えていたので内容確認 https://takezoe.hatenablog.com/entry/2021/12/11/161125
79 1 健二 酒井
- ssh-keygen https://atmarkit.itmedia.co.jp/ait/articles/1908/02/news015.html
80 1 健二 酒井
- gitbucket公式 https://github.com/gitbucket/gitbucket