一、安装
brew install
ansible
#sudo pip install ansible
二、配置免密登陆
网上有很多
三、创建目录和文件
Mac中/etc/ansible/这个目录下是没有任何文件的,里面需要的任何文件都需要自己去创建
/etc/ansible/这个目录,ansible目录里面创建ansible.cfg 这个文件,和指定一个inventorys目录,以后被管节点的服务器的内容都会放在这里,
ansible.cfg文件内容:
[defaults]
inventory=/etc/ansible/inventorys/ /**放置节点服务器名目录**/
remote_user = 用户名 /**免密节点服务器用户名**/
指定用户名也可以
cat /etc/ansible/inventorys/webtest
[webtest]
192.168.10.48 ansible_user=用户名
192.168.10.50 ansible_user=用户名
这样问题就是如果批量使用服务器多的话就很麻烦
四、开始配置透过堡垒机的操作。
1、第一步就是能是客户机免密登陆服务器,这边我这里就不讲了,不会的自己百度
2、在Mac中的~/.ssh中创建config文件,有的忽略,默认是没有的,在config文件中输入一下内容
#跳板机
Host blj
HostName 堡垒机ip
Port 堡垒机端口号
User 堡垒机账号
IdentityFile ~/.ssh/id_rsa
#跳板机授权服务器
Host rp-blj
HostName 授权服务器ip
Port 服务器端口号
User 服务器用户名
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh blj -W %h:%p
3、使用ssh测试堡垒机和服务器是否能免密登陆
ssh blj 和ssh rp-blj
能登陆就说明成功了
当然了,堡垒机里面要设置好,我这里是阿里云的,所以就不讲了
4、切换到ansible目录下,进入到ansible.cfg,这个文件是不能有#注销内容的,不然会报错的
这个文件因为权限的问题,需要用到sudo提权进入修改,不然不能保存
在[defaults]里面添加
[defaults]
ssh_args = -o ControlMaster=auto -o ControlPersist=5d
transport = ssh
#创建
[ssh_connection]
ssh_args = -F /Users/pzczyy/.ssh/config #你的Mac .ssh目录,
scp_if_ssh = True
下面是我的ansible.cfg内容
[defaults]
inventory=/etc/ansible/inventorys/
remote_user = 服务器用户名
deprecation_warnings = False
pipelining = True
ssh_args = -o ControlMaster=auto -o ControlPersist=5d
transport = ssh
[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0
[ssh_connection]
ssh_args = -F /Users/pzijyy/.ssh/config
scp_if_ssh = True
保存退出
5、进入/etc/ansible/inventorys/目录
创建文件
vim name
[name]
rp-blj
这里我是文件名和[]里面的名字是一样的,下面的rp-blj是.ssh/config定义的授权服务器的名字。通过ansible.cfg里面定义的路径去找。
这样就配置成功了
测试下
ansible name -m ping
web2-blj | SUCCESS => {
"changed": false,
"ping": "pong"
}
web1-blj | SUCCESS => {
"changed": false,
"ping": "pong"
}
我这里有两台