当前位置: 首页 > news >正文

解答Ansible在多IP配置中known_hosts报错问题

在使用Ansible进行自动化部署和配置管理时,可能会遇到 known_hosts文件相关的错误。这通常发生在Ansible尝试通过SSH连接到远程主机时,SSH客户端检查远程主机的公钥是否已经记录在本地用户的 known_hosts文件中。如果没有记录或者公钥发生了变化,SSH客户端会拒绝连接并抛出错误。

要解决这个问题,请按照以下步骤操作:

  1. 关闭StrictHostKeyChecking
    可以通过修改Ansible配置或者直接在命令行中设置环境变量来关闭StrictHostKeyChecking。这将允许Ansible连接到未知的主机而不需要交互式地确认密钥。

    ansible_ssh_common_args: '-o StrictHostKeyChecking=no'
  2. 使用ssh-keyscan更新known_hosts
    在运行ansible-playbook之前,可以使用ssh-keyscan工具来扫描目标服务器的SSH密钥,并将其添加到本地用户目录下的 .ssh/known_hosts文件中。

    ssh-keyscan -H <hostname_or_ip> >> ~/.ssh/known_hosts
  3. 清理旧密钥
    如果服务器重新安装了操作系统或更换了SSH密钥,则需要从 .ssh/known_hosts文件中删除旧有条目以避免冲突。

ssh-keygen -R <hostname_or_ip>
  1. 自动处理新键值对
    使用ansible-playbook参数 --ssh-extra-args='-o UserKnownHostsFile=/dev/null', 这样可以临时忽略掉已知主机文件,在某些临时环境和测试场景下非常有用。
  2. 管理多个版本系统上不同IP地址对应相同hostname问题:
    如果你有多个版本系统(如开发、测试、生产)并且它们共享相同域名但IP地址不同,则可能需要为每一个环境维护一个单独版本控制下得 knows_host_file, 并通过ansible配置指定它们:
[dev]
host1 ansible_host=192.x.x.x[test]
host1 ansible_host=193.x.x.x[prod]
host1 ansible_host=194.x.x.xx[all:vars]
ansible_user=myuser[dev:vars]
ansible_ssh_common_args='-o UserKnownHostsFile=./env/dev/.knows_host_file'[test:vars]
ansible_ssh_common_args='-o UserKnownHostsFile=./env/test/.knows_host_file'[prod:vars] 
ansbile_ssh_common_args='-o UserKnowsnHotsFile=./env/prod/.knowsn_hots_file'
  1. 使用 Ansible 的 add host key module:
    Ansible 提供了一个模块用于自动添加新 SSH 密匙至 known hosts 文件, 这样可以确保每次运行 playbook 前都是最新可信任 SSH 密匙。
- name : Add new host key to the known hosts file.
hosts : all 
tasks :
- name : Scan for new ssh host key.
add_hos_key :
name : "{{ inventory_hostname }}"

7 . 定期更新你得 SSH 密匙:
定期更新你得 SSH 密匙是一种好习惯, 可以提高安全性, 同样也要确保 Ansibl 知道最新可信任得 SSH 密匙.

8 . 使用 Ansibl Vault 管理敏感信息:
对于存储敏感信息如密码等, 应该使用 Ansbile Vault 来加密存储.

9 . 监控与审计:
对于所有与 security 相关操作应该进行监控与审计.

10 . 故障排除文档化:
当出现问题解决后应该文档化处理过程及结果供未来参考.

http://www.sczhlp.com/news/75092/

相关文章:

  • kube-proxy 没有正确将流量从 service 转发到其 endpoint
  • ARC186 做题记
  • 做怎么样的网站好咨询公司起名大全参考
  • 做网站很难吗长安网站建设制作公司
  • 生成前端页面的网站易企cms网站模板
  • 电商网站规划的开发背景网站建设开发的规划流程
  • 网站备案怎样提交管局编辑网页用什么软件
  • 邢台企业网站建设价格网站开发部组织架构
  • 视频类html网站模板华为云专业网站定制
  • Java语言实现链表反转的方法
  • 音乐的一些思考
  • ogg-opus协议解析示例2-TOC解析
  • 佟年帮韩商言做网站是第几集wordpress插件怎么用
  • 网站建设注意哪些事项wordpress 建设中
  • 网站开发一般分为几个步骤建立企业网站公司
  • 网站建设 方案下载个人网页代码html个人网页完整代码
  • 山西省建设厅网站首页南昌微信网站建设
  • 新手如何自己建网站wordpress博客好用吗
  • 网站做301根目录在哪无锡网站建设wuxi8878
  • 南京网站建设中企动力做网站需要多钱
  • 智慧团建网站登录密码网店美工主要负责
  • 如何申请个人网站域名我想做个网站怎么做的
  • 洛谷 P13309 演剧
  • 初学Vue
  • PHP生成和解析数独游戏
  • KD-Tree
  • 注册网站云空间wordpress 验证方式
  • Ubuntu 22.04.1上安装MySQL 8.0及设置root密码
  • 影响网站pr的主要因素有哪些网站建设维护学什么科目
  • app定制开发网站有哪些合肥建设局网站官网