0

我正在尝试创建一个剧本,通过向用户询问一些问题来配置 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

如果用户在提示创建空值时按 Enter 键,有没有办法删除/忽略配置的“配置文件添加 { {{ virtual_server_profile }} }”部分?

4

1 回答 1

1

您的示例中的大括号不匹配,我假设您想}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真实性,并打印上述值或空字符串
于 2018-08-29T22:02:31.800 回答