我希望在/etc/ansible/ansible.cfg中保持流水线操作,但是对于一个删除' requiretty'在/ etc / sudoers文件中
答案 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