用命令行传递参数

为了使Playbook更灵活、通用性更强,允许用户在执行的时候传入变量的值,这个时候就需要用到“额外变量”。

定义命令行变量

在release.yml文件里,hosts和user都定义为变量,需要从命令行传递变量值。

  1. ---
  2. - hosts: '{{ hosts }}'
  3. remote_user: '{{ user }}'
  4. tasks:
  5. - ...

使用命令行变量

在命令行里面传值得的方法:

  1. ansible-playbook e33_var_in_command.yml --extra-vars "hosts=web user=root"

还可以用json格式传递参数:

  1. ansible-playbook e33_var_in_command.yml --extra-vars "{'hosts':'vm-rhel7-1', 'user':'root'}"

还可以将参数放在文件里面:

  1. ansible-playbook e33_var_in_command.yml --extra-vars "@vars.json"