忍者ブログ

ブランクがあるインフラエンジニアの備忘録

サーバ構築のメモ

Gitサーバー

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Gitサーバー

◇本稿の構成。
 DNSサーバーとクライアントマシンは過去の稿で作成したものを使用します。Gitサーバーは新規マシンをクローンなどで作成して準備してください。
〇DNSサーバー
・ホスト名:host1.stream.server
・アドレス:192.168.128.101/24
・DNS:192.168.128.101
・ゲートウェイ:192.168.128.1
〇Gitサーバー
・ホスト名:git1.stream.server
・アドレス:192.168.128.106/24
・DNS:192.168.128.101
・ゲートウェイ:192.168.128.1
〇クライアント(出来れば準備)
・ホスト名:client
・アドレス:192.168.128.110/24
・DNS:192.168.128.101
・ゲートウェイ:192.168.128.1
 もし、クライアントマシンを準備する余裕がない場合はDNSサーバーをクライアントマシン代わりに使用してください。
◇DNSサーバーの追加設定
 正引き、逆引きそれぞれのゾーンファイルにGitサーバーの情報を追加します。
・DNSサーバーの正引きゾーンファイルの設定追加。
[root@host1 ~]# vi /var/named/stream.server.zone
$TTL 86400
@       IN SOA  host1.stream.server. root.stream.server. (
           0       ; serial
           1D      ; refresh
           1H      ; retry
           1W      ; expire
           3H )    ; minimum
   IN      NS      host1.stream.server.
   IN      MX      10      mail1.stream.server.
   IN      MX      20      mail2.stream.server.
host1   IN      A       192.168.128.101
host2   IN      A       192.168.128.102
mail1   IN      A       192.168.128.101
mail2   IN      A       192.168.128.102
web1   IN      A       192.168.128.100
nginx1   IN      A       192.168.128.103
nginx2   IN      A       192.168.128.103
git1   IN      A       192.168.128.106  ←追記
・逆引きゾーンファイルの設定追加。
[root@host1 ~]# vi /var/named/128.168.192.in-addr.arpa.zone
$TTL 86400
@       IN SOA  host1.stream.server. root.stream.server. (
           0       ; serial
           1D      ; refresh
           1H      ; retry
           1W      ; expire
           3H )    ; minimum
   IN      NS      host1.stream.server.
   IN      A       255.255.255.0
101     IN      PTR     host1.stream.server.
102     IN      PTR     host2.stream.server.
101     IN      PTR     mail1.stream.server.
102     IN      PTR     mail2.stream.server.
100     IN      PTR     web1.stream.server.
103     IN      PTR     nginx1.stream.server
103     IN      PTR     nginx2.stream.server
106     IN      PTR     git1.stream.server.  ←追記
・書式が正しいかチェックを行います。
 チェックを行い、エラーやアンノウンが表示されない事を確認します。
[root@host1 ~]# named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone stream.server/IN: loaded serial 0
zone 128.168.192.in-addr.arpa/IN: loaded serial 0
・書式が正しいかチェックを行います。
 チェックを行い、エラーやアンノウンが表示されない事を確認します。
[root@host1 ~]# named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone stream.server/IN: loaded serial 0
zone 128.168.192.in-addr.arpa/IN: loaded serial 0
 特に問題が無ければDNSサーバーを再起動して設定を反映させます。
・DNSサービスーの再起動
[root@host1 ~]# systemctl restart named-chroot.service
[root@host1 ~]# systemctl status named-chroot.service
● named-chroot.service - Berkeley Internet Name Domain (DNS)
     Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; enabled; ven>
     Active: active (running) since Thu 2022-08-18 15:39:53 JST; 2s ago
(略)
◇Gitサーバー構築
・Gitのインストール
[root@git1 ~]# dnf install -y git
(省略)
インストール済み:
  git-2.31.1-2.el9.2.x86_64              git-core-2.31.1-2.el9.2.x86_64
  git-core-doc-2.31.1-2.el9.2.noarch     perl-Error-1:0.17029-7.el9.noarch
  perl-Git-2.31.1-2.el9.2.noarch         perl-TermReadKey-2.38-11.el9.x86_64
  perl-lib-0.65-479.el9.x86_64
