Ansible:无法为连续执行设置变量

时间:2019-04-28 14:22:11

标签: serialization ansible ansible-inventory ansible-role

我正在尝试使用serial元素构建具有滚动更新用例(顺序执行)的剧本。由于必须在剧本的多个位置使用序列值,因此我想将其用作变量,该变量可用于将某处定义为组变量。

库存文件

[all]
webserver1  ansible_host=10.1.1.1 ansible_user=root
webserver2  ansible_host=10.1.1.2 ansible_user=root
webserver3  ansible_host=10.1.1.3 ansible_user=root
dbserver1  ansible_host=10.1.2.1 ansible_user=root

[webserver]
webserver1
webserver2
webserver3

[dbserver]
dbserver1

[app-stack:children]
webservers
dbservers

[app-stack:vars]
app_stack_serial_value=1

剧本

- hosts: app-stack
  serial: "{{ app_stack_serial_value }}"
  tasks:
   - name: debug
     debug:
       msg: "Ansible Host - {{ ansible_host }}"

错误

  

错误!字段“ serial”的值无效,其中包含未定义的变量。错误是:“ app_stack_serial_value”未定义

如果我在serial: 1之类的串行字段中指定值,这将起作用。但是我想将此值用作变量。任何想法??

Ansible版本:ansible 2.7.10

python版本= 3.7.2(默认,2019年1月13日,12:50:01)[Clang 10.0.0(clang-1000.11.45.5)]

0 个答案:

没有答案