2021年1月9日土曜日

VyOSバージョンアップ手順

OSSのネットワークアプライアンスである「VyOS」は、バージョン1.3以降は、Rolling releaseによる提供となっており、最新のコードでビルドされたISOイメージが毎日作成され、ダウンロードすることができる。

VyOSは、リリースされたISOイメージを用いて簡単にバージョンアップすることができる。インターネットへの接続可否によって、手順は2パターンに分けることができる。

  1. インターネットに接続できる場合は、直接ISOイメージのURLを指定してバージョンアップ
  2. インターネットに接続できない場合は、ISOイメージをVyOSにアップロードしてバージョンアップ

上記2パターンのVyOSのバージョンアップ手順を以下に記載する。

環境

  • VyOS (バージョンアップ前) : 1.3-rolling-202005031216
  • VyOS (バージョンアップ後) : 1.3-rolling-202012311144

① 直接ISOイメージのURLを指定してバージョンアップ

1. VyOSのISOイメージのURLを確認

VyOSのISOイメージは、以下URLからダウンロードできる。

最新のISOイメージは、vyos-rolling-latest.isoとなる。日付を指定したい場合は、vyos-1.3-rolling-YYYYMMDDhhmm-amd64.isoというファイル名となっているので、任意の日付のファイルのURLを確認しておく。

# 最新版URL
https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso

# 日付指定した場合のURL
https://downloads.vyos.io/rolling/current/amd64/vyos-1.3-rolling-202012311144-amd64.iso

2. バージョンアップ前確認

バージョンアップ前に、現在のVyOSのバージョンを確認しておく。

$ show version
Version:          VyOS 1.3-rolling-202005031216
Release Train:    equuleus
~(以下略)~

バージョンアップ作業では再起動が必須となるため、VyOSをVRRPで冗長化している場合は、必ずBACKUPとなっていることを確認してから作業を進めること。もし、MASTERになっている場合は、Priorityを一時的に小さく設定してBACKUPに変更したのち作業を実施する。

$ show vrrp
Name      Interface      VRID  State    Last Transition
--------  -----------  ------  -------  -----------------
vrrpgrp1  eth0             10  MASTER   5d23h20m3s
vrrpgrp2  eth1             10  MASTER   5d23h20m3s

# configure
# set high-availability vrrp group vrrpgrp1 priority 90
# set high-availability vrrp group vrrpgrp2 priority 90
# commit
# save
# exit

$ show vrrp
Name      Interface      VRID  State    Last Transition
--------  -----------  ------  -------  -----------------
vrrpgrp1  eth0             10  BACKUP   13s
vrrpgrp2  eth1             10  BACKUP   13s

バージョンアップ前後での設定値比較のため、設定コマンドリストをバックアップしておく。

$ set terminal length 0
$ show configuration commands

以上でバージョンアップ前の準備は整った。

3. バージョンアップ

バージョンアップ前に保持しているイメージを確認する。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202005031216 (default boot)

先ほど確認したISOイメージのURLを指定して、VyOSのイメージを追加する。対話式でいくつか確認事項が表示される (★箇所) が、すべてデフォルトで問題ないため空白のままエンターを押して進める。

$ add system image https://downloads.vyos.io/rolling/current/amd64/vyos-1.3-rolling-202012311144-amd64.iso
Trying to fetch ISO file from https://downloads.vyos.io/rolling/current/amd64/vyos-1.3-rolling-202012311144-amd64.iso
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  350M  100  350M    0     0  1742k      0  0:03:25  0:03:25 --:--:-- 2041k
ISO download succeeded.
Checking for digital signature file...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404 Not Found
Unable to fetch digital signature file.
Do you want to continue without signature check? (yes/no) [yes] ★空白のままエンター
Checking MD5 checksums of files on the ISO image...OK.
Done!
What would you like to name this image? [1.3-rolling-202012311144]: ★空白のままエンター
OK.  This image will be named: 1.3-rolling-202012311144
Installing "1.3-rolling-202012311144" image.
Copying new release files...
Would you like to save the current configuration
directory and config file? (Yes/No) [Yes]: ★空白のままエンター
Copying current configuration...
Would you like to save the SSH host keys from your
current configuration? (Yes/No) [Yes]: ★空白のままエンター
Copying SSH keys...
Running post-install script...
Setting up grub configuration...
Done.