完了しました!
・Gitユーザーの追加と設置用ディレクトリ及びユーザー設定
[root@git1 ~]# useradd -m gituser01
[root@git1 ~]# echo "gituser01" | passwd gituser01 --stdin
ユーザー gituser01 のパスワードを変更。
passwd: すべての認証トークンが正しく更新できました。
[root@git1 ~]# su - gituser01
[gituser01@git1 ~]$ mkdir ~/dir01
[gituser01@git1 ~]$ cd ~/dir01
[gituser01@git1 dir01]$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
(省略)
Initialized empty Git repository in /home/gituser01/dir01/.git/
[gituser01@git1 dir01]$ git config user.email "gituser01@mail2.stream.server"
[gituser01@git1 dir01]$ git config user.name "gituser01"
[gituser01@git1 dir01]$ ls -aFR
.:
./  ../  .git/
./.git:
./  ../  HEAD  branches/  config  description  hooks/  info/  objects/  refs/
(省略)
[gituser01@git1 dir01]$ cp -a /usr/share/doc/glib2 ~/dir01/
[gituser01@git1 dir01]$ ls /usr/share/doc/glib2
AUTHORS  NEWS  README
[gituser01@git1 dir01]$ pwd
/home/gituser01/dir01
[gituser01@git1 dir01]$ ls -aF
./  ../  .git/  glib2/
[gituser01@git1 dir01]$ git add *
[gituser01@git1 dir01]$ git commit -a -m "Commit of /home/gituser01/dir01"
[master (root-commit) 513cf68] Commit of /home/user01/dir01
 3 files changed, 13566 insertions(+)
 create mode 100644 glib2/AUTHORS
 create mode 100644 glib2/NEWS
 create mode 100644 glib2/README
[gituser01@git1 dir01]$ echo "Git test Stream9." >> ~/dir01/glib2/README
[gituser01@git1 dir01]$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        modified:   glib2/README
no changes added to commit (use "git add" and/or "git commit -a")
[gituser01@git1 dir01]$  git commit -a -m "README change by gituser01."
[master 2a4e40b] README change by user01.
 1 file changed, 1 insertion(+)
[gituser01@git1 dir01]$ git log --pretty=oneline --abbrev-commit
bfa7f17 (HEAD -> master) README change by gituser01.
af1fca7 Commit of /home/gituser01/dir01
[gituser01@git1 dir01]$ git diff bfa7f17 af1fca7
diff --git a/glib2/README b/glib2/README
index 0e085b4..96dc92f 100644
--- a/glib2/README
+++ b/glib2/README
@@ -1,2 +1 @@
 See README.md
-Git test Stream9.
[gituser01@git1 dir01]$ tail ~/dir01/glib2/README
See README.md
Git test Stream9.
・ファイル変更を過去の状態に戻す。
[gituser01@git1 dir01]$ git checkout af1fca7
Previous HEAD position was bfa7f17 README change by gituser01.
HEAD is now at af1fca7 Commit of /home/gituser01/dir01
 以下の様に「Git test Stream9.」が追加される前の状態に戻った事を確認します。
[gituser01@git1 dir01]$  tail ~/dir01/glib2/README
See README.md
 次は共有リポジトリサーバーを作成する為にrootユーザーに戻ります。
[gituser01@git1 dir01]$ exit
ログアウト
◇共有リポジトリサーバーの構築
 ファイル共有の為のグループ(sales01)とユーザー(gituser02,gituser03)及び共有用のディレクトリを作成します。
