Ansible:命令行选项 'd' [from -d,] 无法与其他选项结合使用
Ansible: Command line option 'd' [from -d,] is not understood in combination with the other options
更新: 虽然这个问题被标记为拼写错误(因此“对用户不太有用”),但问题实际上是需要使用正确的 ansible 模块; shell
,而不是 command
模块。
我希望有人能告诉我哪里出了问题,我猜这与语法或转义或字符有关(尽管我已经尝试将 awk(及其卷曲)替换为切,但运气不好)在导致以下错误的命令行中:
"stderr": "\u001b[1;31mE: \u001b[0mCommand line option 'F' [from -F,] is not understood in combination with the other options.\u001b[0m"
基本上在我创建的角色中,我想动态存储一个列表,其中包含碰巧安装的 gnome 或 x11 软件包,然后使用 apt 删除它们;
- name: Generate variable containing all gnome GUI packages
command: apt list | awk -F, '/gnome/ && /installed/ {print }'
register: gui_packages
ignore_errors: yes
changed_when: false
- name: Remove entire GUI
apt:
name:
- "{{ gui_packages_to_remove_specific }}"
- "{{ gui_packages }}"
state: absent
force: yes
when:
- remove_gui_packages is defined
- remove_gui_packages is true
在此先感谢您提供的任何帮助!!
来自 command
模块的 the documentation:
The command(s) will not be processed through the shell, so variables like $HOSTNAME and operations like "*", "<", ">", "|", ";" and "&" will not work. Use the ansible.builtin.shell module if you need these features.
你的语法问题是你没有 运行 apt
传送到 awk
。你是 运行 apt
并给出所有 list | awk -F, '/gnome/ && /installed/ {print }'
作为参数。
更新: 虽然这个问题被标记为拼写错误(因此“对用户不太有用”),但问题实际上是需要使用正确的 ansible 模块; shell
,而不是 command
模块。
我希望有人能告诉我哪里出了问题,我猜这与语法或转义或字符有关(尽管我已经尝试将 awk(及其卷曲)替换为切,但运气不好)在导致以下错误的命令行中:
"stderr": "\u001b[1;31mE: \u001b[0mCommand line option 'F' [from -F,] is not understood in combination with the other options.\u001b[0m"
基本上在我创建的角色中,我想动态存储一个列表,其中包含碰巧安装的 gnome 或 x11 软件包,然后使用 apt 删除它们;
- name: Generate variable containing all gnome GUI packages
command: apt list | awk -F, '/gnome/ && /installed/ {print }'
register: gui_packages
ignore_errors: yes
changed_when: false
- name: Remove entire GUI
apt:
name:
- "{{ gui_packages_to_remove_specific }}"
- "{{ gui_packages }}"
state: absent
force: yes
when:
- remove_gui_packages is defined
- remove_gui_packages is true
在此先感谢您提供的任何帮助!!
来自 command
模块的 the documentation:
The command(s) will not be processed through the shell, so variables like $HOSTNAME and operations like "*", "<", ">", "|", ";" and "&" will not work. Use the ansible.builtin.shell module if you need these features.
你的语法问题是你没有 运行 apt
传送到 awk
。你是 运行 apt
并给出所有 list | awk -F, '/gnome/ && /installed/ {print }'
作为参数。