急にSUSEのリポジトリサーバにアクセスできなくなってあたふたした話

BeeX Advent Calendar 2023 18日目 の記事です

# 初めに
SAP HANA データベースのバックアップを取得するため、Azure Backupの設定をしている際に、事前設定として登録スクリプトを実行しなければいけないのですが、そのスクリプトが正常終了せずエラーとなったため、色々調べてみました。

今回は、調査で分かったことを共有しようと思います。

# Azure環境情報
以下のような環境で今回は実施しました。
仮想マシンは、以下イメージから作成した後、カスタムイメージとしてお客様の要件に合った設定を入れて、構築しています。

<dl>
  <dt>イメージ（Marketplace）</dt>
  <dd>SUSE Enterprise Linux for SAP 15 SP4 +24x7 Support</dd>
  <dt>ネットワーク</dt>
  <dd>アウトバウンド通信のみカスタマイズして以下設定を追加</dd>
      <dd>・SUSEリポジトリサーバへの通信許可設定</dd>
      <dd>・サービスタグ（Azure Storage）の通信許可設定</dd>
      <dd>・サービスタグ（Microsoft Entra ID）の通信許可設定</dd>
      <dd>・サービスタグ（Azure Backup）の通信許可設定</dd>
      <dd>上記、4エントリー以外の通信は通信拒否設定</dd>
</dl>

# 実施した手順
Microsoftさんの以下手順を参考に実施しました。

https://learn.microsoft.com/ja-jp/azure/backup/tutorial-backup-sap-hana-db#what-the-pre-registration-script-does

# エラー内容
上記手順の実行タスク『Azure Backup HANA 事前登録スクリプトを実行します』にてエラーが発生。

    [INFO] Checking for PACKAGE 'unixODBC' >= VERSION Minimum: '2.3.4' Recommended: '2.3.6'.
    [INFO] Failed to determine VERSION: Not installed.
    [INFO] Updating package catalog.
    [PASS] Updated package catalog.
            Loading repository data...
            Warning: No repositories defined. Operating only with the installed resolvables. Nothing can be installed.
            Reading installed packages...
            'unixODBC' not found in package names. Trying capabilities.
            No provider of 'unixODBC' found.
    [FAIL] Failed to determine VERSION: Installation failed. Please add corresponding package repository for unixODBC to continue.

コマンドを実行すると、事前チェックにて「unixODBC」のバージョン確認が入り、バージョンが下回っていたり、インストールされていない場合はインストールしてくれる挙動になっていました。

今回は、パッケージがインストールされていなかったため、インストールする挙動になっていますが、SUSE リポジトリサーバへのアクセスができず失敗となっています。

/etc/hostsに記載されているsmtサーバのIPとアウトバウンド通信のIPアドレスもあっているのになぜ失敗したのだろうと私はあたふたしました。。。

# リポジトリサーバとの通信状況の確認
以下コマンドを実行した際、接続に失敗しているエラーが分かりました。
証明書関連のエラーが出てきましたが、時刻にズレもなく沼にハマっていきそうでした。。

    SUSEConnect --url https://smt-azure.susecloud.net --status-text
    -> SUSEConnect error: Get https://smt-azure.susecloud.net/connect/systems/activations: x509: certificate signed by unknown authority

# よし、リポジトリサーバの再登録しよう
通信できないのであれば、通信できるようにリポジトリサーバの再登録をしようと思い、以下手順を実施しました。

    SUSEConnect --cleanup
    rm -f /etc/SUSEConnect
    rm -rf /etc/zypp/credentials.d/*
    rm -rf /etc/zypp/repos.d/*
    rm -f /etc/zypp/services.d/*
    rm -rf /var/cache/zypp/*
    registercloudguest --force-new

コマンド実行後、『Registration succeeded』と表示されることを確認しましょう。確認後は、以下コマンドを実施し問題ないかの確認が必要です。


    cat /etc/hosts
    -> smtサーバの情報が記載されていること。旧エントリがある場合は、削除してしまってOK

    SUSEConnect --url https://smt-azure.susecloud.net --status-text
    -> 利用可能なプロダクト情報が閲覧できることを確認します。

    zypper refresh
    -> zypperでリポジトリにアクセス出来ることを確認します。

:::note warn
本手順を実施する際は、インターネットアクセスができる状態にしておく必要があります。
:::

リポジトリサーバの再登録後、Azure Backupの設定を行い問題なくスクリプトが正常終了しました。

# そういえば・・・
構築する際は、インターネットアクセスができる状態で構築していたのでsmtサーバへのアクセスができていました。

しかし、今回の仮想マシンは構築後にリストアを実施しており、リストアするタイミングでインターネットアクセスができる状態にしておかないといけないのかもしれません。

今回は、リストアした後にインターネットへのアクセスができずSUSE リポジトリサーバへのアクセスができなかったのかなと思いました。
※ smtサーバへの通信許可設定を入れているので、インターネットアクセス不要かと思いきや、必要だったみたいです。

# まとめ
今回いろいろ調査した結果、以下確認できたことです。
・構築時/リストア時は、インターネットアクセス可能な状態にしておく必要がある。
・インターネットアクセスできない状態でリストアした後は、リポジトリサーバの再登録をしてあげないとパッケージのインストールができない。

2023/12/17
モヤモヤしているところがあり、後ほど検証してブログを更新しようと思いますが、今現在私の方で整理できた情報はこちらなのでいったん共有しますｍ(_ _)ｍ