Ansible var_prompt
Ansible var_prompt
我正在尝试创建一个剧本,通过询问用户一些问题来配置 LTM 虚拟服务器。下面是配置的示例:
tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool profiles add { tcp { } http { } junk_profile { } } }
其中大部分很容易完成,但我想知道如何绕过配置中的可选项目。假设我询问用户是否要配置配置文件:
- name: "virtual_server_profile"
prompt: "Enter a profile"
private: no
如果他们确实想要配置配置文件,我会将 "virtual_server_profile" 变量传递到虚拟配置命令中:
- name: Implementation
bigip_command:
server: "{{ inventory_hostname }}"
user: "{{ remote_username }}"
password: "{{ remote_passwd }}"
commands:
- "tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool profiles add { {{ virtual_server_profile }} }"
validate_certs: no
delegate_to: localhost
如果用户在提示创建空值时按回车键,是否有办法 remove/ignore 配置的 "profiles add { {{ virtual_server_profile }} }" 部分?
你的例子中有不匹配的大括号,我假设你想在 virtual_server_profile
之后用 }
结束。不然就自己修好了。
这是您需要的语法:
commands:
- tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool {{ 'profiles add {' + virtual_server_profile + '} ' if virtual_server_profile else '' }}}
- 将
profiles add {
和 }
字符串连接到变量 virtual_server_profile
- 使用条件检查
virtual_server_profile
真实性,并打印上述值或空字符串
我正在尝试创建一个剧本,通过询问用户一些问题来配置 LTM 虚拟服务器。下面是配置的示例:
tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool profiles add { tcp { } http { } junk_profile { } } }
其中大部分很容易完成,但我想知道如何绕过配置中的可选项目。假设我询问用户是否要配置配置文件:
- name: "virtual_server_profile"
prompt: "Enter a profile"
private: no
如果他们确实想要配置配置文件,我会将 "virtual_server_profile" 变量传递到虚拟配置命令中:
- name: Implementation
bigip_command:
server: "{{ inventory_hostname }}"
user: "{{ remote_username }}"
password: "{{ remote_passwd }}"
commands:
- "tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool profiles add { {{ virtual_server_profile }} }"
validate_certs: no
delegate_to: localhost
如果用户在提示创建空值时按回车键,是否有办法 remove/ignore 配置的 "profiles add { {{ virtual_server_profile }} }" 部分?
你的例子中有不匹配的大括号,我假设你想在 virtual_server_profile
之后用 }
结束。不然就自己修好了。
这是您需要的语法:
commands:
- tmsh create ltm virtual junk_virtual { destination 192.168.51.60:80 ip-protocol tcp pool junk_pool {{ 'profiles add {' + virtual_server_profile + '} ' if virtual_server_profile else '' }}}
- 将
profiles add {
和}
字符串连接到变量virtual_server_profile
- 使用条件检查
virtual_server_profile
真实性,并打印上述值或空字符串