ChatGPTをRHELの運用に使えるか? いろいろためしてみた。

Red Hatの森若です。 今回は個人でChatGPT Proを契約したので、ChatGPTをRHELの運用に使えるか試してみます。

趣旨とご注意

趣旨: 乗るしかない このビッグウェーブに…… ということで流行りもので遊んでみるという話です。検索を汚染しないようにChatGPTの出力は画像で貼りつけます。

ご注意: ChatGPT(に限らず現状の大規模言語モデルと呼ばれるもの)は「それらしいテキストを生成する」という技術で、厳密な論理や一貫性のある主張、 発言が正しいことの裏づけなどはできません。使う場合には特徴を踏まえて使いましょう。

ログの意味を教えてもらう

使っているとログがでたもののよくわからないこと、ちょいちょいありますね。 ログをそのまま検索して→それらしいblogや掲示板の書き込みをみつけて→記述内容を読んで〜 みたいなことがよくあります。 これをChatGPTでやってみましょう。

プロンプト: このようなログが出ました。原因と対策を教えてください。 (ログをコピペ)

寸評: それらしい出力がでてきました。原因は100点をあげられます。対策は70〜80点くらいでしょうか。既にクラッシュして再起動しているはずですからgnome-shellのrestartは意味がありません。gnome-shellをXで利用しているときにはこの操作が可能ですが、Waylandで動作しているときにはこの操作ができません。とはいえこのログしか情報がなく、システムがどのように構成されているかわからないので最初にぱっと思いつく内容としては十分価値があると言ってよさそうです。

もうちょっとややこしい例をためしてみます。ややこしいのでGPT-4を使います。長いので回答は途中まででカットです。

寸評: なかなかやりますね! 意味と原因のパートは90点です。「依存」という言葉の使い方がややあいまいです。実際には前後関係の矛盾ですが、やはり実際の設定やこのログ発生時の操作がわからない状態ですから十分許容範囲です。 対策は60〜70点くらいでしょうか。/usr/lib/systemd/system/ 以下のファイルを修正するように指示していますが、これはパッケージ更新等で書き変わるので危険です。さらにこのログに登場していない他のunitからも、B.targetやC.targetへの依存関係があるかもしれませんがその事は考慮されていません。とはいえこのログから「ぱっと思いつく内容」としては十分価値があるものです。

やりたいことの実現方法を聞いてみる

プロンプト: RHEL 8でtelnetサーバを構築したい

寸評: telnetは推奨ではなくsshを使うべきという前書きは良いですね。その後に続く手順は(実際には全く使えませんが)30点くらいでしょうか。RHEL 8にはtelnet-serverパッケージが同梱されていますので、EPELを有効にする必要はありません。その他にもsystemdで置き替えられたxinetdを利用しようとしたりしていました。telnet-serverに出番があったRHEL 4〜5くらいの資料の影響が強いのかもしれません。

次は意地悪ですがサポート対象外の構成をあえて聞いてみます。

プロンプト: Windowsのファイル共有をRHELでCIFSマウントして、それをNFSサーバとしてエクスポートしようと思います。考えられる問題と回避策をおしえてください。問題がなければ設定方法をおしえてください。

(中略)

寸評: 「一般的には推奨されません」と言えるのはえらいです。80点。最後に複数プロトコルに対応したNASを勧めているのもよいです。「問題がなければ〜」と言っているので手順は出さないでもよかったかもしれません。

チェックリストのたたき台を作ってみる

プロンプト: RHELでWebサーバを構築して問題なく動作しています。セキュリティを強化するために日常的な運用の中で配慮するべき点と行ったほうがよい作業のチェックリストの案を表形式で作ってください。

(回答は長いので途中で切れています。「続きをおねがいします」のように言うと続きを答えてくれます。何回か繰り返すと同じ項目がでたりするので適当なところで切り上げます。)

寸評: ふんわりとした質問にはふんわりとした回答が帰ってきます。とはいえ何もない時のたたき台としてはいいんじゃないでしょうか。個別の項目について検討すると実際に対応するための知識が不足していることや「問題なく」と思っていたけど実は不明瞭だった点に気付くきっかけになりそうです。

プロンプト: RHEL8でsshサーバーを構築しようとしています。インターネットには接続されておらず主にシステム間の連携のために利用します。セキュリティとトラブル予防のため、構築時にチェックするべき項目をおしえてください。

(中略)

(以下略)

寸評: よく言及されるチェック項目は表示してくれる印象です。点をつけるなら80点くらいでしょうか。それまで設定項目やコマンドを出していたのにSELinuxの話になった途端に雑になりました。そういうblog記事とかたくさんインプットとして学習したんでしょうね。しょうがないね(涙)。

ドキュメントの検索をさせてみる

プロンプト: RHEL の ssh設定についてドキュメントのURLをおしえてください

寸評: 「いかにもそれらしいテキストを生成する」という点ではいい仕事をしているのですが、実際にはこのURLは存在しません。404でエラーとなりますので0点です。ドキュメントの検索は検索エンジンに頼むほうがよさそうです。

ナレッジベースを特定バージョンむけに書き換える

テキストの処理をやってもらうタスクを試していきます。

複数バージョンにまたがっていてややこしくなってしまったナレッジベース記事を、特定バージョンむけのシンプルなものに書き換えられるでしょうか。

プロンプト: 以下はRed Hatのナレッジベース記事です。RHELの複数バージョンについて記載がありますが、RHEL 8についての記事に書き換えてください (ナレッジ記事コピペ)

(中略)

(以下略)

寸評: 頼んでいないのに和訳してくれたのはさておき、途中まではいい調子でした。ただし主な目的のバージョン毎の分離に失敗して、RHEL 6での設定方法(/etc/init.d/function)が混ざってしまいました。コピー&ペースト時に箇条書きの情報が失われるため、どこからどこまでがRHEL8むけの情報か判別が困難なことが原因でしょう。

RHELアップグレードのための稟議書を書いてもらう

プロンプト: RHEL 7は2024年6月に通常のサポートが終了してソフトウェアのメンテナンスが終了し、ELSを購入した場合にだけごく一部のパッケージがメンテナンスされます。現在利用中のRHEL 7をRHEL 8へ更改するための予算申請のための稟議書の下書きを作成してください。

寸評: RHELはサブスクリプションでバージョン依存しないから既存のものを使いまわせる(同時に稼動するシステム数だけ買えばOK)という点をのぞけばかなりいい出力だと思います。システムの移行に必要な作業もケースバイケースですが、さすがというか定型文に近いものを生成させると優秀で120点あげたいです。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。