- patch – Apply patch files using the GNU patch tool. — Ansible Documentation
- diff & patch コマンドでのパッチを適用する方法 – hogehoge foobar Blog Style5
- Linuxエンジニアらしいパッチのつくりかた – Qiita
git diff
の出力結果をファイルにしたものをパッチファイルとするイメージ。patch
コマンドで作成した差分を元ファイルに適用できる。- 個人的には、変更前後の状態をひと目で把握できるし、Git に慣れているし、lineinfile モジュールや replace モジュールよりも好み。
- ファイル内の変更箇所が状況によって変わるなどの場合は、patch モジュールは不適切と思われる。
patch モジュールの使い方例
パッチファイルを次のように作成いたしました。
cp -a pg_hba.conf pg_hba.conf.org vim pg_hba.conf diff -up pg_hba.conf.org pg_hba.conf > pg_hba.conf.patch
パッチファイルの内容は、次のようになりました。
--- pg_hba.conf.org 2015-12-06 15:49:05.282188570 +0900 +++ pg_hba.conf 2015-12-06 15:33:01.377197287 +0900 @@ -71,6 +71,8 @@ # "host" records. In that case you will also need to make PostgreSQL # listen on a non-local interface via the listen_addresses # configuration parameter, or via the -i or -h command line switches. +host redmine redmine 127.0.0.1/32 md5 +host redmine redmine ::1/128 md5
このパッチを適用するためのプレイブックがこちらですの♪
... 略 ... - name: Install patch yum: name: patch state: latest - name: Apply patch to pg_hba.conf patch: src: pg_hba.conf.patch dest: /var/lib/pgsql/9.6/data/pg_hba.conf notify: Restart postgresql-9.6 ... 略 ...
おわりに
今回の内容は、次のコミットで役に立ちました♪
以上です。