オペレーティングシステムの上にあるソフトウェアの構成管理(CM)ツールを使用してカーネルのアップグレードを完了できますか?

オペレーティングシステムの上にあるソフトウェアの構成管理(CM)ツールを使用してカーネルのアップグレードを完了できますか?

私は主にDebianベースのさまざまなLinuxディストリビューションを使用しています(カーネル/シェルまたは内部ユーティリティ(ディストリビューションに付属のユーティリティ)は変更しません)。通常、これらのシステムにはApache、MySQL、PHPがインストールされています。これは行いません)何も変更しません。

私はどのシステムでもカーネルアップグレードを行ったことがありません。そのような必要性があるか、それを要求するローカル電子メールを受け取った記憶がないからです。

私は構成管理(CM)ツール(Ansibleなど)がオーケストレーション、デプロイに使用されていることを知っています。 」が可能です。 ?カーネルに追加してカーネルのアップグレードを自動化しますか?

これが本質的に基本システム(配布版自体、カーネル、シェル、内部ユーティリティがまったく変更されていないシステム)でベストプラクティスだと思ったら共有してください。

答え1

ほとんどの最新のLinuxディストリビューションでは、カーネルは他のソフトウェア/ライブラリと同様にパッケージとして配布されます。したがって、Ansibleを例として使用すると、次のことができます。

- name: Ensure that latest kernel is installed
  apt:
    name: linux-image-amd64
    state: latest
    update_cache: yes
  notify: reboot_server # You would need a corresponding handler that reboots the system

これにより、ゲームを実行するたびに最新のカーネルパッケージがインストールされます。

ただし、このカーネルは、次の点で他のほとんどのパッケージとは異なります。

  • 複数のバージョンを同時にインストールできるため、以前のバージョンのアンインストールを管理する必要があります。次の理由により、この操作を必ずしも自動的に実行する必要はありません。
  • 新しくインストールされたカーネルを有効にするにはシステムを再起動する必要があるため、これをビジネスプロセスPOVで技術的に管理する必要があります。これは完全にリスクのない作業ではないため、システムアーキテクチャの特性によって異なり、通常は単純な自動化に適した作業とは見なされません。

再起動せずに新しくインストールされたカーネルを有効にする方法がありますが、それでも主流ではありません。

カーネルを更新する必要があるかどうかは一般的にそうです。古いソフトウェアによって引き起こされる重大なセキュリティエラーのリストがたくさんあるため(そして重要なエラーは氷山の一部にすぎないかもしれません)、すべてのソフトウェアを最新の状態に保つ必要があります。最近、Meltdown と Spectre の脆弱性は、カーネルが特別なものではなく、他のソフトウェアパッケージと同様に最新の状態に保たれることを強調しています。

効果的なパッチ適用戦略を維持するには、このプロセス中に発生する可能性のあるエラーとそうでない場合に発生する可能性のあるエラーのバランスを考慮して慎重に検討する必要があります。自動化は間違いなく役に立つかもしれませんが、すべての環境が異なるため、要件を確認して自分の状況にどれだけ合うかを評価する必要があります。

どちらにしても、次のように言うと:

(デプロイメント独自のシステム - カーネル、シェル、および内部ユーティリティはまったく変更されていません。)

あなたが言うのは、一度インストールすると、これらの要素を再訪問したり、パッチ/更新/アップグレードしたりすることができないため、システムが損傷する危険性が大幅に増加することです。

答え2

はい、OSカーネルはファームウェア(BIOSやブートローダなど)ではなくソフトウェアなので、シェルで変更でき、CMは特定の方法(AnsibleのYAML言語など)でシェルを実装して変更できます。

関連情報