ansible的基本概念和使用方法<1>


ansible是一个一键部署服务的软件,类似于saltstack,puppet,但是与后者不同的是,ansible是依赖于ssh连接去执行对应的部署,而后两者是要在需要部署的机器上装agent才可以完成部署,那我如果需要部署相同配置的100台服务器,用ssh连接的方法就显得很高效了。

ansible 10.1.1.60 -m ping

上面这条命令表示用ansible去ping这个ip的主机,-m表示调用ping这个模块,当然ansible还有很多模块,具体看我们在什么环境下使用什么样的模块,但是这条命令有两个条件才可以执行

1,被ping的主机与ansible所在的主机可以通过ssh连接,有这个服务

2,被ping的主机确定已经添加到ansible的管理清单中

在进行ansinle的操作时候,首先ansible需要一个自己的独立的epel源,建议使用阿里云或者epel的源比较好,当源配置完成后,就直接yum install ansible安装成功

阿里源:

 pwd

/etc/yum.repos.d
 

 cat aliBase.repo

[aliBase]
name=aliBase
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/RPM-GPG-KEY-CentOS-$releasever
 

假设我有四台主机,1,2,3,4

要通过1来管理其他三台,需要在装有ansible的1上的/etc/ansible/hosts中配置相关的清单

那我们在hosts中直接写入1的ip:10.1.1.60

再执行我们之前的ping命令看看会发生什么:
ansible的基本概念和使用方法<1>
很明显不行,是因为格式错误,而正确的格式应该是:
ansible的基本概念和使用方法<1>
ansible的基本概念和使用方法<1>
所以ansible的配置清单一定要注意格式的书写
那么在进行执行命令和配置清单之前还有一项重要的操作,那就是为了避免每次ssh连接的时候需要登录密码:
ansible的基本概念和使用方法<1>
所以我们可以在ansible主机上做一个ssh-keygen的免密认证,就是生成公钥和私钥后将公钥交给我们需要连接的主机,避免了每次连接需要输入密码:
ansible的基本概念和使用方法<1>
ansible的基本概念和使用方法<1>
可以看到在用户的家目录下生成了一堆的公钥和私钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@118.24.119.177
我们可以通过上面这条命令将我们生成的公钥交给177这台主机
ansible的基本概念和使用方法<1>
输入一次密码后现在已经完成了认证,
现在我们再次试一下连接看用不用密码:
ansible的基本概念和使用方法<1>
很明显不用

好了,继续讲我们的ansible
那么在进行完公钥认证后,我们ansible的hosts清单中就不需要配置用户和密码这一项了,直接演变成如下:
ansible的基本概念和使用方法<1>
那么如果我们需要管理多个服务器,ssh生成的密钥肯定不止一个,需要不同的密钥去对应管理不同的服务器,我们需要ssh-agent来管理我们的多对密钥,ssh-agent会在下一篇博客有所介绍,今天的ansible先有个初步的了解

上一篇:TCP三次握手四次挥手手动实践


下一篇:MySQL子查询及表的编辑