puppetと.debファイルを使用してパッケージを更新する方法


27

ローカルソースdebファイルからpuppetを使用してdebパッケージを更新/アップグレードする適切な方法を見つけようとしています。私の現在の設定は次のようになります...

class adobe-air-2-0-4 {

  file { "/opt/air-debs":
    ensure => directory
  }

  file { "/opt/air-debs/adobeair-2.0.4.deb":
    owner   => root,
    group   => root,
    mode    => 644,
    ensure  => present,
    source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
  }

  package { "adobeair":
    provider => dpkg,
    ensure => installed,
    source => "/opt/air-debs/adobeair-2.0.4.deb"
  }

}

最初にdebファイルをクライアントマシンにコピーしてから、プロバイダーを「dpkg」に設定して「package」を使用します。これは機能し、正しいバージョンがインストールされます。

私の質問は、今後このパッケージを更新する適切な方法は何ですか。ソースファイルを変更するだけで、人形はそれが異なるバージョンであることを認識し、このパッケージを更新できますか?puppetは、インストールしたパッケージのバージョンとソースdebファイルのバージョンをどのように判断しますか?

私はpuppetが初めてなので、既存の設定を改善するための提案があれば、とても感謝しています。

回答:


36

私はこの質問をpuppet usersグループにも投稿しましたが、これは返事でした。

最新版を追加すると、現在インストールされているパッケージに対してソースファイルがチェックされ、最新の場合は新しいパッケージがインストールされます。古いバージョンにどのようにロールバックするかはまだわかりませんが、今のところ私の問題を解決できるようです。

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}

puppetユーザーグループの投稿へのリンクはこちら... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f


テストされていませんが、プロバイダーとしてaptを使用している場合。最新のバージョン番号を含む文字列に変更することができます-例:確認=> '1.0.4rc2-1_all'
benlumley

docs.puppetlabs.com/references/latest/type.html#packageを確認しました -上記の私の賞賛は無効であるように見えますが、dpkgはバージョン管理可能ではありません。
ベンラムリー

@ benlumley、apt-getはバージョン管理可能ですが、dpkg(apt-getのベース)はそうではありません。そのため、そのようなバージョンを作成する場合、2つを混在させることは少し困難です。これらのケースでは、ミニリポジトリのセットアップには良いアイデアかもしれないとapt-getを(Debianのシステムでのデフォルトのプロバイダである)、それを管理している理由だという
アクタウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.