You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Ansible自动接受Unix版MS ODBC的EULA完成CentOS7系统更新

解决CentOS7更新时MS ODBC驱动EULA交互问题方案

方案1:预设RPM全局宏(长期生效,适配安装/更新全场景)

MS ODBC驱动的RPM包在安装、更新时都会读取RPM全局宏判断是否已接受EULA,提前写入配置即可永久跳过交互确认,在系统更新任务前新增如下任务:

- name: 预配置接受MS ODBC驱动EULA
  copy:
    content: "%_msodbcsql_eula_acceptance yes"
    dest: /etc/rpm/macros.msodbcsql
    mode: '0644'

方案2:给更新任务传递生效环境变量

之前环境变量不生效,通常是因为没有绑定到dnf模块的执行上下文,子进程无法继承全局环境变量,调整后的完整任务写法如下:

tasks:
  - name: 预配置接受MS ODBC驱动EULA
    copy:
      content: "%_msodbcsql_eula_acceptance yes"
      dest: /etc/rpm/macros.msodbcsql
      mode: '0644'

  - name: 更新系统全量包
    dnf:
      name: '*'
      state: latest
    environment:
      ACCEPT_EULA: Y

补充说明

  • 若CentOS7未安装dnf,可直接将dnf模块替换为yum模块,配置逻辑完全一致
  • 若仅需临时处理单次更新,可省略写RPM宏的任务,仅给更新任务加environment参数即可

内容的提问来源于stack exchange,提问作者Kevin Nelson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:45:03