DELL PowerEdgeとHPE ProLiantでUbuntuを動かす場合の管理ソフト


2024/02/27追記:HPE ProLiantについては別記事「hpe ProLiantをLinuxで使う場合にインストールするService Pack for ProLiantについて」参照

RHELと同じようにUbuntuの場合にも管理系ソフトウェアが存在しているので、そのメモ

なお、「DELL PowerEdgeサーバにLinuxを入れる際の追加ソフト」にて実際にインストールした例を掲載中

DELL EMC OpenManage Ubuntu & Debian Repositories
srvadmin-all — Install all OMSA components
srvadmin-base * — Install only base OMSA, no web server
srvadmin-idrac * — Install components to manage iDRAC
srvadmin-idrac7 * — Install Racadm for iDRAC7
srvadmin-idracadm8 — Install Racadm for iDRAC8 and above
srvadmin-webserver * — Install Web Interface
srvadmin-storageservices * — Install RAID Management
syscfg* — Install SysCfg
raidcfg* — Install RaidCfg
dcism — Install iDRAC Service Module

DELL EMC System Update (DSU)
UbuntuではDELL PowerEdge 12G,13Gサーバのfirmwareアップデートのみサポート。

HPE Management Component Pack
hp-health HPE System Health Application and Command line Utilities (Gen9 and earlier)
hponcfg HPE RILOE II/iLO online configuration utility
amsd HPE Agentless Management Service (Gen10 only)
hp-ams HPE Agentless Management Service (Gen9 and earlier)
hp-snmp-agents Insight Management SNMP Agents for HPE ProLiant Systems (Gen9 and earlier)
hpsmh HPE System Management Homepage (Gen9 and earlier)
hp-smh-templates HPE System Management Homepage Templates (Gen9 and earlier)
ssacli HPE Command Line Smart Storage Administration Utility
ssaducli HPE Command Line Smart Storage Administration Diagnostics
ssa HPE Array Smart Storage Administration Service

RHEL/CentOS 7でphp 7.xを使う方法(2023/10/30更新)


RHEL7 / CentOS7のphpは5.4.16である。

新しいバージョンのphpを使う場合はソースからコンパイルして導入するか、3rdレポジトリを利用する必要がある。

有名なのはremiだが、Oracle Linuxにもあった。

うちはCentOS7だけど、 Oracle Linuxのol7_developer_php72 ol7_developer_php74レポジトリを追加する形で使っている。

1. remi-php?? レポジトリ

標準のphpを新しいバージョンで置き換える「remi-php??」レポジトリ(こちらはphpコマンドが置き換わる)と、標準のPHPはそのままに、そして後述のSCLとも共存できる「remi-safe」レポジトリ(こちらはphp73コマンドなどになる)というものもある。

意外なことに2022年秋リリース予定のphp 8.2についてもRC版で php 8.3も提供され始めた

Web: https://rpms.remirepo.net/enterprise/7/
提供中PHPバージョン: 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6
EOLしたもの: 5.5, 5.4

2. PHP for Oracle Linux

Web: http://yum.oracle.com/oracle-linux-php.html
PHPバージョン: 7.4, 7.2, 7.1, 7.0
EOLしたもの: 7.2, 7.1, 7.0

php v7.2に置き換える場合の手順

# yum install yum-utils
# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle https://yum.oracle.com/RPM-GPG-KEY-oracle-ol7
# curl -o /etc/yum.repos.d/public-yum-ol7.repo https://yum.oracle.com/public-yum-ol7.repo
# yum-config-manager --disable ol7_\*
# yum-config-manager --enable ol7_developer_php72
# 「yum install php」もしくは「yum update」で既存phpパッケージをphp72にアップデート
# systemctl restart httpd

上記でdisableを忘れるとOracle Linuxにアップデートしてしまうかもしれないので注意すること。また、先にyum-utilsをインストールしておくこと

2019/09/30 追記

Oracle Linux(Oracle Cloud Always Freeインスタンスなど)を使っている場合は「yum install oracle-php-release-el7」を実行することで、PHP拡張レポジトリが導入されます。導入直後は「ol7_developer_php72」が有効化されているので、上記と同じ「yum-config-manager –disable ol7_*」とか「yum-config-manager –enable ol7_developer_php72」で有効/無効を切り替えてください。

2020/07/20 追記 、2020/09/07修正

ol7_developer_php74は上記の http://yum.oracle.com/public-yum-ol7.repo には含まれてないようです。(Oracle Linuxで提供されるoracle-php-releaseパッケージに分離している)

