Ansible入门篇(二):SSH配置免密互信

Ansible是用来处理大批量重复性操作的工具,只需要在一台机器上就可以远程控制所有机器,但前提是必须保证每台机器之间SSH可以相互免密登录。关于Ansible的安装和环境准备请参考Ansible环境的准备

注: 有关Ansible的所有操作只需在第一台机器上修改和执行,其它机器只需知道IP地址即可。

 

免密安装机器


172.18.18.120 

172.18.18.121

172.18.18.122

 

配置所有免密机器用户名及密码


编辑/etc/ansible/hosts 文件增加配置如下:

[ssh]
172.18.18.120 ansible_ssh_user=root ansible_ssh_pass=123456
172.18.18.121 ansible_ssh_user=root ansible_ssh_pass=123456
172.18.18.122 ansible_ssh_user=root ansible_ssh_pass=123456

 

编写yml执行文件

编辑/opt/ansible/sshKey.yml文件如下:

- hosts: ssh
  gather_facts: no


  tasks:
    - name: enforce env   
      shell: source /etc/profile
      run_once: true
    - name: close ssh check 
#关闭初次访问提示询问   
      shell: sed -i "s/^.*StrictHostKeyChecking.*$/   StrictHostKeyChecking no/g" /etc/ssh/ssh_config
    - name: delete /root/.ssh/
      file: path=/root/.ssh/ state=absent
    - name: generating public/private rsa key pair 
#生成公钥和私钥
      shell: ssh-keygen -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa
    - name: view id_rsa.pub 
#将公钥设置成变量
      shell: cat /root/.ssh/id_rsa.pub
      register: sshinfo
    - set_fact: sshpub={{sshinfo.stdout}}
    - name: add ssh record
#合并各个节点公钥
      local_action: shell echo {{sshpub}} >> {{AnsibleDir}}/roles/templates/authorized_keys.j2
    - name: copy authorized_keys.j2 to all
#分发到各个节点上
      template: src={{AnsibleDir}}/roles/templates/authorized_keys.j2 dest=/root/.ssh/authorized_keys mode=0600
      tags:
       - install ssh

 

执行免密安装

ansible-playbook  /opt/ansible/sshKey.yml

 

 

 

文章目录:

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值