ansible批量免祕登入
阿新 • • 發佈:2018-11-22
主控機 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 的路徑