2024年11月7日木曜日

DELL周辺機器レビュー③ (Dell Bluetooth®トラベル マウス – MS700)

Dell Technologies Japan様(@DellTechJapan)の「【A】テレワークを快適にする周辺機器セット」のモニタープレゼントに当選し、以下3つの製品を提供いただいた。

それぞれの使用感をレビューしたいと思う。本記事ではDell Bluetooth®トラベル マウス – MS700 のレビューを記載する。

「Dell Bluetooth®トラベル マウス – MS700」レビュー

大きさなど

本マウスは単4電池 x 2本必要となる。動作確認用として電池付きなのがありがたい。



電池の蓋はマグネット式になっており、電池が落下しないようストッパーが付いている。

大きさは通常のマウスと同じくらいの大きさとなる。手元のマウスと比べてみると、若干薄い程度でほぼ同じ大きさとなっていた。

本体を捻ることで電源ON/OFFができる

このマウスの特徴として、本体を捻ることで電源ON/OFFができる。

通常の使用時は普通のマウスと同じ程度の厚みがある。

本体を捻り電源をOFFにすると、薄くコンパクトになる。そのため、持ち運び時にかさばることがない。

また、電源OFFの状態からONの状態に戻すと、すぐにPCでマウスが認識されるため、認識待ちなどでストレスを感じることはなく使用することができた。

マウスホイール

マウスホイールはホイール式ではなく、タッチセンサー式となっている。スクロール時の動かし方はホイールとは同じではあるが、物理的なホイールがないことで最初は違和感を感じる可能性がある。ただ、慣れればホイールと遜色なく操作はできそうだ。

総評

Dell EcoLoop Pro バックパック 15 の総評として、メリット・デメリットを以下にまとめる。

メリット

  • 電源ON時は、通常のマウスと同じ程度の厚みがあり、マウス操作時に違和感を感じにくい。
  • 電源OFF時は、本体が薄くなりコンパクトになる。

デメリット

  • マウスホイールがタッチセンサー式となるため、慣れるまではスクロール操作に違和感を感じる可能性がある。
2024年11月5日火曜日

DELL周辺機器レビュー② (Dell EcoLoop Pro バックパック 15)

Dell Technologies Japan様(@DellTechJapan)の「【A】テレワークを快適にする周辺機器セット」のモニタープレゼントに当選し、以下3つの製品を提供いただいた。

それぞれの使用感をレビューしたいと思う。本記事ではDell EcoLoop Pro バックパック 15 のレビューを記載する。

「Dell EcoLoop Pro バックパック 15」レビュー

大きさと容量

大きさとしては幅31cm x 高さ44cm x 奥行17cmとなっており、重量は660gとなる。第一印象としては奥行きがスリムで非常に軽く、ノートPCや周辺機器などを十分に入れるだけの容量があるか心配になるほどだった。

実際は、十分な容量があり、ノートPC、マウス、ヘッドセットに加え、モバイルバッテリーやケーブル類など、通勤や客先移動時に必要な仕事道具を問題なく収納して持ち運ぶことができる(さらに、季節的に薄手の上着ぐらいなら問題なく収納できた)。

また、ペットボトル用のメッシュ状の収納ポケットが左右にあり、折りたたみ傘、ペットボトルの飲み物なども、バックパックの中に入れることなく持ち運ぶことができる。

収納スペース

背中側からPC収納スペース、周辺機器収納スペース、小物類収納スペースの大きく3つの区画に分かれている。

面白い点として、キーボードやヘッドセットといったマークが収納スペースに貼り付けてあった。マークに従い、周辺機器収納スペースには、ヘッドセットなどを入れ、小物類収納スペースにはマウスやその他財布などを収納すると、仕事道具を整理して収納することができる(当然自分好みで収納場所は変えてもよい)。

PC収納スペース

