有比这更好的解决办法吗?
- hosts: localhost
gather_facts: true
tasks:
- name: strip unsafe characters from ansible_virtualization_role value
shell: |
echo {{ ansible_virtualization_role }} | sed 's/[^a-z]//g'
register: buf
- name: Set my_virtualization_role
set_fact:
my_virtualization_role={{ buf.stdout }}ansible-lint报告“??没有更改??当#命令不应该更改不需要做的事情时”,所以最好不用shell模块来清理不安全的变量,但是我尝试的每一个纯Ansible解决方案都会出现一个不安全的变量错误。
查尔斯
发布于 2021-05-19 09:27:27
您应该能够使用ansible过滤器来完成您想要做的事情--特别是查看一下regex_replace过滤器--参见https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#searching-strings-with-regular-expressions
在您的示例中,您可以编写
- hosts: localhost
gather_facts: true
tasks:
- name: Set my_virtualization_role
set_fact:
my_virtualization_role={{ ansible_virtualization_role | regex_replace('[^a-z]', '') }}https://stackoverflow.com/questions/67596658
复制相似问题