Ansible PlayBookは特定のリポジトリからパッチを取得します。

Ansible PlayBookは特定のリポジトリからパッチを取得します。

複数のリポジトリが有効なクラウド環境で実行されているインスタンスがあります。特定のリポジトリにのみパッチを適用する方法は? yumはOS以外のリポジトリのパッケージを更新しないでください。

例 - yum repolist repo1 - ソース OS プロバイダー repo2 - ソース OS プロバイダー repo3 - ソースサードパーティアプリケーション

スクリプト:

yum:
 name: *
 state: latest

yumがサードパーティのリポジトリのパッケージを更新できないように制限する方法。

  • サードパーティのリポジトリ設定ファイルを移動したくも無効にしたくもありません。

どんなアドバイスでもとても役に立ちます。

答え1

yumすべてのパッケージに更新しないように指示する必要があります。以下は、すべてのgit、bash、およびphpパッケージの更新を除外する例です。

- hosts: webservers
  tasks:
  - name: Exclude some packages from upgrade in Ansible.
    yum:
      name: "*"
      state: latest
      exclude: 
        - git*
        - bash*
        - php*

IMHO、インベントリを更新する各タスクに対してリポジトリを無効にしてアクティブにすることは、すべてのリポジトリパッケージを除外リストに書き込むよりも少ない作業量です。

リファレンスenabledexcludeドキュメントを参照してください。 https://docs.ansible.com/ansible/2.3/yum_repository_module.html

答え2

これは珍しい操作であり、yumではサポートされていません。

独自のローカルストレージを作成します。マンページの再同期
そしてyum updateそれらを飛び越えて、

または、yum check-update
以下を実行してくださいyum list available
。結果の3番目の列は、必要なパッケージのみをgrepインストールできるリポジトリです。

Available Packages
2048-cli.x86_64                0.9.1-1.el6      epel

注:サードパーティのストレージプロファイルを移動することは、ストレージを無効にすることとは異なります。
無効はenabled=0ストレージファイルにのみ設定され、引き続き表示されますyum repolist disabled。無効化、更新、有効化は、目的と同じ結果を得るための最も簡単で一般的な方法です。

関連情報