Linux /etc/ ディレクトリを同期する

Linux /etc/ ディレクトリを同期する

他のマシンのプロトタイプとして使用される 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 のようなより洗練されたものも強くお勧めします。また、ファイルの所有権と権限に注意してください。

関連情報