一番背中側のPC用スペースは、15.6インチまでのPCに対応しており非常に広いスペースが確保されている。写真は13インチのノートPCを入れた状態となるが、見ての通りスペースには余裕があり、追加でモバイルモニターなども収納できそうだ。

背中側

背中側はメッシュ状のクッション素材となっており、夏場などで背中が熱くなる際も、蒸れにくくなりそうだ。また、スーツケース用のストラップも付いている。

総評

Dell EcoLoop Pro バックパック 15 の総評として、メリット・デメリットを以下にまとめる。

メリット

  • 一見コンパクトながら、十分な容量を備える。満員電車などでも邪魔になりにくい。
  • PCを常に持ち運ぶような働き方を想定した収納スペースを備えており、周辺機器を整理した状態で持ち運ぶことができる。
  • 金額もリーズナブル(6,780円)

デメリット

  • 特に大きなデメリットはないが、強いて言えば、技術書などで分厚い本などを入れようとした場合、収納場所を工夫する必要があるかもしれない。
2024年11月4日月曜日

DELL周辺機器レビュー① (Dell Pro 有線 ANC ヘッドセット – WH5024)

Dell Technologies Japan様(@DellTechJapan)の「【A】テレワークを快適にする周辺機器セット」のモニタープレゼントに当選し、以下3つの製品を提供いただいた。

それぞれの使用感をレビューしたいと思う。本記事ではDell Pro 有線 ANC ヘッドセット – WH5024のレビューを記載する。

「Dell Pro 有線 ANC ヘッドセット – WH5024」レビュー

音声とマイクについて

本ヘッドセットは、無線ではなく有線接続専用のヘッドセットとなる。無線でないためヘッドセットを付けながら動き回るといったことはできないが、ヘッドセット自体はバッテリーなどが搭載不要であることから、軽量になっている印象となる(その代わり、ケーブル分の重量は増えてしまうが)。

数日使ってみたが、音声やマイクの性能は十分で、Web会議で相手の音や自分の音が聞こえにくいということはなかった。また、ANC(アクティブノイズキャンセリング)がよい感じに周りの音を減少してくれるので、オフィスなどで多少周りが騒がしい環境であっても、問題なくWeb会議ができそうだ。

収納ケース

収納ケースが付いており持ち運び時に有線ケーブルが散らからず、便利になっている。

イヤーパッド

イヤーパッドはクッション性が十分にあり、長時間使用しても耳が痛くなりにくくなっている。また、アーム部分が耳の角度に応じて回転するため、きちっと耳にフィットする。

有線ケーブルとコントローラー

無線ではなく有線となり、いわゆるイヤホンプラグではなくUSBケーブルによる接続となる。USBはType-CだけでなくType-Aへの変換コネクターが付属している。

コントローラーが付いており、手元でマイクミュートのON/OFFや音量調整ができる。Web会議などで相手の環境の音が小さく、音量を上げたい場合などにおいて手元ですぐに音量調整できるのはありがたい。

「Dell Peripheral Manager」による細かな管理

USB接続をすると、Windows 11においては自動的に「Dell Peripheral Manager」のインストールが求められる。本ソフトウェアを用いることで、ヘッドセットの細かな設定ができるようになるため、特に問題がなければインストールした方が便利だろう。

なお、本ヘッドセットはマイクON/OFF時に音声ガイダンスで案内がされるのだが、ガイダンスがWeb会議中の会話と干渉するため、人によっては音声ガイダンスをOFFにしたい場合もあると思われる(私がそうだった)。本ソフトウェアを用いることで、音声ガイダンスのON/OFFが設定可能となる。

総評

Dell Pro 有線 ANC ヘッドセット – WH5024の総評として、メリット・デメリットを以下にまとめる。

メリット

  • イヤーパッドのクッション性が高く、アーム部分も稼働することで長時間のWeb会議でも痛くなりにくい。
  • 手元にコントローラーがあり、簡単にマイクON/OFFや音量調整ができる。
  • ANCが優秀で多少騒がしい環境でもWeb会議ができる。
  • 「Dell Peripheral Manager」で音声ガイダンスを無効化などの細かな設定ができる。

