? ? ? ? 企业中为了维护服务器方便,我们第一次初始化时一般会创建服务器免密登录。这样后续管理服务器时只需在hosts文件中填写服务器IP即可维护。下面是ansible批量配置服务器免密登录方式。
一、Ansible服务器批量免密认证准备
1、关闭服务ssh登录验证,取消host_key_checking注释即可
# vi?/etc/ansible/ansible.cfg
[defaults]
host_key_checking = False
2、Ansible服务器需生成本地用户密钥
#输入以下命令,全部默认回车即可。也可以单独设置密钥密码
#ssh-keygen -t rsa?
二、Ansible批量认证脚本
#vi sshkey.yml
---
- hosts: all
gather_facts: no
tasks:
- name: install ssh key
authorized_key: user=root
key="{{ lookup('file','/root/.ssh/id_rsa.pub')}}"
state=present
三、hosts主机文件
hosts可以填写服务器密码,也可以指定服务器密钥所在位置
# vi hosts
[hosts]
#服务器使用密码认证
10.0.1.40 ansible_ssh_port=22 ansible_ssh_user='root' ansible_ssh_pass='Admin@1234'
10.0.4.55 ansible_ssh_port=22 ansible_ssh_user='root' ansible_ssh_pass='Admin@1234'
#服务器使用密钥认证
10.0.4.60 ansible_ssh_port=22 ansible_ssh_private_key_file=/etc/ansible/ssh_key_file/60-key
10.0.4.16 ansible_ssh_port=22 ansible_ssh_private_key_file=/etc/ansible/ssh_key_file/16-key
四、运行服务器免密脚本
ansible-playbook -i hosts sshkey.yml
其他Ansible企业运维实例
?
|