他のマシンのプロトタイプとして使用される Linux の仮想マシン (Ubuntu サーバー) があります。プロトタイプ システムに変更を加えて、その変更を他のマシンにインポートしたい場合があります。
Puppet、cfengine、FAI については知っていますが、必要なときに ssh 経由で動作する rsync スクリプトなどの簡単なものが欲しいです。
主な目標は /etc/ ディレクトリです。ただし、/etc/passwd や /etc/shadow などの一部のプライベート ファイルを同期したくありません。すべてを把握しているわけではありません。
私のタスクに関するヒントはありますか? 誰かがそのような rsync スクリプトを持っているかもしれません。
答え1
簡単な解決策としては、git をセットアップすることかもしれません。
- ディレクトリに Git リポジトリを設定します
/etc
。 - リモート システムに移行したくないものを除外するために、無視ファイルを設定します。
- 無視されなかったものをすべてリポジトリに追加します。
- 本番環境では、必要に応じて開発リポジトリからプルします。
答え2
答えはすでに出ています。rsync は必要なことを実行し、必要なときに ssh 経由で実行し、同期したくないファイルを簡単に無視できます。
rsync -avP source:/etc/ /etc/ --exclude-from list-of-files-to-exclude
除外するファイルのリストをファイルに追加するだけですlist-of-files-to-exclude
。例:
$ cat list-of-files-to-exclude
/passwd
/shadow
もちろん、バージョン管理や、Puppet のようなより洗練されたものも強くお勧めします。また、ファイルの所有権と権限に注意してください。