デメリット

  • 有線接続なので使用中に席を離れることができない。
  • 音声ガイダンスを無効に知るとANCのON/OFFの状態が判断しづらい。
2024年10月19日土曜日

Ansible core 2.17にしたらRHEL 8系でdnfモジュール実行できなくなった話

先日、Ansibleコントロールノードを10.4.0 (Ansible core 2.17)にバージョンアップした。

RHEL 8系のOSに対してdnfモジュールを用いて操作をしようとしたところ、以下のようなエラーが発生し実行に失敗してしまった。

TASK [Update gitlab packages] *******************************************************************************************************************************************************************
{
  "changed": false,
  "module_stderr": "Shared connection to 192.168.11.26 closed.\r\n",
  "module_stdout": "Traceback (most recent call last):\r\n  File \"<stdin>\", 
  line 12, in <module>\r\n  File \"<frozen importlib._bootstrap>\", 
  line 971, in _find_and_load\r\n  File \"<frozen importlib._bootstrap>\", 
  line 951, in _find_and_load_unlocked\r\n  File \"<frozen importlib._bootstrap>\", 
  line 894, in _find_spec\r\n  File \"<frozen importlib._bootstrap_external>\", 
  line 1157, in find_spec\r\n  File \"<frozen importlib._bootstrap_external>\", 
  line 1131, in _get_spec\r\n  File \"<frozen importlib._bootstrap_external>\", 
  line 1112, in _legacy_get_spec\r\n  File \"<frozen importlib._bootstrap>\", 
  line 441, in spec_from_loader\r\n  File \"<frozen importlib._bootstrap_external>\", 
  line 544, in spec_from_file_location\r\n  File \"/tmp/ansible_ansible.legacy.dnf_payload_25y3u3vr/ansible_ansible.legacy.dnf_payload.zip/ansible/module_utils/basic.py\", line 5\r\nSyntaxError: future feature annotations is not defined\r\n",
  "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
  "rc": 1
}

RHEL 8のOSにPython 3.12を個別にdnfでインストールして、ansible_python_interpreterでPythonのパスを指定しても、dnfモジュールはうまく動作してくれないので、いろいろ調べたところ、どうやらこれは、管理ノード側のPythonが古い(Python 3.7未満)ことによる「仕様」であり解決できないようだ。

以下に本情報が記載されている、GitHubのIssueを日本語訳したものを引用する。

ansible-core 2.17 は、ターゲット実行に Python 3.7 以降のみをサポートしています。それより低いバージョンの Python を使用しているシステムはサポートされていません。これらのシステムでは、より新しいバージョンの Python をインストールできる可能性がありますが、パッケージ マネージャーなどのシステム タスク用のパッケージが不足しているため、すべてのモジュールが機能しない可能性があります。
そのコメントに従って、よりフレンドリーなエラーのために機能を人為的に制限することは、長期的には価値がないと判断しました。
SyntaxError: future feature annotations is not defined #82068

残念ながら、自宅はまだまだRHEL 8系OSが現役なので、この仕様は非常に困る。本事象の回避のため、AnsibleコントロールノードをAnsible 10.x (Ansible core 2.17) → Ansible 9.x (Ansible core 2.16) にダウングレードすることにした。

Ansibleダウングレード手順

1. インストール可能なAnsibleのバージョン確認

まずは、インストール可能なAnsibleのバージョンを確認する。存在しないバージョンとして0を指定することで、エラー表示にてインストール可能なバージョンが表示される。

