生成对称密钥
执行以下命令,会在当前用户的.ssh目录下生成id_rsa和id_rsa_pub两个文件。
ssh-keygen -t rsa
root用户:/root/.ssh
普通用户:/home/[username]/.ssh
配置被管理机器的免密
第一种方式:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.106.46
可以直接将公钥写入authorized_keys文件中
第二种方式:
使用SCP传输过去。这里以192.168.106.46为例:
[root@localhost .ssh]# scp id_rsa.pub root@192.168.106.46:/root/.ssh/101_23_id_rsa.pub root@192.168.106.46's password: id_rsa.pub 100% 408 0.4KB/s 00:00
id_rsa.pub 本机文件公钥
/root/.ssh/101_23_id_rsa.pub 目标端写入文件
执行后需要属于远端用户的密码
在192.168.106.46上将公钥写入authorized_keys文件中
cd /root/.ssh
cat 101_23_id_rsa.pub >>authorized_keys
免密配置完成,进行测试
[root@localhost .ssh]# ssh 192.168.106.46 Last login: Mon Jul 31 10:23:40 2017 from 192.168.101.23 [root@106-46 ~]#
已经登录到46这台机器了,可以执行ifconfig等命令查看当前所在的服务器,退出可以使用exit进行退出。
centos下安装ansible
第一种方式:
yum install epel-release
yum install ansible
第二种方式:
首先到github上找到ansible项目,然后下载release版本
curl -o ansible.tar.gz https://codeload.github.com/ansible/ansible/tar.gz/v2.3.2.0-0.5.rc5 tar zxvf ansible.tar.gz cd ansible-2.3.2.0-0.5.rc5 python setup.py install #安装完成拷贝配置文件,若使用yum安装会自动生成该目录 mkdir /etc/ansible cd examples cp hosts ansible.cfg /etc/ansible/
安装完成后测试一下:
ansible all -m ping
目前host里边还没有组,所以没有执行。
将已经设置好免密的两台机器,46和51加入到ansible的host
vi /etc/ansible/hosts
执行测试
测试一下dbtest组是否可以联通
ansible dbtest -m ping
测试成功。 ansible可以将多台机器当作一个组,然后统一执行相同的命令,简化了监控与管理过程。
再测试一下远程执行:-v显示执行结果