1.
當你的SSH的版本高於5.6時
我們可以直接修改 /etc/ansible/ansible.cfg里面的參數
ssh_args = -C -o ControlMaster=auto -o ControlPersist=5d
ControlPersist=5d這個參數是設置整個長連接保持時間設置為5天,如果開啟,通過SSH連接過的設備都會在/ansible/cp目錄下生成一個socket文件
如果你的SSH的版本低於5.6,需要使用yum對SSH升級
yum update openssh-clients
2.開啟pipelining
我們可以直接修改 /etc/ansible/ansible.cfg里面的參數
pipelining=True
需要修改被控制主機的/etc/sudoers
sed -i '/Defaults.*requiretty/a\Defaults:\ test\ !requiretty' /etc/sudoers #添加用戶test !requiretty
sed -i "$a Defaults\:\ test\ \!requiretty" /etc/sudoers #添加用戶test !requiretty
編輯當前SSH用戶配置為requiretty
3.開啟ansible加速模式accelerate
1) 需要開啟時首先要在遠端機器安裝 python-keyczar軟件包
2) 需要在ansible-playbook的劇本文件中加入 accelerate: true
還需加入:
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
4.設置facts緩存
1)需要在ansible-playbook的劇本文件中加入 gather_facts: False #可以直接關閉facts不收集遠程主機信息
2)設置facts緩存: /etc/ansible/ansible.cfg
第一種方式:使用文件緩存
gathering = smart
facts_caching_timeout = 86400 # 設置緩存過期時間86400秒
facts_caching = jsonfile # cache文件是json格式
facts_caching_connection = /tmp/ansible/ansible_facts_cache #緩存文件的存儲路徑
第二種方式:使用redis存儲facts文件需安裝redis;yum install redis ;還需要安裝pip install redis的python庫
gathering = smart
facts_caching_timeout = 86400 # 設置緩存過期時間86400秒
facts_caching = redis # 使用redis 或者 facts_caching = memcached #使用memcached
#查看redis存儲情況
redis-cli #登陸redis
keyd * #找到所有鍵
select 0 #切換庫
get 鍵的名字 #查看值