# python3 -m pip install --upgrade ansible=='0'
ERROR: Ignored the following yanked versions: 9.0.0, 9.5.0, 9.6.0, 10.0.0
ERROR: Could not find a version that satisfies the requirement ansible==0 (from versions: 1.0, 1.1, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.7, 1.7.1, 1.7.2, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.9.0.1, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 2.0.0.0, 2.0.0.1, 2.0.0.2, 2.0.1.0, 2.0.2.0, 2.1.0.0, 2.1.1.0, 2.1.2.0, 2.1.3.0, 2.1.4.0, 2.1.5.0, 2.1.6.0, 2.2.0.0, 2.2.1.0, 2.2.2.0, 2.2.3.0, 2.3.0.0, 2.3.1.0, 2.3.2.0, 2.3.3.0, 2.4.0.0, 2.4.1.0, 2.4.2.0, 2.4.3.0, 2.4.4.0, 2.4.5.0, 2.4.6.0, 2.5.0a1, 2.5.0b1, 2.5.0b2, 2.5.0rc1, 2.5.0rc2, 2.5.0rc3, 2.5.0, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.5.5, 2.5.6, 2.5.7, 2.5.8, 2.5.9, 2.5.10, 2.5.11, 2.5.12, 2.5.13, 2.5.14, 2.5.15, 2.6.0a1, 2.6.0a2, 2.6.0rc1, 2.6.0rc2, 2.6.0rc3, 2.6.0rc4, 2.6.0rc5, 2.6.0, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.6.10, 2.6.11, 2.6.12, 2.6.13, 2.6.14, 2.6.15, 2.6.16, 2.6.17, 2.6.18, 2.6.19, 2.6.20, 2.7.0.dev0, 2.7.0a1, 2.7.0b1, 2.7.0rc1, 2.7.0rc2, 2.7.0rc3, 2.7.0rc4, 2.7.0, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 2.7.17, 2.7.18, 2.8.0a1, 2.8.0b1, 2.8.0rc1, 2.8.0rc2, 2.8.0rc3, 2.8.0, 2.8.1, 2.8.2, 2.8.3, 2.8.4, 2.8.5, 2.8.6, 2.8.7, 2.8.8, 2.8.9, 2.8.10, 2.8.11, 2.8.12, 2.8.13, 2.8.14, 2.8.15, 2.8.16rc1, 2.8.16, 2.8.17rc1, 2.8.17, 2.8.18rc1, 2.8.18, 2.8.19rc1, 2.8.19, 2.8.20rc1, 2.8.20, 2.9.0b1, 2.9.0rc1, 2.9.0rc2, 2.9.0rc3, 2.9.0rc4, 2.9.0rc5, 2.9.0, 2.9.1, 2.9.2, 2.9.3, 2.9.4, 2.9.5, 2.9.6, 2.9.7, 2.9.8, 2.9.9, 2.9.10, 2.9.11, 2.9.12, 2.9.13, 2.9.14rc1, 2.9.14, 2.9.15rc1, 2.9.15, 2.9.16rc1, 2.9.16, 2.9.17rc1, 2.9.17, 2.9.18rc1, 2.9.18, 2.9.19rc1, 2.9.19, 2.9.20rc1, 2.9.20, 2.9.21rc1, 2.9.21, 2.9.22rc1, 2.9.22, 2.9.23rc1, 2.9.23, 2.9.24rc1, 2.9.24, 2.9.25rc1, 2.9.25, 2.9.26rc1, 2.9.26, 2.9.27rc1, 2.9.27, 2.10.0a1, 2.10.0a2, 2.10.0a3, 2.10.0a4, 2.10.0a5, 2.10.0a6, 2.10.0a7, 2.10.0a8, 2.10.0a9, 2.10.0b1, 2.10.0b2, 2.10.0rc1, 2.10.0, 2.10.1, 2.10.2, 2.10.3, 2.10.4, 2.10.5, 2.10.6, 2.10.7, 3.0.0b1, 3.0.0rc1, 3.0.0, 3.1.0, 3.2.0, 3.3.0, 3.4.0, 4.0.0a1, 4.0.0a2, 4.0.0a3, 4.0.0a4, 4.0.0b1, 4.0.0b2, 4.0.0rc1, 4.0.0, 4.1.0, 4.2.0, 4.3.0, 4.4.0, 4.5.0, 4.6.0, 4.7.0, 4.8.0, 4.9.0, 4.10.0, 5.0.0a1, 5.0.0a2, 5.0.0a3, 5.0.0b1, 5.0.0b2, 5.0.0rc1, 5.0.1, 5.1.0, 5.2.0, 5.3.0, 5.4.0, 5.5.0, 5.6.0, 5.7.0, 5.7.1, 5.8.0, 5.9.0, 5.10.0, 6.0.0a1, 6.0.0a2, 6.0.0a3, 6.0.0b1, 6.0.0b2, 6.0.0rc1, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0, 6.5.0, 6.6.0, 6.7.0, 7.0.0a1, 7.0.0a2, 7.0.0b1, 7.0.0rc1, 7.0.0, 7.1.0, 7.2.0, 7.3.0, 7.4.0, 7.5.0, 7.6.0, 7.7.0, 8.0.0a1, 8.0.0a2, 8.0.0a3, 8.0.0b1, 8.0.0rc1, 8.0.0, 8.1.0, 8.2.0, 8.3.0, 8.4.0, 8.5.0, 8.6.0, 8.6.1, 8.7.0, 9.0.0a1, 9.0.0a2, 9.0.0a3, 9.0.0b1, 9.0.0rc1, 9.0.1, 9.1.0, 9.2.0, 9.3.0, 9.4.0, 9.5.1, 9.6.1, 9.7.0, 9.8.0, 9.9.0, 9.10.0, 9.11.0, 10.0.0a1, 10.0.0a2, 10.0.0a3, 10.0.0b1, 10.0.0rc1, 10.0.1, 10.1.0, 10.2.0, 10.3.0, 10.4.0, 10.5.0, 11.0.0a1)
ERROR: No matching distribution found for ansible==0

