複数のリポジトリが有効なクラウド環境で実行されているインスタンスがあります。特定のリポジトリにのみパッチを適用する方法は? 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、インベントリを更新する各タスクに対してリポジトリを無効にしてアクティブにすることは、すべてのリポジトリパッケージを除外リストに書き込むよりも少ない作業量です。
リファレンスenabled
とexclude
ドキュメントを参照してください。
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
。無効化、更新、有効化は、目的と同じ結果を得るための最も簡単で一般的な方法です。