カテゴリー: 技術系memo

  • VMware ESXiの無料バージョンが復活しているようだ

    Broadcomに買収されてから無くなっていたVMwareのESXiの無料バージョンが復活したようだ。

    https://cloud.watch.impress.co.jp/docs/column/infostand/2008490.html

    https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/release-notes/esxi-update-and-patch-release-notes/vsphere-esxi-80u3e-release-notes.html

    VMware ESXi 8.0 Update 3eリリースノートを見てみると、無料ダウンロードできると書いてある。非本番環境での使用を目的とのこと。ちょっと試すためには使えるけれど、本番環境での長期利用はできないようだ。仮想マシンあたりのCPUも8までの制限があるようなので、実際の利用には厳しそうだ。

  • GitLab 17.7.2-ceからGitLab 17.10.3へのapt upgradeがエラーになった。

    ちょっと、GitLabのアップデートをサボっていたところ、GitLab 17.7.2-ceからGitLab 17.10.3へのapt upgradeがエラーになった。

    エラーの内容(↓)

    .../gitlab-ce_17.10.3-ce.0_amd64.deb を展開する準備をしています ...
    gitlab preinstall: It seems you are upgrading from 17.7 to 17.10.
    gitlab preinstall: It is required to upgrade to the latest 17.8.x version first before proceeding.
    gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/update/index.html#upgrade-paths
    dpkg: アーカイブ /var/cache/apt/archives/gitlab-ce_17.10.3-ce.0_amd64.deb の処理中にエラーが発生しました (--unpack):
     new gitlab-ce package pre-installation script subprocess returned error exit status 1
    処理中にエラーが発生しました:
     /var/cache/apt/archives/gitlab-ce_17.10.3-ce.0_amd64.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)

    GitLab 17.10.xへのアップデートするために、一度、GitLab 17.8.xに上げる必要があるとのこと。厳密なアップグレードのパスを調べるために、下記の公式サイトで、アップグレードパスをチェックした。

    https://gitlab-com.gitlab.io/support/toolbox/upgrade-path

    これによると、「GitLab 17.8.6」に一度上げる必要があるということで、apt upgradeでバージョン指定をして、実行。コマンドは下記。

    sudo apt upgrade gitlab-ce=17.8.6-ce.0

    GitLab 17.8.6へのアップデートが成功したのを確認して、もう一度、apt update、apt upgradeを行った。

    sudo apt update
    apt list --upgradable
    sudo apt upgrade

    正常終了したらGitlabをリスタートさせて終了。

    sudo gitlab-ctl restart
  • UNPKGで障害?

    bootstrap-tableをUNPKG経由で使っている。bootstrap-tableが機能しなくなり、画面表示されない障害になった。調べてみると、下記のURLで「Internal Server Error」になる。

    https://unpkg.com/bootstrap-table@1.18.3/dist/bootstrap-table.min.js

    そこまで急ぎの対応も必要ないので、待つことにしている。

    あと、調べてみると、2週間くらい前から、UNPKGで障害が起きている模様。

    https://github.com/unpkg/unpkg/issues/412

    昨日解消とあるが、、、また問題が発生したのだろう。

  • さくらインターネットのレンタルサーバで独自の404ページを指定する

    ウェブサイトの廃止に伴い、閉鎖のお知らせページを設定する。基本的に、エラーコード404のNot Foundばかりになるので、さくらのレンタルサーバで、404エラーページを独自に設定するようにしたメモ。

    さくらのレンタルサーバの管理画面では、404ページの設定はない。

    さくらのレンタルサーバでは、.htaccessを利用したウェブサーバの設定の上書きが可能。そのため、「.htaccess」を使って、404エラーのページを設定する。

    .htaccessの中身

    ErrorDocument 404 /404.html

    他に「.htaccess」で設定していることがなければ、この1行でよい。ファイルは作ってアップロードするか、管理画面のファイルマネージャーから作成して、書き込む。

    「404.html」は、設定したウェブサイトのフォルダのルートに置く。「/」でルートの階層を指定しているので。

  • Veeam Backup & Replicationのサーバをリプレイスする方法

    Veeam Backup & Replicationのサーバを、旧サーバから新サーバに移行するための公式ナレッジベースは下記。
    https://helpcenter.veeam.com/docs/backup/vsphere/vbr_config_migrate.html?ver=120
    https://www.veeam.com/kb1889

    Veeam Backup & Replication を別のバックアップ サーバーに移行する場合は、次の手順を実行する。

    1. 実行中のジョブを停止し、スケジュールされたジョブを無効にする。
    2. 変更または作成したレジストリ値を保存する。
    3. Veeam Backup & Replication の構成データベースをバックアップする。
    4. ターゲット マシンに Veeam Backup & Replication をインストールする。
    5. バックアップから構成データベースを復元する。
    6. 設定の確認を行う。
    7. テストする。

    移行前と移行後のVeeam Backup & Replicationのバージョンはそろえておく必要がある。移行前のVeeam Backup & Replicationのバージョンが古い場合は、移行前にアップグレードして、そのインストーラーを使って、新しいVeeam Backup & Replicationをインストールする。

    この方法だと、ライセンスファイルも動いてしまうため、1日で移行とテスト、切り替えを行う必要がある。

  • PowerShellでCSVファイルをJSON形式に変換する

    Windowsで、Excelの表をJSONに形式にする必要があったので、ExcelからCSVファイルで保存して、Powershellを使って、CSVファイルをJSON形式のファイルに変換した。

    使ったPowershellのスクリプト(コマンドレット)は下記。

    # CSVファイルのパスを指定
    $csvFilePath = "C:\path\to\your\file.csv"
    
    # JSONファイルのパスを指定
    $jsonFilePath = "C:\path\to\your\file.json"
    
    # CSVファイルをインポート
    $csvData = Import-Csv -Path $csvFilePath
    
    # JSONファイルにエクスポート
    $csvData | ConvertTo-Json | Set-Content -Path $jsonFilePath

    最初の2つは、CSVファイルと出力するJSONファイルの指定なので、直接指定すれば2行でOK。

    1行ずつ、Powershellのプロンプトに入力していけば実行できるので楽。文字コードは全部がUTF8で行う想定だったので指定していないが指定することも可能。

  • GASでGoogleWorkspaceのメーリングリストと、メーリングリストのメンバーを取得して一覧にするスクリプト

    Google Workspace上のメーリングリスト一覧を整理するために。GoogleWorkspaceの管理機能だと1つずつダウンロードしていくことになるので、GAS(Google Apps Script)で出力するようにした。ベースになるGASのスクリプトは、Copilotに生成させて、それを少しだけ手直しさせた。GoogleのGeminiだと、ベースも作成できず。

    Google Driveから、新規作成で、その他からApps Scriptを選択して、新しいプロジェクトを作り、コード.gsに下記のコードの部分をコピペ。実行するためにAPIを利用するので、サイドのサービスから「Admin SDK API」を追加する。このスクリプトの実行は、Google Workspaceの管理権限の中のGoogle Groupの管理権限があるユーザでないといけない。フル権限である必要はないけれど。

    以下はコード。

    // GASでGoogleWorkspaceのメーリングリストと、メーリングリストのメンバーを取得して一覧にするスクリプト
    // 出力先は、Google spreadsheet
    function myFunction() {
      listMailingListsAndMembers()
    }
    
    // 単機能なら、直接myFunctionの中にいれてもいい。
    // または、呼び出さずに直接実行してもいい。
    function listMailingListsAndMembers() {
      // Spreadsheetはルートフォルダ=マイドライブの直下に保存される。
      var sheet = SpreadsheetApp.create("Mailing Lists and Members").getActiveSheet();
      sheet.appendRow(["Mailing List", "Member"]);
    
      // AdminDirectory. を実施するためには、サービスから「Admin SDK API」を追加する。
      // 実行時に権限を承認する必要がある。また、実行ユーザがGoogleWorkspaceの該当する機能の権限を持っている
      var groups = AdminDirectory.Groups.list({customer: 'my_customer'}).groups;
      if (groups && groups.length > 0) {
        for (var i = 0; i < groups.length; i++) {
          var group = groups[i];
          var members = AdminDirectory.Members.list(group.email).members;
          var memberEmails = [];
          if (members && members.length > 0) {
            // メーリングリスト内のメンバーの数だけ繰り返し
            for (var j = 0; j < members.length; j++) {
              // メーリングリスト内のメンバーを、memberEmailsの配列に追加
              var member = members[j];
              memberEmails.push(member.email);
            }
          } else {
            memberEmails.push("No members");
          }
          // シートに書き込む
          sheet.appendRow([group.email].concat(memberEmails));
        }
      } else {
        sheet.appendRow(["No mailing lists found", ""]);
      }
    }
  • Veeam Backup & Replication 12.3のインストール要件

    Veeam Backup & Replication 12.3のインストール要件は、以下のページに記載されている。

    https://helpcenter.veeam.com/rn/veeam_backup_12_3_release_notes.html#system-requirements-veeam-backup—replication-server

    抜粋。

    • CPU:x86-64プロセッサ(最小4コアを推奨)。
    • メモリ: 8 GB RAM と 500 MB RAM (同時ジョブごと)。
    • OS: Windows Server 2025
    • 裏で使うDB: PostgreSQL 14.x、15.x(バージョン15.10.1はセットアップに含まれています)
           Microsoft SQL Server 2012 から 2022

    最新のWindows Serverに対応しているのはいいこと。

  • msvcp140_atomic_wait.dll が見つからないというエラーがでたときの対処

    「msvcp140_atomic_wait.dll」が見つからないというエラーがでて、Teamsから別のプログラムを呼び出せなくなる事象があった。これの対処方法。

    「msvcp140_atomic_wait.dll」は、「Visual C++ 再頒布可能パッケージ」に含まれているので、これを修復するか、インストール(上書きインストール?)を試す。

    「msvcp140_atomic_wait.dll」をインストールする場合は、下記のMicrosoftのサイトからダウンロードする。

    https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170

    通常は、OSのビット数に合わせて、x64(64ビット)か、x86(32ビット)かを選んで試す。ただ、OSのビット数とは違うバージョンを呼び出している場合もあるので、ダメだったら別ビット数の方も試す。

    壊れた原因は、アンチウィルスが悪さをしたか、Windows Updateの影響か。ユーザの動作によらず、急に不具合が発生する可能性はある。

  • メモ:VDI端末はワイヤレスディスプレイに設定できないかも

    VDI端末からだと、Windowsの機能でのワイヤレスディスプレイに接続できないことがある。

    PINコードをいれても、VDI側のWindowsの機能だったりするのでミラーリング等の投影ができない。