2. Ansible 9.11.0をインストール

Ansible 9.xの最新バージョンとなるAnsible 9.11.0をインストールする。

# python3 -m pip install ansible=='9.11.0'

Ansibleのバージョンを確認するとAnsible core 2.16.12になっていることがわかる。

# ansible --version
ansible [core 2.16.12]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.12/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.12.3 (main, Jul  2 2024, 16:34:01) [GCC 8.5.0 20210514 (Red Hat 8.5.0-22)] (/usr/bin/python3)
  jinja version = 3.1.4
  libyaml = True

3. 動作確認

あらためて、dnfモジュールを含めたPlaybookを実行すると、以下の通り成功した。

TASK [Update gitlab packages] **************************************************************************************************************************************************************************************
changed: [t1026gitl]

以上で、Ansibleのダウングレード手順は完了となる。今後は、RHEL 8系のサーバーを徐々にRHEL 9系に移行し、Ansibleの最新バージョンが利用できるよう環境を整えていきたい。

2024年10月5日土曜日

コンテナレジストリ「Harbor」バージョンアップ手順

Docker Hubのようにコンテナイメージを格納し、Dockerにてイメージをダウンロード(Pull)して利用できるようにするサービスをコンテナリポジトリと呼ぶ。

コンテナレジストリの「Harbor」は、OSSのコンテナレジストリであり、自宅検証環境にプライベートのコンテナレジストリを構築することができる。

↓コンテナレジストリ「Harbor」のインストール手順はこちら。

本記事では、コンテナレジストリ「Harbor」バージョンアップ手順を記載する。

環境

Harbor自体はDockerコンテナとして動作する。Harbor及びDockerが動作するOSとしてはAlmaLinuxを使用した。

  • OS : AlmaLinux release 8.10
  • Docker : 20.10.21
  • Docker Compose : v2.12.2
  • Harbor : v2.8.0→v2.11.1

今回の作業の簡単な概要図を以下に記載する。

バージョンアップ手順

1. アップグレードパスを確認

Harborはアップグレードパスが存在し、場合によっては段階的にバージョンアップ作業を行う必要がある。

