我想在/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"