thorian93.upgrade

Ansibleロール: アップグレード


メンテナンスされていません!コレクションに移動!

このロールは私のメインコレクションに移動しました。
ここではもはやメンテナンスされていません
最新のコンテンツはコレクションを確認してください。


このロールは、Debian/Ubuntu、RHEL/CentOS、Fedora、Suseサーバーに対してアップグレードを実施します。

特徴

  • 再起動検出と自動再起動
  • サービス再起動検出と自動サービス再起動
  • アップグレードレポート
    • メールで
    • テレグラムで

注意事項!

APTの再起動とサービス再起動のチェックはneedrestartを使って実装されています。Fedoraでは、dnfプラグインneeds-restartingを通じて、RHEL/CentOSではneeds-restartingツールを使っています。

このロールは出力またはリターンコードを使ってどのアクションを取るべきかを判断します。以下の変数を使って動作を設定できます。

これらの方法は完璧ではありませんが、合理的に機能します。使用する前にロールを確認しておくことをお勧めします。

既知の問題

  • Debian 11: ansible_python_interpreter=/usr/bin/python3を明示的に設定しないと、aptモジュールが動的にpython-aptをインストールしようとして失敗します。詳細はこの問題を参照してください。
  • CentOS 8: dnf needs-restartingプラグインにフラグが不足しているため、再起動検出が機能しません。再起動は行われません。
  • Fedora 32およびそれ以前: dnf needs-restartingプラグインにフラグが不足しているため、サービス再起動検出が機能しません。サービス再起動は行われません。
  • opensuse 15および42: 依存関係が不足しており、依存ツールのインストールができません。回避策はあります。また、アップグレードプロセスが不安定なようです。現在のところ、ロールは問題を引き起こさないようですが、注意してください。また、解決策をご存知の場合はぜひ教えてください。
  • opensuse 15および42: サービスの再起動検出は「強制的な」アプローチを使用しています。zypper ps -sの出力を解析するのが非常に面倒です。そのため、これらのOSではサービスの再起動が必要な場合は簡単に再起動されます。

要件

テレグラムによるレポート機能を使用する場合:

collections:
- name: community.general
  version: 3.4.0

このロールはrootアクセスを必要とするため、プレイブックでグローバルにbecome: yesを設定して実行するか、プレイブックで次のようにロールを呼び出してください:

- hosts: foobar
  roles:
    - role: thorian93.upgrade
      become: yes

このロールは再起動後にシステムがポート22で利用可能かどうかのみを確認します。さらなるチェックや検証が必要な場合は、自分で対応する必要があります。

ロール変数

使用可能な変数は以下にリストされています。デフォルト値も示されています(defaults/main.ymlを参照)。

基本変数

upgrade_packages_on_hold: []

自動でアップグレードしたくないパッケージをホールドリストに設定します。

upgrade_unattended_reboot: true

アップデート後に必要な場合、無人再起動を有効にします。デフォルトはtrueです。再起動を無効にするにはfalseに設定します。

upgrade_force_reboot: false

再起動チェックの結果に関係なく、各サーバーを強制的に再起動させます。デフォルトはfalseで、強制再起動を有効にするにはtrueに設定します。

upgrade_needrestart_disable_interaction: true

必要な再起動とサービス再起動を判断するためにneedrestartツールを使用しています。一部のディストリビューションは、デフォルトでインタラクティブに実行されるように設定されており、これがロールを壊してしまいます。したがって、デフォルトの設定はすべてのインタラクションを無効にします。インタラクションを有効にするにはfalseに設定してください。詳細はマニュアルを参照してください。

upgrade_restart_services: true

自動サービス再起動を有効にします。これにより、再起動が必要なサービスが再起動されます。デフォルトはtrueで、再起動を無効にするにはfalseに設定します。

upgrade_restart_services_blacklist:
  - auditd.service
  - dbus.service
  - systemd-manager.service

再起動すべきでないか、再起動できないサービスのブラックリストです。デフォルトリストは経験に基づき拡張されています。追加する必要があるサービスを報告してください。

レポート変数

upgrade_reporting_enable: false

このロールのレポート機能を有効にして、インストールされたアップデートを出力し、必要に応じてファイルに書き込みます。

upgrade_reporting_path: "."

レポートの保存場所を定義します。デフォルトは現在の作業ディレクトリです。

upgrade_reporting_cleanup: true

レポートファイルのクリーンアップを行います。デバッグ時にファイルを保持するのが便利です。

テレグラムレポート変数

upgrade_reporting_telegram_enable: false

テレグラムによるレポートを有効にします。実際にメッセージをテレグラムで送信するには、以下の2つの変数をあなたの資格情報で設定する必要があります! 詳細はモジュールドキュメントを参照してください。

upgrade_telegram_token:  []

あなたのテレグラムボットトークン。

upgrade_telegram_chatid: []

あなたのテレグラムチャットID。

メールレポート変数

upgrade_reporting_mail_enable: false

メールによるレポートを有効にします。

upgrade_reporting_mail_subject: "Ansible Update Role Reporting"

メールの件名を設定します。

upgrade_reporting_mail_to: ""

メールの受取人を定義します。

upgrade_reporting_mail_from: ""

メールの送信者を定義します。

upgrade_reporting_mail_host: ""

メールサーバーまたは中継を定義します。

upgrade_reporting_mail_port: ""

メールサーバーポートを定義します。

upgrade_reporting_mail_user:
upgrade_reporting_mail_password:

メールサーバーが認証を必要とする場合、ここにユーザー名とパスワードを設定します。認証が不要な場合は、上記のように変数を空白のままにしてください。空であってはなりません。

upgrade_reporting_mail_run_once: true

プレイごとに1通のメールを送信したい場合は、これをtrueに設定します。ホストごとに1通のメールを送信したい場合はfalseに設定します。

依存関係

なし。

OS互換性

このロールは、サポートされていないまたは未検査のオペレーティングシステムで使用されないように、専用変数<role-name>_stable_osに正しいディストリビューション名とメジャーバージョン番号が含まれているかどうかを確認します。この変数はロールのデフォルト変数ファイルdefaults/main.ymlにあり:

role_stable_os:
  - Debian 10
  - Ubuntu 18
  - CentOS 7
  - Fedora 30

ディストリビューションとメジャーバージョン番号の組み合わせがターゲットシステムと一致しない場合、ロールは失敗します。ロールが機能するようにするには、ディストリビューション名とメジャーバージョン名をその変数に追加し、動作します。ただし、新しい組み合わせはまずテストしてください!

このアイデアはHarryHarcourtに感謝します!

プレイブックの例

---
- name: "ロールを実行します。"
  hosts: all
  become: yes
  roles:
    - ansible-role-upgrade

貢献

バグや問題を見つけた場合や改善の余地があると思われる場合は、ぜひイシューをオープンしてください。また、何かを聞いたり相談したりしたい場合はいつでもご連絡ください。

免責事項

このロールはそのまま提供されており、意図した通りに動作することを保証することはできませんし、このロールによって引き起こされる損害や誤構成について責任を負うこともできません。使用する前にロールを十分に検討してください。

ライセンス

MIT

作成者情報

このロールは2019年にThorian93によって作成されました。

プロジェクトについて

Upgrade Management for Linux

インストール
ansible-galaxy install thorian93.upgrade
ライセンス
mit
ダウンロード
2k
所有者
Greetings earthlings! I am a young Linux, IT and tech enthusiast and currently I am working as a checkmk consultant for Checkmk.