SSH接続で使用するauthorized_keysファイルは、鍵認証でログインするマシンに配布する必要があります。作成済みのauthorized_keyファイルをAnsibleで配布できるようにGitで管理します。管理を確実にするために、システム管理用に構築したGitLabにも登録しておきます。
記事の目次
以下の記事で作成したauthorized_keysファイルを管理します。
authorized_keysファイルをAnsibleのコントロールノードに配置します。
$ ls -l total 4 -rw-r--r--. 1 usradmin usradmin 104 Dec 8 07:40 authorized_keys
ローカルのGitリポジトリを構成する!
Git環境の初期設定を行っていない場合は、最初にユーザの情報の設定を行います。
$ git config --global user.email "lab4ict@gmail.com" $ git config --global user.name "Lab4ict Webmaster"
ローカルのGitリポジトリを作成し、hostsファイルを登録します。
$ git init $ git add authorized_keys $ git commit -m "First Version" 1 file changed, 1 insertion(+) create mode 100644 authorized_keys $ git ls-files authorized_keys
GitLab上にプロジェクトを作成する!
GitLab上にプロジェクトを作成します。今回は、Configuration Managementグループ配下に、「authorized_keys」というプロジェクトを作成しました。「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/authorized_keys.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), 325 bytes | 325.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 To http://gitlab.lab4ict.local/configuration-management/authorized_keys.git + d319b38...7ec22d8 main -> main (forced update) Branch 'main' set up to track remote branch 'main' from 'origin'.
おわりに
authorized_keysは基本的に全マシンに配布するファイルなので、Gitで管理し、Ansibleで配布可能な管理方法にしてみました。