我们可以在ansible-playbook中禁用流水线操作但是在ansible.cfg中使用它吗?

时间:2014-10-15 09:52:51

标签: ansible ansible-playbook

我希望在/etc/ansible/ansible.cfg中保持流水线操作,但是对于一个删除' requiretty'在/ etc / sudoers文件中

3 个答案:

答案 0 :(得分:6)

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

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

ANSIBLE_SSH_PIPELINING=0 ansible-playbook ...

这应该有效。

祝你好运!

答案 1 :(得分:3)

您可以使用Paramiko而不是OpenSSH强制Ansible连接。 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="^Defaults\s+requiretty$" replace="# Defaults    requiretty" dest="/etc/sudoers"

答案 2 :(得分:0)

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

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