[root@git1 ~]# groupadd sales01
[root@git1 ~]# useradd -m gituser02
[root@git1 ~]# useradd -m gituser03
[root@git1 ~]# echo "gituser02" | passwd gituser02 --stdin
ユーザー gituser02 のパスワードを変更。
passwd: すべての認証トークンが正しく更新できました。
[root@git1 ~]# echo "gituser03" | passwd gituser03 --stdin
ユーザー gituser03 のパスワードを変更。
passwd: すべての認証トークンが正しく更新できました。
[root@sv ~]# chmod 755 /home/gituser02
[root@sv ~]# chmod 755 /home/gituser03
[root@git1 ~]# ls -ld /home/gituser02
drwxr-xr-x. 3 gituser02 gituser02 78  8月 18 16:27 /home/gituser02
[root@git1 ~]# ls -ld /home/gituser03
drwxr-xr-x. 3 gituser03 gituser03 78  8月 18 16:27 /home/gituser03
[root@git1 ~]# usermod -G sales01 gituser02
[root@git1 ~]# usermod -G sales01 gituser03
[root@git1 ~]# grep sales01 /etc/group
sales01:x:1002:gituser02,gituser03
[root@git1 ~]# su - gituser02
[gituser02@git1 ~]$ mkdir /home/gituser02/share01
[gituser02@git1 ~]$ chown gituser02.sales01 ./share01
[gituser02@git1 ~]$ ls -ld share01/
drwxr-xr-x. 2 gituser02 sales01 6  8月 18 16:31 share01/
[gituser02@git1 ~]$ cd ./share01/
[gituser02@git1 share01]$  git init --bare --shared
hint: Using 'master' as the name for the initial branch. This default branch name
(省略)
Initialized empty shared Git repository in /home/gituser02/share01/
[gituser02@git1 share01]$  ls -ld /home/gituser02/share01
drwxrwsr-x. 7 gituser02 sales01 119  8月 18 16:33 /home/gituser02/share01
 続いてクライアントマシンから操作を行います。
◇クライアントマシンの設定及び操作
・Gitのインストール
[root@client ~]# dnf install git
(省略)
インストール済み:
  git-2.31.1-2.el9.2.x86_64              git-core-2.31.1-2.el9.2.x86_64
  git-core-doc-2.31.1-2.el9.2.noarch     perl-Error-1:0.17029-7.el9.noarch
  perl-Git-2.31.1-2.el9.2.noarch         perl-TermReadKey-2.38-11.el9.x86_64
  perl-lib-0.65-479.el9.x86_64
完了しました!
・Gitユーザー及びGit用ディレクトリ作成
[root@client ~]# useradd -m gituser03
[root@client ~]# echo "gituser03" | passwd gituser03 --stdin
ユーザー gituser03 のパスワードを変更。
passwd: すべての認証トークンが正しく更新できました。
[root@client ~]# su - gituser03
[gituser03@client ~]$ mkdir dir02
[gituser03@client ~]$ cd dir02/
[gituser03@client dir02]$ git init
hint: Using 'master' as the name for the initial branch. This default branch name
(省略)
Initialized empty Git repository in /home/gituser03/dir02/.git/
[gituser03@client dir02]$ git config user.name "Sales"
[gituser03@client dir02]$ git config user.email gituser03@mail2.stream.server
[gituser03@client dir02]$ echo "Git Test Stream9 Server." > test01.txt
[gituser03@client dir02]$ git add test01.txt
[gituser03@client dir02]$ git commit test01.txt -m "Initial commit."
[master (root-commit) a6d64ae] Initial commit.
 1 file changed, 1 insertion(+)
 create mode 100644 test01.txt
[gituser03@client dir02]$ git remote add \
git_sv ssh://git1.stream.server/home/gituser02/share01
[gituser03@client dir02]$ git push git_sv master
The authenticity of host 'git1.stream.server (192.168.128.106)' can't be established.
ED25519 key fingerprint is SHA256:nTWSVDhS7kziPY2aGp+i04l6z2A+vmDp4N/IQoaTcJM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'git1.stream.server' (ED25519) to the list of known hosts.
gituser03@git1.stream.server's password: ←パスワード入力
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 243 bytes | 243.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://git1.stream.server/home/gituser02/share01
 * [new branch]      master -> master
