先日、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