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文件说明:

常用参数配置:
    ansible_ssh_host                    # 目标主机地址
    ansible_ssh_port                    # 目标主机端口,默认22
    ansible_ssh_user                    # 目标主机用户
    ansible_ssh_pass                    # 目标主机ssh密码
    ansible_sudo_pass                 # sudo密码
    ansible_sudo_exe                    
    ansible_connection               # 与主机的连接类型,比如:local,ssh或者paramiko
    ansible_ssh_private_key_file  # 私钥地址
    ansible_shell_type                 # 目标系统的shell类型
    ansible_python_interpreter   # python版本
 
格式:[组名] 
    例如 : 
      [test]     # 组名  
      172.16.1.204 # 主机ip  或者172.16.1.204:22 自定义端口
别名
    s1 ansible_ssh_port=22 ansible_ssh_host=172.16.1.204 ansible_ssh_user=bb # 别名s1
    s2 ansible_ssh_port=22 ansible_ssh_host=172.16.1.204 ansible_ssh_user=cc  # 别名s2

 

posted @ 2020-07-01 11:35  syingBlog  阅读(544)  评论(0编辑  收藏  举报