また、Oralcleのphp 7.4はol7_addons収録のoniguruma-5.9.5が要求されます。 epel収録のoniguruma-6.8.2 がインストールされていると「Requires: libonig.so.2()(64bit)」というエラーになりますので、注意が必要です。

これを考慮して /etc/yum.repos.d/ol7_developer_php74.repo を書くと以下の様になる。

[ol7_developer_php74]
name=Oracle Linux $releasever PHP 7.4 Packages for Development and test ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/developer/php74/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

[ol7_addons]
name=Oracle Linux $releasever Add ons ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/addons/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

そしてepelのonigurumaを使用しないよう、 epelに関する設定の中に「exclude=oniguruma jq」を追加しておく必要がある。(epelのjqパッケージはepelのonigurumaを要求しているので一緒に除外する必要がある)

/etc/yum.repos.d/epel.repo の該当部分だけ抜き出したもの

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch&infra=$infra&content=$contentdir
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
exclude=oniguruma jq

3. webtatic

2019/10/26の更新が最後になっており、現状使うべきでは無い。

Web: https://webtatic.com/
提供中PHPバージョン: 7.2, 7.1
EOLしたもの:7.0, 5.6

4. Software Collection (SCL)

CentOSのwikiに「Using PHP 7.x on CentOS 7.4」という記載があった。
CentOS Software Collectionレポジトリにあるという。

確認してみると、「rh-php70~」「rh-php71~」「rh-php72~」と標準のパッケージ名とは別に設定されているものがあった。また、rh-phpにないものを補完するための「sclo-php~」というのもあった。

PHP 7.2 by Software Collections」とRedHat DEVELOPER BLOGの「PHP Configuration Tips」に参考になる記述があるが、FastCGIを使うための装備はあるが、mod_phpを使うための装備はない。

Remiさんとこのblog「PHP 7.2 as Software Collection」にSCLとRemiレポジトリの違いが書かれている。また、複数バージョンのPHPを1サーバで共存させる場合の手法「My PHP Workstation」も公開されている。

# yum -y install centos-release-scl.noarch
<略>
================================================================================
 Package                    アーキテクチャー
                                        バージョン            リポジトリー
                                                                           容量
================================================================================
インストール中:
 centos-release-scl         noarch      2-2.el7.centos        extras       12 k
依存性関連でのインストールをします:
 centos-release-scl-rh      noarch      2-2.el7.centos        extras       12 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+1 個の依存関係のパッケージ)

総ダウンロード容量: 24 k
インストール容量: 39 k
<略>
# yum search rh-php
<略>
============================= N/S matched: rh-php ==============================
rh-php70-runtime.x86_64 : Package that handles rh-php70 Software Collection.
rh-php70-scldevel.x86_64 : Package shipping development files for rh-php70
rh-php71-runtime.x86_64 : Package that handles rh-php71 Software Collection.
rh-php71-scldevel.x86_64 : Package shipping development files for rh-php71
rh-php72-runtime.x86_64 : Package that handles rh-php72 Software Collection.
rh-php72-scldevel.x86_64 : Package shipping development files for rh-php72
rh-php70.x86_64 : Package that installs PHP 7.0
rh-php70-build.x86_64 : Package shipping basic build configuration
rh-php70-php.x86_64 : PHP scripting language for creating dynamic web sites
rh-php70-php-bcmath.x86_64 : A module for PHP applications for using the bcmath
                           : library
rh-php70-php-cli.x86_64 : Command-line interface for PHP
rh-php70-php-common.x86_64 : Common files for PHP
rh-php70-php-dba.x86_64 : A database abstraction layer module for PHP
                        : applications
rh-php70-php-dbg.x86_64 : The interactive PHP debugger
rh-php70-php-devel.x86_64 : Files needed for building PHP extensions
rh-php70-php-embedded.x86_64 : PHP library for embedding in applications
rh-php70-php-enchant.x86_64 : Enchant spelling extension for PHP applications
rh-php70-php-fpm.x86_64 : PHP FastCGI Process Manager
rh-php70-php-gd.x86_64 : A module for PHP applications for using the gd graphics
                       : library
rh-php70-php-gmp.x86_64 : A module for PHP applications for using the GNU MP
                        : library
