1. 程式人生 > >ansible批量免祕登入

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 的路徑