ヤマムギ

growing hard days.

*

名前解決してセッションマネージャが使えるようにVyOSのhost_name.pyを編集しました

      2021/07/17

発生したエラー

セッションマネージャからこんなエラーが出力されました。

原因

EC2 VyOSで/etc/resolv.confを設定しましたで名前解決できるようにしました。
SSMエージェントをインストール時だけでいいと思ってたのですが、よくよく考えるとssm.ap-northeast-1.amazonaws.comに名前解決しないとならないんでした。

調査

どうやら起動時や再起動時にhost_name.pyというのが動いているようです。

/usr/libexec/vyos/conf_mode/host_name.py
これですね。

このコード見てたら、resolv.conf.dhclient-new-*ってファイルもあるみたいで、こちらには自動でnameserverが適切に設定されている。
でも、これじゃ名前解決できていない。

どうもこのあたりが怪しい。
vyos.configを見に行ってみる。
vyos.configが見つからなかった。

個人検証用だし、ってことで強硬策です。

動的にやれそうなことをやってみた

233行目をこうしました。

resolv.conf.dhclient-new-eth0には設定があるので、それを書いてしまおうと。

手動で実行してみる。
vyos.configがないと、エラー。
ぐぬぬ。
起動時のプロセスでvyos.config作ってるんだろうなあ多分。
だから、単体では動かないと。

思い切って再起動したらSSHも接続できなくなったので、余計悪化した。

静的に対応した

やりたいことは、OS起動時のhost_name.pyでresolv.confに固定でnameserverが設定できて、セッションマネージャが使えたらそれでいいのだ。
ということで、以下の編集をして、再起動してみました。

OKでした。
セッションマネージャにも接続できました。

動的にやる方法を考えてみた

メタデータにDNSサーバーのIPないかなと思ったのですが、ざっと見た感じ見つけられませんでした。
以下のメタデータでVPCのCIDRはとれるので、プラス2のIPアドレスで動的に設定できそうですが。(06:7b:8e:28:2f:11は環境によって異なります)
http://169.254.169.254/latest/meta-data/network/interfaces/macs/06:7b:8e:28:2f:11/vpc-ipv4-cidr-block

06:7b:8e:28:2f:11はメタデータのmacから取得できる。
ap-northeast-1.compute.internalは、メタデータのplacementから設定できますね。

ふむ。

requestsモジュールをインストールしてrequests.getで取得すればいいか。

今はVPN検証にSSHではなくセッションマネージャを使いたいだけなので、今回はもう東京リージョン、192.168.0.0/xCIDRのVPC限定ということで。
今書いている本の校了が終わって、この需要があるなら実装します。

SSMエージェント再起動も

で、AMIを作って起動したら、セッションマネージャに接続できない。
??
SSMエージェントが起動した後にnameserverを設定してもどうやら遅いのか。
というわけで、host_name.pyの最後にSSMエージェント再起動を追加しました。

これでどうだ。
成功しました。
ひとまずこれでやりたいことはOK。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「AWS認定資格試験テキスト AWS認定AIプラクティショナー」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , , ,

  関連記事

ヤマムギ vol.10 (AWS)EC2モニタリングハンズオン 手順

このブログは2020/5/6に開催しました、「ヤマムギ vol.10 (AWS) …

AWSクイックスタートのActive Directory Domain Services on AWS

オンプレミスに見立てたActive Directory環境がほしかったので、AW …

EC2 Dedicated Hosts(専有ホスト)を起動

クォータ引き上げ 新規で作成したアカウントではDedicated Hostsがソ …

AWS Client VPNのクライアント接続ハンドラを試してみました

AWS Client VPNを設定しましたで証明書とかせっかく作ったので、いろい …

Amazon Quantum Ledger Database(QLDB)でサンプル台帳の作成と検証

Quantum Ledger Database(QLDB)を触ったことなかったの …

AWS複数アカウントのリソースをLambda(Python)から一括操作したくて

AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …

AWS Code Commitをプライベートリポジトリとして使う

GitHubでもいいんですが、アクセスキーとかパスワードとかコンフィグ系で書いて …

S3をトリガーにしたときのLambdaのリソースベースポリシー

LambdaのトリガーでS3を設定したとき、自動的にLambdaのリソースベース …

AWS Wavelengthゾーンを有効にする

画面上で確認しておきたかったので有効にしておきました。 AWS Waveleng …

ADOT用のAWS マネージド型 Lambda レイヤーを使ってトレースを送信する

2025年11月にAWS X-Ray SDK / Daemon のサポート終了と …