rh-php70-php-intl.x86_64 : Internationalization extension for PHP applications
rh-php70-php-json.x86_64 : JavaScript Object Notation extension for PHP
rh-php70-php-ldap.x86_64 : A module for PHP applications that use LDAP
rh-php70-php-mbstring.x86_64 : A module for PHP applications which need
                             : multi-byte string handling
rh-php70-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
                            : databases
rh-php70-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
rh-php70-php-opcache.x86_64 : The Zend OPcache
rh-php70-php-pdo.x86_64 : A database access abstraction module for PHP
                        : applications
rh-php70-php-pear.noarch : PHP Extension and Application Repository framework
rh-php70-php-pgsql.x86_64 : A PostgreSQL database module for PHP
rh-php70-php-process.x86_64 : Modules for PHP script using system process
                            : interfaces
rh-php70-php-pspell.x86_64 : A module for PHP applications for using pspell
                           : interfaces
rh-php70-php-recode.x86_64 : A module for PHP applications for using the recode
                           : library
rh-php70-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed
                         : devices
rh-php70-php-soap.x86_64 : A module for PHP applications that use the SOAP
                         : protocol
rh-php70-php-xml.x86_64 : A module for PHP applications which use XML
rh-php70-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
                           : protocol
rh-php70-php-zip.x86_64 : ZIP archive management extension for PHP
rh-php71.x86_64 : Package that installs PHP 7.1
rh-php71-build.x86_64 : Package shipping basic build configuration
rh-php71-php.x86_64 : PHP scripting language for creating dynamic web sites
rh-php71-php-bcmath.x86_64 : A module for PHP applications for using the bcmath
                           : library
rh-php71-php-cli.x86_64 : Command-line interface for PHP
rh-php71-php-common.x86_64 : Common files for PHP
rh-php71-php-dba.x86_64 : A database abstraction layer module for PHP
                        : applications
rh-php71-php-dbg.x86_64 : The interactive PHP debugger
rh-php71-php-devel.x86_64 : Files needed for building PHP extensions
rh-php71-php-embedded.x86_64 : PHP library for embedding in applications
rh-php71-php-enchant.x86_64 : Enchant spelling extension for PHP applications
rh-php71-php-fpm.x86_64 : PHP FastCGI Process Manager
rh-php71-php-gd.x86_64 : A module for PHP applications for using the gd graphics
                       : library
rh-php71-php-gmp.x86_64 : A module for PHP applications for using the GNU MP
                        : library
rh-php71-php-intl.x86_64 : Internationalization extension for PHP applications
rh-php71-php-json.x86_64 : JavaScript Object Notation extension for PHP
rh-php71-php-ldap.x86_64 : A module for PHP applications that use LDAP
rh-php71-php-mbstring.x86_64 : A module for PHP applications which need
                             : multi-byte string handling
rh-php71-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
                            : databases
rh-php71-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
rh-php71-php-opcache.x86_64 : The Zend OPcache
rh-php71-php-pdo.x86_64 : A database access abstraction module for PHP
                        : applications
rh-php71-php-pear.noarch : PHP Extension and Application Repository framework
rh-php71-php-pecl-apcu.x86_64 : APC User Cache
rh-php71-php-pecl-apcu-devel.x86_64 : APCu developer files (header)
rh-php71-php-pgsql.x86_64 : A PostgreSQL database module for PHP
rh-php71-php-process.x86_64 : Modules for PHP script using system process
                            : interfaces
rh-php71-php-pspell.x86_64 : A module for PHP applications for using pspell
                           : interfaces
rh-php71-php-recode.x86_64 : A module for PHP applications for using the recode
                           : library
rh-php71-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed
                         : devices
rh-php71-php-soap.x86_64 : A module for PHP applications that use the SOAP
                         : protocol
rh-php71-php-xml.x86_64 : A module for PHP applications which use XML
rh-php71-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
                           : protocol
rh-php71-php-zip.x86_64 : ZIP archive management extension for PHP
rh-php72.x86_64 : Package that installs PHP 7.2
rh-php72-build.x86_64 : Package shipping basic build configuration
rh-php72-php.x86_64 : PHP scripting language for creating dynamic web sites
rh-php72-php-bcmath.x86_64 : A module for PHP applications for using the bcmath
                           : library
rh-php72-php-cli.x86_64 : Command-line interface for PHP
rh-php72-php-common.x86_64 : Common files for PHP
rh-php72-php-dba.x86_64 : A database abstraction layer module for PHP
                        : applications
