ITよろづや

ITから生活の参考になる情報を備忘録代わりに残していきます

Ansibleを使用してDellPowerEdgeサーバーにすべてのファームウェアアップデートをインストールする手順

Ansibleを使用してDellPowerEdgeサーバーにすべてのファームウェアアップデートをインストールする手順ということで、この組み合わせで運用しているケースってあんまりないかもしれませんが、海外のブログで分かりやすく説明されていました。

 

こちらです。

 

情報元※機械翻訳

 

Ansibleを使用してDellPowerEdgeサーバーにすべてのファームウェアアップデートをインストールする

https://blog.valouille.fr/post/2018-11-23-install-all-pending-update-on-dell-poweredge-servers-using-ansible/

 

※この機能は、iDRACエンタープライズライセンスでのみ使用できます。

 

サポートされているサーバーは次のとおりです。

 

・12Gおよび13GPowerEdgeサーバー:ファームウェアバージョン2.50.50.50以降を搭載したiDRAC7および8
・14G PowerEdgeサーバー:ファームウェアバージョン3.18.18.18以降を搭載したiDRAC 9

 

デルのサーバーファームウェアを更新する最も簡単な方法をもう一度探している間、私はこの素晴らしいビデオを踏んで、デルの誰かがAnsibleを使用してサーバーのすべてのファームウェアを一度に更新することを示しました。

したがって、それを行う方法についていくつかの調査を行った後、LinuxOut-of-BandマシンのCLIのみを使用してこれを実現するために必要なすべての手順を次に示します。

 

概要
このガイドでは、Dell EMCリポジトリマネージャーをインストールして、サーバーの更新ファイルを含むリポジトリを作成および保守し、関係情報を含むCatalog.xmlファイルを生成します。次に、これらの更新をNFS共有にエクスポートし、Ansible + Dell EMC OpenManage Ansible Modules(Dell EMC OpenManage Python SDKを内部で使用)を使用してiDRACと通信し、NFS共有からダウンロードされる更新をトリガーします。

 

前提条件
DellEMCリポジトリマネージャー
デルのWebサイトからDellRepositoryManagerをダウンロードしてインストールする必要があります。.BINファイルとして見つけることができ、実行するだけでインストールできます。デルが述べていない場合でも、Ubuntu/Debianでも動作します。

chmod +x DRMInstaller_3.1.0.468.bin
./DRMInstaller_3.1.0.468.bin

 

drmコマンドを使用してGUIを起動しようとしたときに次のエラーが発生したため、GUIがすぐに機能しませんでした。

Graphics Device initialization failed for :  es2, sw
Error initializing QuantumRenderer: no suitable pipeline found
java.lang.RuntimeException: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer.getInstance(QuantumRenderer.java:280)
    at com.sun.javafx.tk.quantum.QuantumToolkit.init(QuantumToolkit.java:221)
    at com.sun.javafx.tk.Toolkit.getToolkit(Toolkit.java:248)
    at com.sun.javafx.application.PlatformImpl.startup(PlatformImpl.java:209)
    at com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:675)
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:695)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Error initializing QuantumRenderer: no suitable pipeline found
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.init(QuantumRenderer.java:94)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:124)
    ... 1 more
No toolkit found

 

libswt-gtk-3-javaこの問題を修正するには、パッケージをインストールする必要がありました。

 

ただし、この構成では、CLIからすべてを実行しようとするため、実際には問題になりません。

 

 

オプション
プラグインは、ファームウェア、連結されたBINファイルなどを含む起動可能なISOを作成するためにインストールできます。次のコマンドを使用して、使用可能なプラグインを一覧表示できます。

 

drm --list=plugin

Listing Plugins...


Plugin                                       Current Version   Latest Version
--------------                               --------------    --------------
Dell EMC System Update(BIN)                  1.5.3             1.5.3
Dell EMC Bootable ISO Plug-in                902.1             902.1
Dell EMC Server Update Utility x64 Plug-in   782               782
Dell EMC System Update(EXE)                  1.5.3             1.5.3
プラグインをインストールするには、次のコマンドを使用できます:drm --update --plugin="Dell EMC System Update(EXE)"。

Dell EMC OpenManage Python SDK
Ansibleモジュールをインストールするには、 Dell EMC OpenManagePythonSDKがシステムにインストールされている必要があります。だからここにそれを行うためのいくつかのステップがあります:

