30 Sep 2016
main.yml文件定义变量
- hosts: "\{\{ host }}"
命令行传参
ansible-playbook ... -e "hosts=web"
可以使用json数据传输,main.yml文件定义变量
- hosts: "\{\{ host }}"
tasks:
- name: yum install
yum: name=\{\{ item }} state=latest
with_items: "\{\{ yumpack }}"
module外的变量都需要双引号
命令行传参
ansible-playbook ... --extra-vars '{"host":"all","yumpack":["vim","wget"]}'
就像google讨论组上讲的,目前roles无法通过with_items的方式进行循环,但我们可以把循环传入到roles内部进行循环
Google discuss
main.yaml文件内容
---
- hosts: "\{\{ host }}"
remote_user: root
roles:
- {role: "tomcat", yumpack: "\{\{ yumpack }}"}
roles/tomcat/tasks/main.yml内容
---
- name: yum test
yum: name=\{\{ item }} state=latest
with_items: "\{\{ yumpack }}"
module中的变量不用加双引号,但是其他地方需要双引号,否则会报错
命令行传参
ansible-playbook ... main.yml -e "{'host':'all','yumpack':['vim','wget','nginx']}" -C