再度、保持しているイメージを確認する。新しいバージョンのイメージが追加され、かつdefault bootと記載がされていれば問題ない。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202012311144 (default boot)
   2: 1.3-rolling-202005031216

4. 再起動

新しいバージョンのイメージにてVyOSを起動させるため、再起動を行う。

$ reboot
Are you sure you want to reboot this system? [y/N] y ★yを入力

5. バージョンアップ後確認

再起動後に、VyOSのバージョンを確認する。特に問題なければ、新しいバージョンで表示がされるはずだ。

$ show version
Version:          VyOS 1.3-rolling-202012311144
Release Train:    equuleus
~(以下略)~

バージョンアップ後の設定コマンドリストを取得し、Diffツールを用いて設定に差異がないことを確認する。

$ set terminal length 0
$ show configuration commands

6. 不要なISOイメージを削除

最後に登録されているVyOSの旧イメージを削除する。

$ delete system image 1.3-rolling-202005031216
Are you sure you want to delete the
"1.3-rolling-202005031216" image? (Yes/No) [No]: yes ★yesを入力
Deleting the "1.3-rolling-202005031216" image...
Done

削除後に、VyOSのイメージが最新バージョンのみになっていることを確認する。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202012311144 (default boot) (running image)

以上で、インターネットを経由した場合のVyOSのバージョンアップ作業は完了となる。

② ISOイメージをVyOSにアップロードしてバージョンアップ

1. VyOSのISOイメージをダウンロード

VyOSのISOイメージは、以下URLからダウンロードできる。最新のISOイメージは、vyos-rolling-latest.isoとなる。日付を指定したい場合は、vyos-1.3-rolling-YYYYMMDDhhmm-amd64.isoというファイル名となっているので、任意の日付のファイルをダウンロードする。

2. VyOSの/tmpにISOイメージをアップロード

ダウンロードしたISOイメージをISOイメージのままVyOSにアップロードする。VyOSはSSHで接続できるので、SFTPを使ってアップロードする。

今回はTera Termの「ファイル」→「SSH SCP…」を使って、/tmpにISOイメージをアップロードした。

アップロード後、ISOイメージが存在することを確認しておく。

$ ls -l /tmp
total 358416
-rw-r--r-- 1 root vyattacfg     10930 Dec  6 12:58 config.boot.3358
drwx------ 3 root root             60 Dec  6 12:58 systemd-private-335a704032554d4fb9138006c2c091b6-haveged.service-h3EkPg
drwx------ 3 root root             60 Dec  6 12:58 systemd-private-335a704032554d4fb9138006c2c091b6-ntp.service-RXj5lG
drwx------ 2 root root             40 Dec  6 12:58 vmware-root_828-2990678620
-rw-r--r-- 1 vyos users     367001600 Jan  1 10:52 vyos-1.3-rolling-202012311144-amd64.iso ★
-rw-rw-r-- 1 root vyattacfg         2 Dec  6 12:58 vyos-config-status

3. バージョンアップ前確認

バージョンアップ前に、現在のVyOSのバージョンを確認しておく。

$ show version
Version:          VyOS 1.3-rolling-202005031216
Release Train:    equuleus
~(以下略)~

バージョンアップ作業では再起動が必須となるため、VyOSをVRRPで冗長化している場合は、必ずBACKUPとなっていることを確認してから作業を進めること。もし、MASTERになっている場合は、Priorityを一時的に小さく設定してBACKUPに変更したのち作業を実施する。

$ show vrrp
Name      Interface      VRID  State    Last Transition
--------  -----------  ------  -------  -----------------
vrrpgrp1  eth0             10  MASTER   5d23h20m3s
vrrpgrp2  eth1             10  MASTER   5d23h20m3s