git clone https://github.com/dell/omsdk.git
sudo apt-get install python-pip
cd omsdk
sudo -H pip install -r requirements-python2x.txt # use requirements-python3x.txt if using Python 3
sh build.sh 1.2 345
cd dist
sudo -H pip install omsdk-1.2.345-py2.py3-none-any.whl
最新バージョンをインストールするには、プロジェクトのGitHubページを参照してください

Ansibleモジュール
プレイブックを機能させるには、 Dell-EMC-Ansible-Modules-for-iDRACをインストールする必要があります。

git clone https://github.com/dell/Dell-EMC-Ansible-Modules-for-iDRAC.git
cd Dell-EMC-Ansible-Modules-for-iDRAC
sudo -H python install.py
NFSサーバー
NFS共有は、iDRACが最新のファームウェアバージョンにアクセスし、それらをマシンにインストールするために使用されます。また、iDRACがサーバー構成プロファイルファイルを作成するために使用し、Ansibleがこれらのファイルを変更するために使用します。

 

外部NFSボリュームを使用できますが、前述の理由により、iDRACからアクセス可能であり、Ansibleを実行するサーバーにローカルにマウントする必要があります。

NFS共有を作成するには、次のように進めることができます。

 

これはNFSサーバーの完全に安全な構成ではありません。POC専用に使用してください

sudo apt-get install rpcbind nfs-kernel-server

 

次に、NFS共有用のフォルダーを作成します。

mkdir -p /opt/dell/dellemcrepositorymanager/export
chmod 777 /opt/dell/dellemcrepositorymanager/export

 

次に、/ etc / exportsファイルを変更して共有を追加します(IPをネットワークからのものに適合させます):

/opt/dell/dellemcrepositorymanager/export 10.220.0.0/25(rw,fsid=0,insecure,no_subtree_check,async)

 

共有を利用できるようにするには、サービスを再起動する必要があります。

service nfs-kernel-server restart
に変更し、NFSサーバーのIPアドレスと共有名に関する情報を入力した後、、のボタンをTest network connection使用してiDRACからのアクセスを確認できます。MaintenanceSystem UpdateManual UpdateLocation TypeNetwork Share

 

 

NFS共有へのDUPのエクスポート
Dellリポジトリマネージャをインストールしたら、リポジトリを使用して設定し、DellEMCアップデートパッケージをNFS共有にエクスポートする必要があります。これは、次のコマンドを使用して実行できます。

 

まず、リポジトリを作成しましょう。サーバーでフィルタリングしないと、数百ギガバイトがダウンロードされることに注意してください。

$ drm --create --repository=Dell --inputplatformlist="R640,R740xd"

Creating repository Dell
Job Submitted for repository creation
次のコマンドでステータスを確認できます。

drm --repository=Dell --details

Listing version information for: Dell
Version   Size      Date Created
-------   ----      ------------
1.00      5.63 GB   11/23/18 12:24 A.M

 

ファームウェアは/var/ dell / drm /store/にダウンロードされます

 

次のコマンドを使用して進行状況を確認できます。

 

drm --list=job

Listing Jobs...


Name                                                          Status            Job Type              Next Execution date/time   Last Execution date/time
----                                                          ------            --------              ------------------------   ------------------------
Download_11/23/2018_11:04                                     SUCCESS           DOWNLOAD COMPONENTS   NA                         11/23/18 11:11 A.M
Plugin Download- Dell EMC Server Update Utility x64 Plug-in   SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:12 A.M
Plugin Download- Dell EMC Bootable ISO Plug-in                SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:27 A.M
Plugin Download- Dell EMC System Update(BIN)                  SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:28 A.M
Plugin Download- Dell EMC System Update(EXE)                  SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:28 A.M

 

すべてがダウンロードされたら、ファームウェアバイナリとCatalog.xmlファイルをエクスポートしましょう。Catalog.xmlファイルにはファームウェアに関する情報が含まれており、iDRACがインストールする更新を決定するために使用されます。

 

drm --deployment-type=export --repository=Dell:1.00 --location=/opt/dell/dellemcrepositorymanager/export

Job Submitted for export

 

場所は外部NFSにすることができます。この場合、--locationコマンドで指定してローカルにマウントする必要があります。

 

もう一度、次のコマンドを使用して進行状況を確認しましょう。

 

drm --list=job

Listing Jobs...


