Ali*_*yeu 1 ansible ansible-playbook ansible-2.x
我有将用户提供给远程主机的剧本:
---
- hosts: webserver
remote_user: myuser
sudo: yes
tasks:
- name: Add ssh Users
authorized_key: user='ubuntu' key="{{ lookup('file', './keys/{{item}}.pub') }}"
with_items:
- user1
- user2
- user3
- user4
- user5
- user6
- user7
- user8
- user9
- user10
- user11
- user12
Run Code Online (Sandbox Code Playgroud)
这个单一任务需要110秒,这非常慢.
$ ansible-playbook -i ./inventory setup_ssh.yaml -vvv
Using /vagrant/ansible.cfg as config file
1 plays in setup_ssh.yaml
...
PLAY RECAP *********************************************************************
XXX.XXX.XXX.XXX : ok=2 changed=0 unreachable=0 failed=0
Wednesday 27 July 2016 07:38:39 +0000 (0:01:50.486) 0:02:00.054 ********
===============================================================================
TASK: ssh_keys : Add ssh Users ---------------------------------------- 110.49s
TASK: setup ------------------------------------------------------------- 9.49s
Run Code Online (Sandbox Code Playgroud)
查看完整日志.
我试图启用流水线技术,但它没有帮助.
我正在使用ansible 2.0.0.2这是我的ansible.cfg:
[defaults]
hostfile = inventory
host_key_checking = false
roles_path = ./roles
private_key_file = ~/.ssh/id_rsa
deprecation_warnings=False
remote_user = ubuntu
callback_whitelist = profile_tasks
pipelining = true
[ssh_connection]
ssh_args=-o ForwardAgent=yes
Run Code Online (Sandbox Code Playgroud)
通过指定:
ssh_args=-o ForwardAgent=yes
Run Code Online (Sandbox Code Playgroud)
你已经取代了ansible的默认值:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s
Run Code Online (Sandbox Code Playgroud)
因此禁用了ssh连接重用.将此选项添加到您的配置,然后重试.
如果时间增益不够,您可能希望首先在本地连接所有.pub文件,然后authorized_key
使用多行字符串作为关键参数执行模块一次 - 此模块可以处理它.
归档时间: |
|
查看次数: |
1131 次 |
最近记录: |