HostsファイルをGitで管理する!

システム全体で使用するHostsファイルを管理します。HostsファイルはAnsibleサーバ上でGitで管理します。管理を確実にするために、システム管理用に構築したGitLabにも登録しておきます。

Ansibleのサーバ上でHostsファイルを管理する!

Hostsファイルは、Ansibleで配布することを想定しています。Ansibleを稼働させるサーバ上で管理するのが便利だと思います。Hostsファイルを管理するディレクトリを作成し、Hostsファイルをコピーします。

$ mkdir hosts
$ cp /etc/hosts .
ls -l
total 4
-rw-r--r--. 1 usradmin usradmin 3646 Dec 11 07:46 hosts

ローカルのGitリポジトリを構成する!

Git環境の初期設定を行っていない場合は、最初にユーザの情報の設定を行います。

$ git config --global user.email "lab4ict@gmail.com"
$ git config --global user.name "Lab4ict Webmaster"

ローカルのGitリポジトリを作成し、hostsファイルを登録します。

$ git init
$ git add hosts
$ git commit -m "First Version"
$ git ls-files
hosts

GitLab上にプロジェクトを作成する!

GitLab上にプロジェクトを作成します。今回は、Configuration Managementグループ配下に、hostsというプロジェクトを作成しました。「Settings」→「Repository」→「Protected branches」の項目で、リストされている「main」ブランチの「Allowed to force push」の項目を有効にして「Unproted」ボタンをクリックして、pushを許可しておきます。

GitLab上のプロジェクトにHostsファイルを登録する!

GitLabのRepository画面に表示されているコマンドで、Hostsファイルを登録します。

$ git remote add origin http://gitlab.lab4ict.local/configuration-management/hosts.git
$ git branch -M main
$ git push -uf origin main
Username for 'http://gitlab.lab4ict.local': root
Password for 'http://root@gitlab.lab4ict.local': 
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 1.19 KiB | 1.19 MiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To http://gitlab.lab4ict.local/configuration-management/hosts.git
 + 00ebaaa...0b97456 main -> main (forced update)
Branch 'main' set up to track remote branch 'main' from 'origin'.

おわりに

Hostsファイルの管理は、システム管理において重要なので、Gitで管理し、Ansibleで配布可能な管理方法にしてみました。