jenkins 下使用ansible 跨服务器控制操作
例如:
A服务器地址:172.16.1.203
B服务器地址:172.16.1.204
当jenkins 在A 服务器并且用户aa, 控制B 服务器的用户bb的操作
(1)B服务器 用ssh-keyscan命令将公钥添加到本地的known_hosts文件里面去
如:ssh-keyscan 172.16.1.204 >> /root/.ssh/known_hosts (默认端口22)
如带端口1234:ssh-keyscan -p 1234 172.16.1.204 >> /root/.ssh/known_hosts
然后将B服务器里的known_hosts 里面的内容复制到A服务器:aa用户下 : home/aa /.ssh/known_hosts
如果是A服务器是用root用户下:/root/.ssh/known_hosts
(2)拷贝A的id_rsa.pub( /home/aa/.ssh/id_rsa.pub)内容到B服务器.ssh目录下的authorized_keys文件中
vi home/bb/.ssh/authorized_keys
(注:id_rsa.pub是用命令ssh-keygen -t rsa运行后可以一直空格,生成密钥,id_rsa和id_rsa.pub文件 ,默认放在/root/.ssh/下)
(3) A服务器里找到/etc/ansible/hosts
(如果没有ansible需要先安装(yum install ansible), 查看ansible 的版本 ansible --version)
cat /etc/ansible/hosts
hosts文件里添加一行:
172.16.1.204 ansible_ssh_port=22 ansible_ssh_user=bb host_key_checking=False ansible_ssh_host=172.16.1.204
(注:如果需要同一台服务器下操作多个用户时,其它操作都一样,就是/etc/ansible/hosts配置使用不同的别名即可)
(4)在A服务器里ssh 172.16.1.204 将无密码进入B服务器,即代表配置成功
hosts文件说明: