Serialization Ansible:Can';t为顺序执行设置变量
我正试图用Serialization Ansible:Can';t为顺序执行设置变量,serialization,ansible,ansible-inventory,ansible-role,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 dbs
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”的值无效,其中包含未定义的变量。错误是:“应用程序\u堆栈\u序列\u值”未定义
如果我在串行字段中指定值,如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)]AFAIK这是一个报告中的错误,所有的解决方法都非常难看。你可以将它作为一个额外变量传入:
-e'app\u stack\u serial\u value=1'
@jack我知道这会很好用,但是我想在变量文件的某个地方配置它。我必须根据组名定义多个序列值。我不能把所有这些变量作为额外变量。