Ansible playbook-如何在字符串中添加大写字母

Ansible playbook-如何在字符串中添加大写字母,ansible,Ansible,我不熟悉ansible。我想用ansible简化我的网络任务。我想做的一件事是登录到所有的网络(Cisco)交换机,并用包含特定字符串的描述显示接口。我计划使用cisco.ios.ios\u命令模块向交换机发送命令。开关应返回包含search\u str的行 show interface description | include {{search_str}} 描述可以包含大写或小写字母。例如,它可以是交换机上配置的“abc123”或“abc123”或“abc123”。Cisco允许您使用re

我不熟悉ansible。我想用ansible简化我的网络任务。我想做的一件事是登录到所有的网络(Cisco)交换机,并用包含特定字符串的描述显示接口。我计划使用
cisco.ios.ios\u命令
模块向交换机发送命令。开关应返回包含
search\u str
的行

show interface description | include {{search_str}}
描述可以包含大写或小写字母。例如,它可以是交换机上配置的“abc123”或“abc123”或“abc123”。Cisco允许您使用regex查找所有案例。命令变成这样,它将匹配所有情况

show interface description | include [aA][bB][cC]123
所以现在我的挑战是如何将“abc123”转换为“[aA][bB][cC]123”。“abc123”是我在使用
-e“search\u str=abc123”
选项运行playbook时将设置的变量

我的尝试是首先使字符串成为一个列表,每个字符作为一个项目:
{{My_var | lower | list}
。它也使我的搜索字符串的所有小写字母。“Abc123”变为“['a','b','c',1,2,3]”

然后我尝试使用
循环
遍历每个字符并添加字符的大写字母。我真的写不好。。我最好的尝试是:

- name: add upper case characters
  loop: "{{search_str}}"
  ansible.builtin.set_fact:
    search_str_converted: "{{ item + (item|upper) }}"
在上面的代码中,我还将在变量中添加“[]”作为字符串。如果这个步骤有效,那么我计划执行一个
join
,再次将其转换为字符串

让我知道逻辑是否正确,请帮助我添加大写字符

谢谢!
迪凡

下面的任务完成了这项工作

-设置事实:
搜索列表:{{search\u list}默认值([])+[element]}
循环:{search_str|list}”
变量:
is_编号:“{{item is match('\\d')}”
双精度:“[{item | lower}}{{{item | upper}}]”
元素:{{is_number}三元(项,双)}
-设定事实:
search_regex:“{search_list | join}”

谢谢弗拉基米尔!你的解决方案奏效了。我将详细了解您使用的方法。快速提问,我需要将这两个“设置事实”写进不同的“-name”部分(或者任务,如果我调用正确的话)。这是对的,还是有一种方法可以让两个“事实”以某种方式在同一个任务中?谢谢。这是不可能的。看见不客气!