问题
When I try to run some commands on nxos devices, the output has a white space at the end. I have to compare the output to an existing variable list. The whitespace at the end is causing the comparison to go false. How to make use of .strip() function in a list of strings?
- name: Current TACACS server host before
nxos_command:
commands:
- sh run | include 'tacacs-server host'
register: runconfserafter
- debug:
var: runconfserafter
The output of this comes up like this:
"stdout_lines": [
[
"tacacs-server host 1.1.1.1 key 7 \"HelloWorld\" ",
"tacacs-server host 2.2.2.2 key 7 \"HelloWorld\""
],
]
When I compare this line with my desired variables, I can't get it matched because of the white space on the first line at the end.
回答1:
To apply a function to list elements use map filter. To strip whitespace use trim filter.
"{{ runconfserafter.stdout_lines | map('trim') | list }}"
来源:https://stackoverflow.com/questions/51015315/ansible-strip-white-space