クラウドで動的IPアドレスでもドメインとの紐づけを自動的に行う

スポンサーリンク

先日、GCPにe2-microのインスタンスを作成しました。
https://minokamo.tokyo/2021/10/11/4002/
今日は、Linuxのインスタンスの外部IPがまだ動的で、OSを停止して起動すると外部IPが変更されるので対処します。GCPで静的IPアドレスを予約せずOS自体にドメインとの紐づけをするツールをインストールして対処します。
無料でドメインを取得できるDynu、NO-IPでも、それらのツールはありましたが、お名前ドットコムに対応したツールを見つけたのでそれを使用させてもらうことにします。

https://github.com/T-H-Un/onamae_ddns
https://www.thun-techblog.com/index.php/blog/onamae-ddns-linux/

まずはGitHubのコードからリンクを取得して、下記のコマンドを入力します。

sudo git clone https://github.com/T-H-Un/onamae_ddns.git

OSはRed Hat Enterprise Linux8で初期状態なのでGITがないようです。インストールして再度コマンドを入力します。

sudo dnf install git

今度はうまくいったので設定ファイルを確認します。

sudo vi onamae_ddns/ddns.cpp

お名前ドットコムにログインする時の会員IDとパスワードを自分のものに変更します。設定したいドメイン名とホスト名も入力して上書き保存します。


次に関連ファイルがあるディレクトリに移動してMAKEを実行します。アプリをソースコードからインストールする時に使用するコマンドです。

cd onamae_ddns
sudo make

makeもなかったのでインストールします。

sudo dnf install make

再びMAKEコマンドを入力すると、今度はGCCが無いらしいのでインストールします。

sudo dnf install gcc

GCCのインストール後にmakeコマンドを入力します。
エラーが発生しました。

gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
make: *** [Makefile:10: ddns.o] Error 1

色々調べたらG++がないとこのようなエラーが出ることがわかったのでインストールします。

sudo dnf install g++

エラーが発生してG++がインストールできません。

No match for argument: g++
Error: Unable to find a match: g++

そしてまた調べる作業になり、次の事がわかりました。
Development Toolsというものをインストールすればよいと判明しました。

sudo dnf groupinstall "Development Tools"

このツールのインストールには多少時間がかかりました。再度makeコマンドを入力すると、今度はうまくいきました。
次に、最後の行程としてmakeにinstallオプションを付けて実際のインストールを行います。

sudo make install

ここまででインストール作業は完了しました。実行する前に、いったんお名前ドットコムで適当なIPアドレスで記述しておきます。この時、ホスト名は先ほど記述したものと同じものを入力します。
そのあとに、ツールを実行するコマンドを入力します。

onamae_ddns

正常に反映されたかどうかをお名前ドットコムで確認します。IPアドレスがGCPの外部IPになっていたので成功です。


動作確認ができたので、スケジュールを追加します。60分に一度ツールを動作する例です。

crontab -e
記述内容
*/60 * * * * /usr/local/bin/onamae_ddns

最後にスケジュールを確認しておきます。

crontab -l
タイトルとURLをコピーしました