
私は、現場の数百台の Ubuntu 12.04 マシンに簡単な変更を送信する PPA を設定したいと考えています。簡単な変更とは、bash スクリプトの変更と構成ファイルの更新、および apt-get install でインストールできる新しいソフトウェアのインストールを含むその他のソフトウェア更新を意味します。頭に浮かんだいくつかの疑問は、
- PPA を使用してスクリプトの更新を送信できますか?
- この PPA からのみ更新を取得し、無人アップグレードのように自動的にインストールするようにクライアント マシンを構成できますか? (もちろん、このオプションが可能であることはわかっていますが、これを実現するには優れたツール セットが必要です)。
これは幅広い質問であることは承知していますが、いくつかの指針を添えた回答をいただければ幸いです。
答え1
私も同じことをしたかったのですが、reprepro
PPA を使用して作成したプライベート リポジトリを使用することにしました。すべてのクライアントが同じ LAN 上にあるため、私にとっては簡単です。PPA を使用するかプライベート リポジトリを使用するかに関係なく、これはかなり実行可能だと思います。
- 既存の構成ファイルを変更するには、
dpkg
転用を使用するのが最適だと私は考えています。config-package-dev
これは祝福です。Debian ウィキこれに関する情報を得るには良い出発点となります。 - スクリプトファイルや独自のソフトウェアを追加するのは、パッケージ化すればそれほど難しくありません。パッケージ化ガイドはたくさんあります。繰り返しになりますが、Debian ウィキは素晴らしい出発点です。スクリプトや構成ファイルの場合、導入よりもバイナリ パッケージを作成する方が簡単です。
- 他のリポジトリから新しいソフトウェアを追加するには、それらをパッケージの依存関係にすることで実行できます。正確なバージョンを指定するか、
apt
ピン留め。 - カスタム リポジトリの無人アップグレードはすでに処理されています。任意のリポジトリに対してサイレント自動更新を有効にする方法は?サーバーがクライアントに更新をプッシュする方法は知りません。
puppet
(kick
ing 経由) またはそれに類するものを検討してください。または、SSH を使用してクライアントで更新を実行するスクリプトをサーバー上に作成することもできます。または、ネットワークが起動したときに更新を確認するスクリプトを用意することもできます。 - 何よりも、パッケージ メンテナンス スクリプト ( ) がべき等であり、パッケージを削除するとすべての変更が元に戻ることを確認してください。これらのスクリプトは多くのことを実行できますが、スクリプト内では または に
preinst, postinst, prerm, postrm
影響を与える操作は実行しません。これらのスクリプトで実行される作業は最小限に抑えてください。apt
dkpg
私の場合、パッケージを使用して LDAP と NTP を構成し、vimrc
共通オプションを有効にするカスタム グローバルを追加し、さまざまな構成変更 (sudo
グループの有効化、シャットダウンの禁止など) を行い、権限のないローカル ユーザー/グループなどを追加します。別のパッケージは、自己生成の CA 証明書とリポジトリ署名キーを追加し、スクリプトでそれらを信頼済みとしてマークし、リポジトリのpostinst
エントリを追加します。sources.list.d
まだすべてのシステムをこのプロセスに移行していないので、その有効性についてはまだコメントできません。