[user03@cl dir02]$ exit
ログアウト
[root@client ~]# useradd -m gituser02
[root@client ~]# echo "gituser02" | passwd gituser02 --stdin
ユーザー gituser02 のパスワードを変更。
passwd: すべての認証トークンが正しく更新できました。
[root@client ~]# su - gituser02
[gituser02@client ~]$ git clone ssh://git1.stream.server/home/gituser02/share01
Cloning into 'share01'...
The authenticity of host 'git1.stream.server (192.168.128.106)' can't be established.
ED25519 key fingerprint is SHA256:nTWSVDhS7kziPY2aGp+i04l6z2A+vmDp4N/IQoaTcJM.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'git1.stream.server' (ED25519) to the list of known hosts.
gituser02@git1.stream.server's password:
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), 243 bytes | 243.00 KiB/s, done.
[gituser02@client ~]$  ls -ld ./share01/
drwxr-xr-x. 3 gituser02 gituser02 36  8月 18 17:03 ./share01/
[gituser02@client ~]$ cat ./share01/test01.txt
Git Test Stream9 Server.
[gituser02@client ~]$ cd ~/share01/
[gituser02@client share01]$ echo "Hello boy." >> test01.txt
[gituser02@client share01]$ cat test01.txt
Git Test Stream9 Server.
Hello boy.
[gituser02@client share01]$ git config --global user.email \ "gituser02@mail2.stream.server"
[gituser02@client share01]$ git config --global user.name "Sales"
[gituser02@client share01]$ git commit test01.txt -m "Update test gituser02."
[master 3855de5] Update test gituser02.
 1 file changed, 1 insertion(+)
[gituser02@client share01]$ git remote add git_sv \  ssh://git1.stream.server/home/gituser02/share01
[gituser02@client share01]$ git remote -v
git_sv  ssh://git1.stream.server/home/gituser02/share01 (fetch)
git_sv  ssh://git1.stream.server/home/gituser02/share01 (push)
origin  ssh://git1.stream.server/home/gituser02/share01 (fetch)
origin  ssh://git1.stream.server/home/gituser02/share01 (push)
[gituser02@client share01]$ git push git_sv master
gituser02@git1.stream.server's password: ←パスワード入力
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 289 bytes | 289.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://git1.stream.server/home/gituser02/share01
   a6d64ae..3855de5  master -> master
[gituser02@client share01]$ git log --pretty=oneline --abbrev-commit
3855de5 (HEAD -> master, git_sv/master) Update test gituser02.
a6d64ae (origin/master, origin/HEAD) Initial commit.
[gituser02@client share01]$ git log --pretty=oneline --abbrev-commit
3855de5 (HEAD -> master, git_sv/master) Update test gituser02.
a6d64ae (origin/master, origin/HEAD) Initial commit.
[gituser02@client share01]$ git diff 3855de5 a6d64ae
diff --git a/test01.txt b/test01.txt
index 7f8a6ea..84ea5dc 100644
--- a/test01.txt
+++ b/test01.txt
@@ -1,2 +1 @@
 Git Test Stream9 Server.
-Hello boy.   ←追加されている事を確認します。
 こちらも変更前の状態に戻すにはcheckoutコマンドを実行します。
[gituser02@client share01]$ git checkout a6d64ae
Previous HEAD position was 3855de5 Update test gituser02.
HEAD is now at a6d64ae Initial commit.
 ファイルを読み込み、「Hello boy.」の行が無く、変更前の状態に戻っている事を確認します。
[gituser02@client share01]$ cat ~/share01/test01.txt
Git Test Stream9 Server.
PR

コメント

プロフィール

HN:
のらくら
性別:
非公開
自己紹介:
介護と自身の手術でブランクが出来たインフラエンジニアの学習メモ。VirtualBOXで仮想サーバーを建て、GNS3でCiscoルーター&スイッチによるネットワークのエミュレーションもしています。GNS3ネットワーク内に仮想サーバーと連携させて、実際のネットワーク環境におけるサーバーをシミュレートする他、LinuC level3 300の対策もしています。

P R