ansible不使用ssh免密远程部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ansible不使用ssh免密远程部署相关的知识,希望对你有一定的参考价值。

参考技术A

有时候,集群在一个内网环境,出于安全考虑,集群内的机器不会做互信,即ssh免密登录,此时使用ansible去部署多套机器就需要写一下到配置文件了。
修改/etc/ansible/hosts如下

注意上述文件中的密码要使用括号括住,否则可能报错如下
invalid/incorrect password:
修改/etc/ansible/ansible.cfg如下选项假如注释要打开

host_key_checking = False
此时在执行

即可查看可以ssh通其他机器

使用ansible实现批量免密认证

一、目的

批量实现免密认证,适合管理大批量机器使用


二、步骤


1-1.第一种方式:收集被控制主机的公钥,用于构建并验证ssh_known_hosts

# ssh-keyscan 10.246.151.88 >>/root/.ssh/known_hosts

1-2.第二种方式:第一次链接被控制的机器的时候,不检查private key,建议使用这种方式,比较方便

# tail -1 /etc/profile
export ANSIBLE_HOST_KEY_CHECKING=False


2.yml文件

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


3.hosts文件如下,将密码一同写入

# cat hosts 
[ssh]
192.168.228.[126:170]
[ssh:vars]
ansible_ssh_pass="123456"


4.执行

# ansible-playbook -i hosts key.yml


以上是关于ansible不使用ssh免密远程部署的主要内容,如果未能解决你的问题,请参考以下文章

自动化运维Ansible之安装部署

如何利用Gitlab-ci持续部署到远程机器?

分享吧基于Ansible实现平台自动部署初探

Ansible架构介绍及部署

Ansible处理指纹问题

ansible基本用法