在主機清單主機中定義變量
- 這裏101主機定義的http_port是85,102直接定義的是86,雖然變量名都是同一個,針對不同的主機可以設置不同的值
- 然後我們可以調用用命令行
[root @ ansible〜]#ansible webser -m hostname -a'name = web {{http_port}}'//修改主機名,會針對不同的主機的變量值不一樣[root @ ansible〜]#ansible webser -a'hostname'192.168.27.101 | 成功| rc = 0 >>web85這是針對某個主機設置不同的值192.168.27.102 | 成功| rc = 0 >>web86
也可定義多個變量,並在劇本中使用
[root @ ansible ansible]#vim var4.yml---- 主持人:webser remote_user:root 任務: - 名稱:設置主機名 hostname:name = {{hostname}} - {{http_port}}[root @ ansible ansible]#ansible webser -a'主機名'192.168.27.101 | 成功| rc = 0 >>web1-88192.168.27.102 | 成功| rc = 0 >>web2-86
如果我們人爲的用-e指定變量值,則會以-e定義的參數爲準,不會調用主機中的變量
[root @ ansible ansible]#ansible-playbook -e“http_port = 9090 hostname = abc.com”var4.yml[root @ ansible ansible]#ansible webser -a'主機名'192.168.27.101 | 成功| rc = 0 >>abc.com-9090192.168.27.102 | 成功| rc = 0 >>abc.com-9090