Name                                                          Status            Job Type              Next Execution date/time   Last Execution date/time
----                                                          ------            --------              ------------------------   ------------------------
Download_11/23/2018_11:04                                     SUCCESS           DOWNLOAD COMPONENTS   NA                         11/23/18 11:11 A.M
Plugin Download- Dell EMC Server Update Utility x64 Plug-in   SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:12 A.M
Plugin Download- Dell EMC Bootable ISO Plug-in                SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:27 A.M
Plugin Download- Dell EMC System Update(BIN)                  SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:28 A.M
Plugin Download- Dell EMC System Update(EXE)                  SUCCESS           PLUGIN_UPDATE         NA                         11/23/18 11:28 A.M
Export_11/23/2018_12:42                                       RUNNING           SHARE                 NA                         NA
SUCCESSAnsibleを実行する前に、ステータスが取得されるのを待ちましょう。

 

Ansibleプレイブック
Ansibleプレイブックは次のようになります。

---
- hosts: hosts
  connection: local
  name: Update Firmware Inventory
  gather_facts: False

  tasks:
  - name: Update Firmware Inventory
    dellemc_install_firmware:
       idrac_ip: "{{ inveotry_hostname }}"
       idrac_user: "ansible"
       idrac_pwd: "*******"
       share_name: "10.220.0.10:/opt/dell/dellemcrepositorymanager/export"
       share_mnt: "/opt/dell/dellemcrepositorymanager/export"
       catalog_file_name: "Dell_1.00_Catalog.xml"
       reboot: True
       job_wait: True
    tags :
       - installfirmware

 

share_mntオプションは、ローカルサーバー上のローカルNFSエクスポートディレクトリ、または使用される外部NFSボリュームのローカルマウントのいずれかです。サーバーによって生成され、NFS共有にコピーされるサーバー構成プロファイルファイルとして、ローカルでアクセスできる必要があります。

 

関連ドキュメントで指定されているように、他のオプションを提供できます

 

インベントリファイルも作成しましょう:

 

# inventory file
---
[hosts]
ipmi-01.example.com
ipmi-02.example.com


Ansibleを実行しています!
エクスポートが正常に完了すると、プレイブックを実行できます。

reboot: Trueプレイブックで指定したように、必要に応じてホストを再起動して更新を適用することに注意してください

 

sudo -H ansible-playbook dellemc_install_firmware.yml -i inventory -t installfirmware -vvvvv

 

アップデートの読み込みと適用には非常に長い時間がかかり、最大1時間かかる場合があります。また、更新がiDRACログとジョブキューに表示されるまで待つ必要があります。

 

この長い待機の後、これが私たちが見ることができるものです:

 

changed: [ipmi-01.example.com] => {
    "changed": true,
    "invocation": {
        "module_args": {
            "catalog_file_name": "Dell_1.00_Catalog.xml",
            "idrac_ip": "ipmi-01.example.com",
            "idrac_port": 443,
            "idrac_pwd": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
            "idrac_user": "root",
            "job_wait": true,
            "reboot": true,
            "share_mnt": "/opt/dell/dellemcrepositorymanager/export",
            "share_name": "10.220.0.10:/opt/dell/dellemcrepositorymanager/export",
            "share_pwd": null,
            "share_user": null
        }
    },
    "msg": {
        "@odata.context": "/redfish/v1/$metadata#DellJob.DellJob",
        "@odata.id": "/redfish/v1/Managers/iDRAC.Embedded.1/Jobs/JID_430165520584",
        "@odata.type": "#DellJob.v1_0_0.DellJob",
        "CompletionTime": "2018-11-23T18:25:58",
        "Description": "Job Instance",
        "EndTime": null,
        "Id": "JID_430165520584",
        "JobState": "Completed",
        "JobType": "ImportConfiguration",
        "Message": "Successfully imported and applied Server Configuration Profile.",
        "MessageArgs": [],
        "MessageId": "SYS053",
        "Name": "Import Configuration",
        "PercentComplete": 100,
        "StartTime": "TIME_NOW",
        "Status": "Success",
        "TargetSettingsURI": null,
        "retval": true
    }
}

 

===

 

NSFWindowsでも構築できます

 

バッファロー WiFi 無線LAN ルーター WSR-1166DHPL2/N 11ac ac1200 866 300Mbps IPv6対応 デュアルバンド 3LDK 2階建向け 簡易パッケージ テレワーク 日本メーカー 【 iPhone 13 / 12 / iPhone SE(第二世代) / Nintendo Switch メーカー動作確認済み】