ChatGPT-4oに相談しながらGitHub登録と接続してみた話【Mac + Docker環境構築のつづき】

はじめに:AIは“作業の壁”を超える道具になる

前回の記事では、Mac上にDocker + Rocky Linux 9の環境を構築し、ChatGPTに相談しながらAnsibleまで使えるようにしました。

今回はその続きとして、コードのバージョン管理と公開のためにGitHubの登録・接続をしてみた体験をまとめます。技術的な壁にぶつかったとき、ChatGPTがどう支えてくれたかも含めてお伝えします。


ChatGPTへの相談内容

今回ChatGPTには、こんな感じで最初に相談しました:

Mac OS上のDockerで起動したRocky9環境から、GitHubに接続したいです。ユーザー作成やSSH接続も含めて、手順を教えてください。

少しシンプルすぎるかと思ったのですが、この一文で十分でした。 ChatGPTは、目的に応じて必要なステップ(アカウント作成・SSH接続・初期Push)を丁寧に提案してくれました。


ステップ1:GitHubアカウントを新規作成

GitHub公式サイト(https://github.com)にアクセスし、ChatGPTに聞きながら以下の流れで登録しました。

  • ユーザー名とメールアドレスを入力(ChatGPTに名前の候補も相談)
  • プライバシー設定や通知の選び方も確認
  • 個人用途なので「Freeプラン」を選択

ChatGPTが提案してくれたリポジトリ名:runsuru

▶ GitHubプロフィールの整備もChatGPTに相談。自己紹介文やアイコンの選び方もサポートしてくれました。

出来かがったリポジトリがこちらです。
https://github.com/runsuru/runsurunet?tab=readme-ov-file


ステップ2:Macの環境からGitHubと接続

まず、前回の記事(こちら)で行った、Docker環境の構築をおさらいします。

以下のコマンドで、Rocky Linux 9のイメージをダウンロード・起動しました:

docker pull rockylinux:9
docker run -it --name rocky9_ansible rockylinux:9 /bin/bash

ChatGPTに相談しながら、どのイメージを使うべきか、どんなコンテナ名にすると管理しやすいかなどを決めていきました。

一度作成したコンテナは、次回以降このコマンドで再接続できます:

docker start -ai rocky9_ansible

このようにして立ち上げたRocky Linuxのコンテナ内で、GitやAnsibleの環境構築、そしてGitHubとの接続作業を行っていきます。

ChatGPTに相談しながら、どのDockerイメージを選ぶべきか、またコンテナにどんな名前を付けると管理しやすいかなども確認しながら進めました。

立ち上げたRocky Linuxのコンテナ内で、GitやAnsibleの環境構築、そしてGitHubとの接続作業を行っていきます。

2-0. 一般ユーザー(runsuru)の作成とsudo権限の付与

最初はrootユーザーでログインしていますが、セキュリティや操作のしやすさを考えて、一般ユーザー(ここでは runsuru)を作成しておきます。

adduser runsuru
passwd runsuru

※ passwd <username>でエラーが出る場合は、以下のコマンドも必要です。

dnf install -y passwd

続いて、runsuru にsudo権限を与えます:

usermod -aG wheel runsuru

一度ログアウトして、以下のコマンドで runsuru ユーザーに切り替えましょう:

su - runsuru

この状態で、以降の作業を進めていきます。


💡補足:Rocky Linuxの最小構成では sudo がインストールされていない場合があります。その際は、以下の手順でrootユーザーが sudo をインストールし、sudoers設定を確認してください。

sudoのインストール(rootユーザーで)

dnf install sudo

sudoersの確認と編集

次に、visudo コマンドで /etc/sudoers を編集し、以下の行が有効になっていることを確認します:

%wheel  ALL=(ALL)       ALL

もしパスワードなしで sudo を実行したい場合は、代わりに以下の設定を使うこともできます:

%wheel  ALL=(ALL)       NOPASSWD: ALL

先頭に # が付いている場合は削除して保存(viで編集)。この設定により、wheel グループに属する runsuru ユーザーが sudo を使えるようになります。

その後、再び su - runsuru でログインし直し、sudoが有効になっているか確認してください。


2-1. Gitのインストール確認(Rocky Linux側)

まずはGitがインストールされていない場合に備えて、以下のコマンドでインストールを確認・実行します:

sudo dnf install git


2-2. SSHキーの生成とGitHubへの登録

次に、GitHubと安全に通信するためにSSHキーを作成し、それをGitHubに登録します。

ssh-keygen -t ed25519 -C "your_email@example.com"

表示される質問に従ってキーを保存し、必要に応じてパスフレーズを設定します。

作成された公開鍵を確認します:

cat ~/.ssh/id_ed25519.pub

この内容をコピーして、GitHubの SSHキー設定ページ に貼り付けて登録します。


2-3. GitHubへの接続確認

以下のコマンドで接続をテストします:

ssh -T git@github.com

成功すると、以下のようなメッセージが表示されます(一例):

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Hi runsuru! You've successfully authenticated, but GitHub does not provide shell access.

この表示が出れば、GitHubとのSSH接続は無事成功です。


2-4. リポジトリの初期化とclone

今回はPushまでは行わず、GitHub上に作成したリポジトリをクローンするところまでとしました。

まずはクローンしたいディレクトリで以下のコマンドを実行します:

git clone git@github.com:yourname/runsurunet.git

この git@github.com:yourname/runsurunet.git というアドレスは、GitHub上の対象リポジトリのページ(緑の「Code」ボタン)から「SSH」形式を選択してコピーできます。

リポジトリのURL例:
https://github.com/runsuru/runsurunet

成功すると以下のメッセージが出ます。

[runsuru@6f9523f4ad9f ~]$ git clone git@github.com:runsuru/runsurunet.git
Cloning into 'runsurunet'...
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (3/3), done.
Receiving objects: 100% (6/6), done.
remote: Total 6 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)

接続が成功していれば、リポジトリの内容がローカルに取得されます。

lsコマンドを叩くと、rusurunetリポジトリが表示されます。

[runsuru@6f9523f4ad9f ~]$ ls
runsurunet

💡Pushなどの操作は、今後Ansible設定をまとめていく際に紹介予定です。


実際に試してみて感じたこと

最初にChatGPTへ投げた質問は:

Mac OS上のDockerで起動したRocky9環境から、GitHubに接続したいです。ユーザー作成やSSH接続も含めて、手順を教えてください。

でした。

この一言だけで、かなりの部分を網羅した手順を出してくれました。
でも実際には、すべてが一発でうまくいったわけではありません。

特に以下のような箇所では、エラーが発生して進めなくなりました。
そのときはエラーメッセージをそのままChatGPTに貼り付けて、「これ、どうすればいい?」と聞くだけで、すぐに正確な修正案を出してくれました。

エラーになったポイント例:

    • sudo コマンドが見つからない(最小構成だった)

    • sudo を使えるユーザー設定が /etc/sudoers になかった

こうした“つまずきポイント”こそ、ChatGPTの真価が発揮されるところだと感じました。

最初の手順では、以下の通りでそのままやるとエラーになる。

実行するとエラーが出るのでそのままエラー内容を貼り付ける(雑に)

そうすると、また回答が返ってきます。

今後もこの方法で、環境構築や自動化を進めていく予定です。

Follow me!

コメントを残す