thedumbtechguy.unattended-upgrades

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

Ubuntuで無人アップグレードを設定するためのAnsibleロールです。デフォルトではセキュリティアップデートのみが有効になっています。

要件

このロールは Ubuntu 16.04 および Ubuntu 16.10 でのみテストされています。

Debianの場合、デフォルトがUbuntuを対象としているため、unattended_origins_patternsの値を変更する必要があるかもしれません。

無人メール

unattended_mailをメールアドレスに設定する場合、mailxコマンドが利用可能であり、システムがメールを送信できることを確認してください。

自動再起動

自動再起動機能(unattended_automatic_reboot)を有効にすると、このロールはアップグレード後に再起動を検出し、実行するために必要なupdate-notifier-commonパッケージのインストールを試みます。再起動の特定の時間を定義することもできます(unattended_automatic_reboot_time)。

変数

  • unattended_origins_patterns: パッケージが自動的にインストールできるかどうかを判断するための起源パターンの配列。詳細は以下のOrigins Patternsを参照してください。
    • デフォルト: ['origin=Ubuntu,archive=${distro_codename}-security']
  • unattended_package_blacklist: 自動アップグレードされないパッケージ
    • デフォルト: []
  • unattended_autofix_interrupted_dpkg: 不正なdpkgの終了時にdpkg --force-confold --configure -aを実行するかどうか
    • デフォルト: true
  • unattended_minimal_steps: アップグレードを最小限のチャンクに分割し、SIGUSR1で中断できるようにします。
    • デフォルト: false
  • unattended_install_on_shutdown: マシンがシャットダウンする際にすべての無人アップグレードをインストールします。
    • デフォルト: false
  • unattended_mail: アップグレードや無人アップグレードの問題に関する情報を送信するためのメールアドレス
    • デフォルト: false(メールを送信しない)
  • unattended_mail_only_on_error: エラー時のみメールを送信し、パッケージのアップグレードがあれば毎回メールが送信される場合もあります。
    • デフォルト: false
  • unattended_remove_unused_dependencies: アップグレード後に新しい未使用の依存関係を自動的に削除します。
    • デフォルト: false
  • unattended_automatic_reboot: アップグレードされたパッケージが必要とする場合、直後にシステムを自動的に再起動します。
    • デフォルト: false
  • unattended_automatic_reboot_time: アップグレードされたパッケージが必要とする場合、アップグレード後すぐではなく、特定の時間(_HH:MM_)にシステムを自動的に再起動します。
    • デフォルト: false
  • unattended_ignore_apps_require_restart: アップグレード後に再起動を要求するいくつかの重要なパッケージは自動的にアップグレードされません(つまり、そのdebain/controlファイルにXB-Upgrade-Requires: app-restartディレクティブがある)。このオプションがtrueに設定されている場合、無人アップグレードはこのディレクティブに関係なくこれらのパッケージをアップグレードします。
    • デフォルト: false

Origin Patterns

Origin Patternは、従来の無人アップグレードで使用されていた許可された起源オプションのより強力な代替です。

パターンは特定のキーワードで構成されています:

  • a,archive,suite – 例: stable, trusty-securityarchive=stable
  • c,component – 例: main, crontrib, non-freecomponent=main
  • l,label – 例: Debian, Debian-Security, Ubuntu
  • o,origin – 例: Debian, Unofficial Multimedia Packages, Ubuntu
  • n,codename – 例: jessie, jessie-updates, trusty(これはunattended-upgrades >= 0.80でのみサポートされています)
  • site – 例: http.debian.net

使用可能なリポジトリをapt-cache policyで確認し、ターゲットシステムでunattended-upgrades -dコマンドを使用して選択をデバッグできます。

さらに、無人アップグレードは/etc/debian_versionから派生した2つのマクロ(変数)をサポートします:

  • ${distro_id} – インストールされたディストリビューションの名前、例: DebianまたはUbuntu
  • ${distro_codename} – インストールされたコードネーム、例: jessieまたはtrusty

${distro_codename}を選択する方が、stableoldstableを選択するよりも良いです。なぜなら、stableoldstableに移動すると、セキュリティアップデートはまったくインストールされず、新しいディストリビューションリリースのパッケージが誤ってインストールされる可能性があります。同様に、oldstableからstableにアップグレードする場合、この起源パターンを変更し忘れると、新しいディストリビューションリリースのセキュリティアップデートを受けられなくなる可能性があります。${distro_codename}を使用していれば、これらの問題は発生しません。

使用例

- hosts: all
  vars:
    unattended_origins_patterns:
      - 'origin=Ubuntu,archive=${distro_codename}-security'
      - 'o=Ubuntu,a=${distro_codename}-updates'
    unattended_package_blacklist: [cowsay, vim]
    unattended_mail: '[email protected]'
  roles:
    - setup_unattended_upgrades

パターンの例

デフォルトでは、セキュリティアップデートのみが許可されています。無人アップデートが自動的により多くのパッケージをインストールできるようにするためにパターンを追加できますが、自動的な大規模アップデートはシステムを壊す可能性があることを理解してください。

Ubuntuでは、アーカイブは常にディストリビューションのコードネームを含みます。

unattended_origins_patterns:
  - 'origin=Ubuntu,archive=${distro_codename}-security'
  - 'o=Ubuntu,a=${distro_codename}'
  - 'o=Ubuntu,a=${distro_codename}-updates'
  - 'o=Ubuntu,a=${distro_codename}-proposed-updates'

ライセンス

MIT / BSD

作者情報

このロールはTheDumbTechGuyによって作成されました( twitter | blog | galaxy

クレジット

このロールは、次の元の作業をもとにしています:

プロジェクトについて

Configure unattended upgrades for Linux.

インストール
ansible-galaxy install thedumbtechguy.unattended-upgrades
ライセンス
Unknown
ダウンロード
1.7k
所有者