rh-php72-php-dbg.x86_64 : The interactive PHP debugger
rh-php72-php-devel.x86_64 : Files needed for building PHP extensions
rh-php72-php-embedded.x86_64 : PHP library for embedding in applications
rh-php72-php-enchant.x86_64 : Enchant spelling extension for PHP applications
rh-php72-php-fpm.x86_64 : PHP FastCGI Process Manager
rh-php72-php-gd.x86_64 : A module for PHP applications for using the gd graphics
                       : library
rh-php72-php-gmp.x86_64 : A module for PHP applications for using the GNU MP
                        : library
rh-php72-php-intl.x86_64 : Internationalization extension for PHP applications
rh-php72-php-json.x86_64 : JavaScript Object Notation extension for PHP
rh-php72-php-ldap.x86_64 : A module for PHP applications that use LDAP
rh-php72-php-mbstring.x86_64 : A module for PHP applications which need
                             : multi-byte string handling
rh-php72-php-mysqlnd.x86_64 : A module for PHP applications that use MySQL
                            : databases
rh-php72-php-odbc.x86_64 : A module for PHP applications that use ODBC databases
rh-php72-php-opcache.x86_64 : The Zend OPcache
rh-php72-php-pdo.x86_64 : A database access abstraction module for PHP
                        : applications
rh-php72-php-pear.noarch : PHP Extension and Application Repository framework
rh-php72-php-pecl-apcu.x86_64 : APC User Cache
rh-php72-php-pecl-apcu-devel.x86_64 : APCu developer files (header)
rh-php72-php-pgsql.x86_64 : A PostgreSQL database module for PHP
rh-php72-php-process.x86_64 : Modules for PHP script using system process
                            : interfaces
rh-php72-php-pspell.x86_64 : A module for PHP applications for using pspell
                           : interfaces
rh-php72-php-recode.x86_64 : A module for PHP applications for using the recode
                           : library
rh-php72-php-snmp.x86_64 : A module for PHP applications that query SNMP-managed
                         : devices
rh-php72-php-soap.x86_64 : A module for PHP applications that use the SOAP
                         : protocol
rh-php72-php-xml.x86_64 : A module for PHP applications which use XML
rh-php72-php-xmlrpc.x86_64 : A module for PHP applications which use the XML-RPC
                           : protocol
rh-php72-php-zip.x86_64 : ZIP archive management extension for PHP

  Name and summary matches only, use "search all" for everything.
#

vpopmail代替としてのpostfix+dovecotメールサーバ環境iRedMail



vpopmail+qmailを使って複数ドメインのメールサーバを運用していた。
さすがにきつくなってきたので乗り換え先をいろいろ検討していた。

・いままで使っていたパスワードが継続できること
 (元の平文パスワードは不明で、MySQL上のvpopmailにあるパスワード文字列を引き継げること)
・POP3 before SMTPは廃止する
・とりあえず20ドメインぐらいあり、各ドメインのユーザは20個程度
・Maildir形式のメールデータは移行する
・Web UIでメールアカウントを作成できること
・無償版の範囲であること

いろいろ探した結果、「iRedMail」を乗り換え先として選定した。

vpopmailとiRedMail無償版を比較した場合、機能が足らない点は以下である。
・各ドメイン内の管理者ユーザが使用できない
  全体管理者と一般ユーザの2種類のみが使用できる
  ドメイン内の管理者ユーザは有償版の機能
・エイリアスはWeb UIで管理できない
  有償版での機能
  手動でMySQL DB上に設定を入れることでエイリアスを使用することはできる
  (Set mail forwarding with SQL command line)
・メーリングリストをWeb UIで管理できない
  有償版での機能
  mlmmjベースであるため手動で設定することはできる
・アップデートが面倒
  無償版だと手動でいろいろ設定しつつアップデートを行う必要がある。

ドメイン内管理者が使用できないというところが痛いが、必須要素ではないため、目をつぶった。

新しい利点として
・Exchange対応
  POP3/IMAPだけでなく「SOGo」というExchange互換サーバ機能を利用できる
  カレンダー(CalDAV)、住所録(CardDAV)も対応
・WebMailが2種類使える
  「Roundcube」と「SOGo」の2種類のWebMailが使える
・SMTP AUTH対応
・LetsEncryptによるSSL対応
 「Use a SSL certificate
・DKIM対応
 「Sign DKIM signature on outgoing emails for new mail domain

設定は、初期インストール直後のCentOS 7/Ubuntuなどで「iRedMail」公式からファイルをダウンロードして、インストールスクリプトを実行するだけで良い。