アップグレードパスは残念ながらマニュアル等でまとまったページはないため、各バージョンアップ手順の記述を見て判断する必要がある。

今回の場合は、v2.8→v2.11のバージョンアップとなるので、まずはv2.11のマニュアルを確認する。

This guide covers upgrade and migration to v2.11.0. This guide only covers migration from v2.9.0 and later to the current version. If you are upgrading from an earlier version, refer to the migration guide for an earlier Harbor version.

上記の記載にあるように、v2.9.0以降であれば直接バージョンアップができるが、そうでない場合は、古いバージョンのマニュアルを見ること、と記載されている。

次にv2.9のマニュアルを確認する。

This guide covers upgrade and migration to v2.9.0. This guide only covers migration from v2.7.0 and later to the current version. If you are upgrading from an earlier version, refer to the migration guide for an earlier Harbor version.

こちらはv2.7.0以降であれば直接バージョンアップできる。今回はv2.8からのバージョンアップとなるので、アップグレードパスは「v2.8→v2.9→v.211」となることが確認できた。

2. インストーラの入手

Harborのインストーラは、オンラインインストーラとオフラインインストーラの2種類が用意されている。今回はオフラインインストーラを用いる。ダウンロードは以下URLからダウンロードすることができる。

今回の場合は、以下2つのファイルをダウンロードした。

  • harbor-offline-installer-v2.9.5.tgz
  • harbor-offline-installer-v2.11.1.tgz

3. Harbor停止

まず、起動中のHarborを停止する。

cd ~/harbor/
docker compose down

4. バックアップ

現在のバージョンのHarborの設定ファイルとデータベースのバックアップを行う。

cd ~
mkdir backup_2.8
mv harbor backup_2.8/harbor_2.8
cp -r /data/database ~/backup_2.8/

5. 新バージョンのファイルを展開

ダウンロードしたインストーラを展開し、インストーラに含まれるDockerイメージをロードする。

tar zxf harbor-offline-installer-v2.9.5.tgz
docker image load -i harbor/harbor.v2.9.5.tar.gz

6. 設定ファイルをマイグレーション

設定ファイル(harbor.yml)をマイグレーションする。

ls -l ~/backup_2.8/harbor_2.8/harbor.yml
cp ~/backup_2.8/harbor_2.8/harbor.yml ~/harbor
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.9.5 migrate -i ~/harbor/harbor.yml

実際の実行結果は以下となる。

# docker run -it --rm -v /:/hostfs goharbor/prepare:v2.9.5 migrate -i ~/backup_2.8/harbor_2.8/harbor.yml
migrating to version 2.9.0
Written new values to /root/harbor/harbor.yml

7. 新バージョンインストール

以上で準備が整ったので、新バージョンのHarborをインストールおよび起動する。インストールはinstall.shを実行して実施する。

cd ~/harbor
./install.sh

8. ターゲットバージョンとなるまで、手順3~7を繰り返す

ターゲットバージョンとなるまで、手順3~7を繰り返す。バージョンが変わるため、フォルダパスやインストーラのファイル名の読み替えは必要となるが、手順に変更はない。

以下、参考情報として、v2.9→v2.11へのバージョンアップ手順を記載する。

cd ~/harbor/
docker compose down

cd ~
mkdir backup_2.9
mv harbor backup_2.9/harbor_2.9
cp -r /data/database ~/backup_2.9/

tar zxf harbor-offline-installer-v2.11.1.tgz
docker image load -i harbor/harbor.v2.11.1.tar.gz

ls -l ~/backup_2.9/harbor_2.9/harbor.yml
cp ~/backup_2.9/harbor_2.9/harbor.yml ~/harbor
docker run -it --rm -v /:/hostfs goharbor/prepare:v2.11.1 migrate -i ~/harbor/harbor.yml

cd ~/harbor
./install.sh

以上で、コンテナレジストリ「Harbor」バージョンアップ手順は完了となる。

人気の投稿