cevich.touchstone
タッチストーン
Ansible Galaxy 対応 の役割は、プレイ、ロール、または タスクの集合を簡単に冪等にします。これはいくつかのシーケンス宣言にとって重要です。例えば、一つのロールがパーティショニングを行い、別のロールがフォーマットを行う場合です。将来的にそのシーケンスを再適用すると、データが壊れる可能性が高くなります。
要件
標準の Ansible 2.3+
と同じ
ロール変数
touch_touchstone
:
真の場合、
stone_name
で特定される最終状態または完了をマークします。
stone_name
:
複数の最終状態を追跡する必要がある場合に使用する識別文字列です。例えば、複数のプレイブックがあります。デフォルトは
.touchstone
です。
touchstone_filepath
:
タッチストーンがチェックされたり書き込まれたりするディレクトリパスです。
ansible_user
が書き込み可能で永続的なディレクトリでなければなりません。つまり、tmpdir
ベースの/tmp
ではなく、ロックファイルがこのディレクトリに作成またはチェックされます。
stone_touched
:
ロール中に現在のタッチストーン状態を反映するブール値です。
True
の場合、過去に少なくとも一度石が触れられたことを示します。
touchstone_template
:
タッチストーンファイルの内容を生成するために使用される jinja2 テンプレートの完全なパスです。
依存関係
ユニークな /etc/machine-id を持つ systemd ベースのマシン。
例 Playbook
- hosts: all
roles:
- role: cevich.touchstone
- role: something
when: not stone_touched
- role: another_thing
when: not stone_touched
- role: final_thing
when: not stone_touched
- role: cevich.touchstone
touch_touchstone: True
ライセンス
プレイ、ロール、タスクの集合を簡単に冪等にします。著作権 (C) 2017 Christopher C. Evich
このプログラムはフリーソフトウェアです。GNU 一般公衆ライセンスの条件の下で再配布および/または変更が可能です。ライセンスのバージョン 3、または(自分の選択で)それ以降のバージョンのいずれかで公開されています。
このプログラムは、有用であることを期待して配布されていますが、いかなる保証もなく、特定の目的への適合性や商業性の暗黙の保証も含まれていません。詳細については、GNU 一般公衆ライセンスをご覧ください。
このプログラムと一緒に GNU 一般公衆ライセンスのコピーを受け取っているはずです。受け取っていない場合は、https://www.gnu.org/licenses/ を参照してください。
著者情報
Windows 98 以来、Linux でトラブルを引き起こし混乱を引き起こしています。
継続的インテグレーション
Easily make sets of plays, roles or tasks idempotent.
ansible-galaxy install cevich.touchstone