GNU/Linux >> Linux の 問題 >  >> Linux

多くのホストを yum update / aptitude safe-upgrade する方法は?

実際、Puppet は単なる構成管理ユーティリティであり、自動化ツールではありません。適切な自動化が必要な場合は、サードパーティのツールとして始まり、現在は puppetlabs の傘下にある mcollective を検討する必要があります。 mcollective を使用したことがないので、これがどれだけうまく処理されるかについてはわかりませんが、任意のタスク実行メカニズムとして最適に機能することは理解していますが、定期的に繰り返されるタスクを実行しようとするとうまく機能しません。 .

これを行う最善の方法は、更新するスクリプトとプロセスを開発し、パペットを使用して構成をプッシュすることだと思います。ですから、次の質問を自問してください。

<オール>
  • どのくらいの頻度でマシンを更新しますか?
  • 新しいカーネルがインストールされたときに自動的に再起動するようにしますか?それとも単に通知が必要ですか?
  • 更新中に何か特別なコマンドを実行する必要がありますか?
  • 更新をずらすべき十分な数のシステムがありますか?
  • 構成の構築を開始し、これらの質問に答えていくと、特定の環境からさらに多くの情報が得られる可能性があります。具体的な例として、私が行っていることは次のとおりです:

    • ほとんどのシステム アップデートは、cron ジョブを介して 1 週間に 1 回行われます。目的と環境によっては、より頻繁に使用されるシステムもあります。
    • ほとんどのシステムは自動的に再起動しますが、特定のシステム (目的によって異なります) は、再起動のリマインダーを電子メールで送信します。これは、/boot で最も高いバージョン番号の vmlinuz ファイルをチェックする cron ジョブによって処理されます。 uname -r の出力に対して
    • RHEL 5.3 から 5.4 への glibc の更新でやけどを負った後、yum、glibc、その他すべてを更新するようにしています。
    • これはすべて cron ジョブによって実行されるため、各 yum 実行の間にランダムな時間でスリープします。各ホストが完了するまでに 5 分から 45 分かかることがありますが、これは負荷を分散するのに妥当な作業です。

    これはすべて、/etc/cron.d に保存されている 2 つの cron エントリ (更新とカーネル チェック) の 2 つのファイルに含まれています。 および更新スクリプト。私はこれを、更新またはカーネル チェックを実行し、再起動するかどうかを実行するコマンド ライン引数を受け取る、ますます乱雑に見えるシェル スクリプトを使用して実行しています。その後、Puppet はこれら 2 つのファイルを管理します。 rpm ベースと dpkg ベースの両方のシステムを扱っているので、おそらく 2 つのスクリプトを作成するか、別々の do_update を作成します。 2 つのフレーバーの機能があり、それぞれ異なるコマンド ライン スイッチで呼び出されます。次に、 operatingsystem をチェックして、適切なスクリプトをプッシュすることができます ファイル宣言でファクトを使用するか、cron エントリをテンプレート化し、同じファクトを使用して使用するスイッチを決定します。

    十分にテストされたスクリプトを使用すると、この方法は非常にうまく機能します。実際、このセットアップは数年間、何百ものシステムを処理するために使用されてきました。カーネル パッケージャがマイナー バージョンのレベルをファイルにどんどん追加し始め、比較ルーチンがチョークするときに、時折問題が発生することがあります。


    パペット自体は、このジョブのツールではありません。 Puppetlabs には、Capistrano、Fabric、および Func に似た MCollective という別のツールがあります。

    Packages Agent と呼ばれる MCollecive エージェントがあり、他の種類のパッケージ管理の中でも特に yum 更新を行うことができます。

    インフラストラクチャの一部で Ubuntu が実行されているとおっしゃいました。 unattended-upgrades パッケージを調べる必要があるかもしれません。


    ホストが RHEL ホストである場合、RHN Satellite を調べることができます。それ以外の場合、Spacewalk は一見の価値があるかもしれません ** (以下の注を参照)。これらは、アップストリーム パッケージ リポジトリのローカル コピーを管理し、RHN Satellite サーバーに登録されたシステムの管理を容易にするように設計されています。特定の時間にパッケージが更新されるようにスケジュールできます。または、OSAD を有効にしている場合は、RHN Satellite/Spacewalk Web GUI で近日中に更新をスケジュールできます。

    一部の人々は以下に puppet を使用して投稿しています。Puppet を RHN Satellite と統合する方法について書かれたブログや Web ページがいくつかあります。

    代わりに....

    最終的に RHN Satellite に置き換わる新しいプロジェクトに関心がある場合は、Katello Project を参照してください。 Katello には、Red Hat の CloudForms 製品の一部である多くのプロジェクトが含まれており、RHN Satellite の最終的な置き換えのアップストリームであると言われています。実際、Katello は Foreman を使用して Puppet を統合します。長期的に見ると、Katello は Spacewalk よりも検討する価値があります (ただし、サブスクリプション/サポートのため、まだ RHN Satellite ではありません)。

    ** 簡単にするために、私の投稿では RHN Satellite と Spacewalk の両方を RHN Satellite と呼んでいます。本当の違いは、RHEL システムを持っているかどうかです。その場合、サポートされている方法で RHN からダウンロードできる RHN Satellite が必要になります。Spacewalk は、RHEL または Fedora のリビルドを使用するユーザー向けです (私は Spacewalk を理解しています)。も Debian をサポートしている可能性がありますが、個人的にはこれについてあまり知りません。) したがって、情報を検索するときは、Spacewalk や RHN Satellite を検索する必要があるかもしれません


    Linux
    1. Yumリポジトリを追加する方法

    2. CentOSでyumキャッシュをクリーンアップする方法は?

    3. CentOS / RHEL 6,7 :yum 履歴を使用して yum 更新をロールバックする方法

    1. AnsiblePlaybookの作成方法

    2. Amazon Linux で PHP をバージョン 5.4 に yum 更新する方法を教えてください。

    3. パッケージがどの yum リポジトリからインストールされたかを知る方法は?

    1. phpMyAdminで複数のホストを追加する方法

    2. DebianLinuxをアップデートする方法

    3. FOG画像の更新方法