インストールスクリプト実行完了後に、初期の設定パスワードなどを記載したファイルを出力するので、どこか別の場所に保存しておく必要がある。

インストール後、「postfix/dovecotメールサーバでWindows Live Mail 2012がエラーになる」に記載した設定は行った方が良い。

また、今後、パッケージのアップデートを行う場合は「php.iniを変更せずにdisable_functionsの内容を無効化してroundcubeのアップグレードスクリプトを動作させる方法」の知識が必要になる。

なお、実際に切り替えてみると、Windows Live Mail 2012ユーザでは問題が発生した。
Windows Live Mail 2012の場合、同じパスワードであってもパスワードの設定をやり直さなければ認証エラーとなる仕様であるようだ。

php.iniを変更せずにdisable_functionsの内容を無効化してroundcubeのアップグレードスクリプトを動作させる方法


/etc/php.iniでdisable_functionsに「system」を含めている場合、roundcubeのアップグレードを行う時に「./bin/installto.sh /var/www/roundcube」を実行すると、エラーとなってしまう。

# ./bin/installto.sh /var/www/roundcubemail
Error 500: PHP system() function is required. Check disable_functions in php.ini.
#

これは、/etc/php.ini内の「disable_functions 」設定で「system」が記載されていることにより使用できないために発生している。

/etc/php.iniの disable_functionsを修正してしまえば動くようになりますが、アップデートのたびに変更して、アップデートが終わったら元に戻すのは面倒です。

/etc/php.iniを変更するのではなく、一時的に回避するための手法を検討した結果・・・

「php -d disable_functions=”” ./bin/installto.sh /var/www/roundcubemail」と実行することで、disable_functionsの設定に関して無視して実行することができました。

# php -d disable_functions="" ./bin/installto.sh /var/www/roundcubemail
<略>

これで、/etc/php.iniを編集しなくともアップデートができるようになりました。

+メッセージで使われるRCSと旧来のSMS/MMSの使い分け


NTTドコモ, au, ソフトバンクが共通で画像添付のメッセージをやりとりできるサービスを+メッセージとして開始する、というリリースが出た。

これは、GSMAという団体が定義しているRich Communication Services(RCS)という仕様に基づいたもので、すでにAndroidはGoogleが使えるソフト(メッセージ)を出しているし、iOSもiMessageが対応しているにもかかわらず、別のソフトで対応する方針らしい。

なんでだろう?と調べて見ると、日本ならではの事情らしきものが見えた。

まず、携帯電話同士のメッセージのやりとりには、短い文章のみを送れるSMSと、画像などを添付して送れるMMSの2種類がある。
これらはパケット課金ではなく、1通いくら、という形でやりとりされている。
日本では、SMSは3社とも対応しているが、MMSは一部しか対応していない。

RCSの仕様書を読んでいくと、おもしろいことが分かった。
それは、「メッセージの送信者と受信者の状況」と「オフライン受信の可否」と「ファイルを添付するか否か」によって、SMS,RCS,MMSを自動選択する、という仕組みがある、ということである。

joyn Crane Product Definition Document Version 3.0
(この記事は上記のRCS実装の1つであるjoynを元に書いていたが、その後、RCS Universal Profileに関するドキュメントも公開された→「RCS Universal Profile Service Definition Document Version 2.2」若干記述が変わっているところがあるものの概ね同じです)

なお、pdfは「RCS Documentation」にて[Specifications]→[Universal Profile Service]でダウンロードすることができます。

さて、仕様書からSMS,RCS,MMSの送受信の動作に関して表で説明されている箇所を抜き出して見ると・・・

その1:オフライン受信を許可しない設定時にメッセージのみを送る場合

その2:オフライン受信を許可する設定時にメッセージのみを送る場合

その3:オフライン受信を許可しない設定時にファイル添付でメッセージを送る場合

その4:オフライン受信を許可する設定時にファイル添付でメッセージを送る場合

ちょっとした条件の違いで何を使うかが変わっている。

これを日本でそのまま使ってしまうと、パケット課金のRCSで送ろうと思ったけど、実はSMSやMMSで送られちゃいました、ということが起こりえる。
そうすると1通当たりの課金になってしまうため、たくさんメッセージを送るとすごいことになってしまう。

こういった課金事故を減らすために必ずRCSでメッセージを送信するような仕組みにしたソフトを使わせようとしているのではないか?

という印象を受けた