AWS上でVyOSが起動しなくなった場合の対応方法

vyos_400x400

こんにちわ。大阪の市田です。
久しぶりのVyOSネタです。今回はトラブルシュートについてご紹介します。

はじめに

VyOSで設定を間違えたまま再起動してしまうと、起動できなくなる場合があります。
そんな時は従来通り、対象インスタンスのRootVolumeを他のインスタンスにアタッチして、アタッチしたインスタンスから設定を修正します。

作業の流れ

  • 問題のインスタンスを停止して、RootVolumeをデタッチ
  • 作業用のVyOSインスタンスを別途作成して、問題のインスタンスのRootVolumeをアタッチ
  • 作業用インスタンスを起動して、ファイルシステムをマウント
  • 対象ファイルを修正して、作業用インスタンスを停止
  • 作業用インスタンスから問題インスタンスのボリュームをデタッチ
  • 元のインスタンスに修正済みボリュームをアタッチして、起動

手順

まずは対象インスタンスを停止して、RootVolumeをデタッチします。 元に戻す時のことを考えて、識別できる名前を付けておくか、ボリュームIDを控えておくようにします。

01-volid-name

デタッチできたら、作業用のVyOSにアタッチして、作業用インスタンスを起動します。
作業用インスタンスのOSはVyOSにします。VyOSのベースはDebianですが、Debianのインスタンスではアタッチできません。

02-attache

アタッチ内容はデフォルトのままです。

03-atattch

作業用VyOSにログインしてマウントします。今回は/mnt/dataにマウントすることにします。

# mkdir /mnt/data
# mount /dev/xvdf1 /mnt/data

マウントできれば、後は修正したいファイルをviなどのエディタで直接編集します。

VyOSの場合、起動時に読み込まれるコンフィグは/boot/boot.configになります。
その為、作業用インスタンス上では/mnt/data/boot/[VyOS-Version]/live-rw/config/config.bootが対象になります。

/boot以下のVyOS-Versionのディレクトリは、追加しているVyOSイメージの数だけ存在します。起動時にデフォルトで読み込まれるバージョンのディレクトリが作業対象になります。 デフォルトのバージョン確認は、正常に起動している時にshow versionコマンドで把握しておくようにしましょう。

config.bootの中身は下記の様になっているので、必要な設定を修正して保存します。
もちろんその他の設定ファイルを修正したい場合は、そのファイルを修正して下さい。live-rwディレクトリ以下にetcoptといったディレクトリが配置されています。

interfaces {
    ethernet eth0 {
        address dhcp
        duplex auto
        hw-id XX:XX:XX:XX:XX:XX
        smp_affinity auto
        speed auto
    }
    loopback lo {
    }
}

(以下略)

修正が終われば、作業用インスタンスを停止して、元のインスタンスにアタッチし直して起動しましょう。

最後に

VyOSの場合でも方法は他のOSの場合と同じです。ただし、config.bootの内容はVyOS独自の内容になります。 他のVyOSインスタンスなどで、各コマンドの結果がどのような内容で出力されるのか確認しておくとよいかと思います。

以上です。