# configure
# set high-availability vrrp group vrrpgrp1 priority 90
# set high-availability vrrp group vrrpgrp2 priority 90
# commit
# save
# exit

$ show vrrp
Name      Interface      VRID  State    Last Transition
--------  -----------  ------  -------  -----------------
vrrpgrp1  eth0             10  BACKUP   13s
vrrpgrp2  eth1             10  BACKUP   13s

バージョンアップ前後での設定値比較のため、設定コマンドリストをバックアップしておく。

$ set terminal length 0
$ show configuration commands

以上でバージョンアップ前の準備は整った。

4. バージョンアップ

バージョンアップ前に保持しているイメージを確認する。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202005031216 (default boot)

先ほどアップロードしたISOイメージのフルパスを指定して、VyOSのイメージを追加する。対話式でいくつか確認事項が表示される (★箇所) が、すべてデフォルトで問題ないため空白のままエンターを押して進める。

$ add system image /tmp/vyos-1.3-rolling-202012311144-amd64.iso
Checking MD5 checksums of files on the ISO image...OK.
Done!
What would you like to name this image? [1.3-rolling-202012311144]: ★空白のままエンター
OK.  This image will be named: 1.3-rolling-202012311144
Installing "1.3-rolling-202012311144" image.
Copying new release files...
Would you like to save the current configuration
directory and config file? (Yes/No) [Yes]: ★空白のままエンター
Copying current configuration...
Would you like to save the SSH host keys from your
current configuration? (Yes/No) [Yes]: ★空白のままエンター
Copying SSH keys...
Running post-install script...
Setting up grub configuration...
Done.

再度、保持しているイメージを確認する。新しいバージョンのイメージが追加され、かつdefault bootと記載がされていれば問題ない。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202012311144 (default boot)
   2: 1.3-rolling-202005031216

5. 再起動

新しいバージョンのイメージにてVyOSを起動させるため、再起動を行う。

$ reboot
Are you sure you want to reboot this system? [y/N] y ★yを入力

6. バージョンアップ後確認

再起動後に、VyOSのバージョンを確認する。特に問題なければ、新しいバージョンで表示がされるはずだ。

$ show version
Version:          VyOS 1.3-rolling-202012311144
Release Train:    equuleus
~(以下略)~

バージョンアップ後の設定コマンドリストを取得し、Diffツールを用いて設定に差異がないことを確認する。

$ set terminal length 0
$ show configuration commands

7. 不要なISOイメージを削除

最後にファイルのクリーニングを行う。先ほど/tmpにアップロードしてISOイメージを削除する。

$ rm /tmp/vyos-1.3-rolling-202012311144-amd64.iso
$ ls -l /tmp
total 4
drwx------ 3 root root      60 Jan  1 16:17 systemd-private-cfd87e485d334522829573e58529d7e4-haveged.service-HzBlOU
drwx------ 3 root root      60 Jan  1 16:17 systemd-private-cfd87e485d334522829573e58529d7e4-ntp.service-ZdcxTv
drwx------ 2 root root      40 Jan  1 16:17 vmware-root_770-2990678653
-rw-rw-r-- 1 root vyattacfg  2 Jan  1 16:17 vyos-config-status

登録されているVyOSの旧イメージを削除する。

$ delete system image 1.3-rolling-202005031216
Are you sure you want to delete the
"1.3-rolling-202005031216" image? (Yes/No) [No]: yes ★yesを入力
Deleting the "1.3-rolling-202005031216" image...
Done

削除後に、VyOSのイメージが最新バージョンのみになっていることを確認する。

$ show system image
The system currently has the following image(s) installed:

   1: 1.3-rolling-202012311144 (default boot) (running image)

以上で、インターネットを経由しない場合のVyOSのバージョンアップ作業は完了となる。

参考

0 件のコメント:

コメントを投稿

人気の投稿