たとえば,RPM パッケージを持っていってインストールしたい場合,アーキテクチャによって RPM が変わりますよね (i686 とか x86_64 とか)。
そんなときは,ansible_machine
という variable を使えば,リモートのアーキテクチャを特定することができます。
---
tasks:
- copy: src="custom.{{ansible_machine}}.rpm" dest="/tmp/custom.rpm"
ちなみに Linux の場合,
Variable | 32bit | 64bit |
---|---|---|
ansible_architecture |
i386 |
x86_64 |
ansible_machine |
i686 |
x86_64 |
ansible_userspace_architecture |
i386 |
x86_64 |
ansible_userspace_bits |
32 |
64 |
こんな感じになるようです。
これらの variables は,setup module を使うと確認できます。
$ ansible host -m setup
アーキテクチャ以外にもいろいろ定義されている (distribution とか IP アドレスとか) ので,ほかにも条件わけするのによい variable があるかもしれません。