自宅の開発環境でVyOSを使っています。
VyOSはversion1.3以降からrolling releaseで提供されており、最新版が日々アップデートされています。以下のサイトからダウンロードする事ができます。
rolling/current/amd64 • downloads.vyos.io
アップグレードは簡単な手順で実施できます。
vyosにログインして以下を実行します。
add system image https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso
<Enter><Enter><Enter><Enter>
reboot
<y>
delete system image ? # 古いイメージを選択して削除する
<Yes>
最新ISOのダウンロードと適用します。
vyos@vyos02:~$ add system image https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso
Trying to fetch ISO file from https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso...
The file is 453.000 MiB.
Downloading...
[##############################################################################################################################] 100%
Download complete.
Done.
Checking for digital signature file...
Failed to download https://downloads.vyos.io/rolling/current/amd64/vyos-rolling-latest.iso.asc.
urllib.error.HTTPError: HTTP Error 404: Not Found # *1
Do you want to continue without signature check? (yes/no) [yes] # Enterを入力
Checking SHA256 checksums of files on the ISO image... OK.
Done!
What would you like to name this image? [1.4-rolling-202107212017]: # Enterを入力
OK. This image will be named: 1.4-rolling-202107212017
Installing "1.4-rolling-202107212017" image.
Copying new release files...
Would you like to save the current configuration
directory and config file? (Yes/No) [Yes]: # Enterを入力
Copying current configuration...
Would you like to save the SSH host keys from your
current configuration? (Yes/No) [Yes]: # Enterを入力
Copying SSH keys...
Running post-install script...
Setting up grub configuration...
Done.
*1: 証明書ファイルがないため404エラーになってますが、isoはダウンロード完了しているので無視して問題ありません。
DLが終わったらrebootします。
vyos@vyos02:~$ reboot
Are you sure you want to reboot this system? [y/N] y
Connection to 192.168.100.3 closed by remote host.
Connection to 192.168.100.3 closed.
起動したら再びログインします。
この時点でバージョンは上がっているので、不要になった旧バージョンのイメージは削除します。
vyos@vyos02:~$ delete system image
Possible completions:
<Enter> Execute the current command
1.4-rolling-202107202017
Name of image image to delete
1.4-rolling-202107212017
vyos@vyos02:~$ delete system image 1.4-rolling-202107202017
Are you sure you want to delete the
"1.4-rolling-202107202017" image? (Yes/No) [No]: Yes # Yesを入力
Deleting the "1.4-rolling-202107202017" image...
Done
以上で完了です。ものすごく簡単でした。
ansibleのvyos_command
モジュールを使って自動化したかったのですが、promptとanswerがどうもうまく動いてくれませんでした。
以下の reboot を実行する playbook すら動きませんでした。
- name: run command that requires answering a prompt
vyos_command:
commands:
- command: reboot
prompt: Are you sure you want to reboot this system? [y/N]
answer: y