ansible批量免秘登录

主控机 10.22.0.185 centos7

被控机 10.22.0.186 centos7

一、主控机安装ansible 

  yum install -y ansible

二、主控机生产秘钥

  ssh-keygen -t rsa

三、主控机编写ansible文件(这个才是重点)

  3.1 取消每次敲命令输入密码参数 

    echo "export ANSIBLE_HOST_KEY_CHECKING=False" >>/etc/profile

    source /etc/profile

  3.2 添加 /etc/ansible/key.yaml文件

---
- hosts: all
  tasks:
    - name: Non secret authentication
      authorized_key: user=root key="{{ lookup('file', '~/.ssh/id_rsa.pub') }}"  state=present

    3.3 /etc/ansible/hosts文件如下,将密码一同写入

[ssh]
192.168.228.[126:170]
[ssh:vars]
ansible_ssh_pass="123456" #这个key是ansible默认的

  四、执行命令

  # ansible-playbook  /etc/ansible/key.yml

五、测试是否成功

  ssh 10.22.0.186

inventory内置参数,如下:

ansible_ssh_host # 要连接的主机名
ansible_ssh_port # 端口号默认是22
ansible_ssh_user # ssh连接时默认使用的用户名
ansible_ssh_pass # ssh连接时的密码
ansible_sudo_pass # 使用sudo连接用户是的密码
ansible_ssh_private_key_file # 秘钥文件如果不想使用ssh-agent管理时可以使用此选项
ansible_shell_type # shell的类型默认sh
ansible_connection # SSH 连接的类型: local , ssh , paramiko在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh (支持的前提)
ansible_python _ interpreter #用来指定 python 解释器的路径,同样可以指定ruby 、perl 的路径
原文地址:https://www.cnblogs.com/kevincaptain/p/10001174.html