SSH 远程管理服务实战

SSH、Ansible,批量管理服务项目

1,下载ansible

yum install ansible

2,修改模块下面的机器并配置用户密码

cat >/etc/ansible/hosts<

3.关闭公钥认证的方法

#[defaults]
host_key_checking = False
#直接设置环境变量
命令为:
export ANSIBLE_HOST_KEY_CHECKING=False

4,解除yes/no 实现免密登录

方法1:修改 /etc/ansible/ansible.cfg中的374行
369 [ssh_connection]
370 
371 # ssh arguments to use
372 # Leaving off ControlPersist will result in poor performance, so use
373 # paramiko on older platforms rather than removing it, -C controls compression use
374 #ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s

374行改为:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

方法2:修改 /etc/ansible/ansible.cfg中的71行
 70 # uncomment this to disable SSH key host checking
 71 #host_key_checking = False
 
71行的注释取消:host_key_checking = False
打开/etc/ssh/ssh_config,修改以下配置项

 vi /etc/ssh/ssh_config
#  StrictHostKeyChecking ask
   StrictHostKeyChecking no

5,分发秘钥给各个服务器

#!/bin/bash
ssh-keygen -f ~/.ssh/id_rsa  -P '' -q
for ip in 5 6 7 8 9 10 31 41 51
do
  sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" 172.16.1.$ip
done

6,创建一个存放剧本的目录

mkdir -p /etc/ansible/yaml

进行优化

(1)

在ansible.cfg配置文件中的[defaults ]下添加
callback_whitelist = profile_tasks
参数就可以调用时间插件。

(2)

关闭 gathering facts
在 playbook 文件中加上“gather_facts: no”
--- 
 - hosts: 172.16.64.240 
 gather_facts: no 

(3)

SSH pipelining 是一个加速 Ansible 执行速度的简单方法。
 ssh pipelining 默认是关闭,
 398 #pipelining = False
修改 /etc/ansible/ansible.cfg 文件可以开启 pipelining

将

pipelining=False
修改为

pipelining=True
修改完后,可以批量对机器执行命令试下,可以明显感受到速度的提升。

你可能感兴趣的:(SSH 远程管理服务实战)