我们可以在ansible剧本中禁用流水线,但在ansible.cfg中有它吗



我想在/etc/ansible/assible.cfg中保持管道化,但在删除/etc/sudoers文件中的"requirety"的一个剧本中禁用它

我的猜测是,这种配置连接行为的选项是为整个ansible运行设置的。

因此,如果您想为单个剧本(即ansible-playbook运行)禁用它,您可以使用环境变量覆盖pipelining

ANSIBLE_SSH_PIPELINING=0 ansible-playbook ...

这应该行得通。

祝你好运!

使用Ansible 2.0+,可以通过覆盖特定任务的设置来优雅地处理此问题:

- name: "task name"
  task_module:
    task_parameters: 42
  vars:
    ansible_ssh_pipelining: no

您可以强制Ansible使用Paramiko而不是OpenSSH进行连接。Paramiko不使用流水线:

- hosts: my_servers
  remote_user: centos
  become: yes
  become_user: root
  gather_facts: false
  connection: paramiko
  tasks:
    - name: disable requiretty in /etc/sudoers
      replace: regexp="^Defaultss+requiretty$" replace="# Defaults    requiretty" dest="/etc/sudoers"

最新更新