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

Ansible执行Tomcat Native配置命令失败,手动执行正常求助

排查Ansible执行tomcat-native configure失败问题

问题场景

Ansible任务配置如下:

- name: configure tomcat apr native library
  become_user: root
  become: true
  shell: "./configure --with-ssl=/usr/local/ssl --with-java-home=/usr/lib/jvm/java-11-amazon-corretto"
    chdir: "/opt/tomcat/bin/tomcat-native-1.2.23-src/native"
  register: configureoutput

执行后报错:

./configure: line 3139: cd: /bin/apr-1-config//usr/lib64/apr-1/build: Not a directory
cp: cannot stat '/apr_rules.mk': No such file or directory

对应configure文件3139行APR_BUILD_DIR="cd $APR_BUILD_DIR && pwd",说明APR_BUILD_DIR取值异常。但手动执行完全相同命令可正常生成Makefile,且该任务2月10日执行正常合并主分支,2月15日部署失败时代码提交哈希无变化、无MR/PR合并。

排查方向

1. 环境变量差异

Ansible的shell模块默认不加载用户完整环境变量(如.bashrc/.profile),而手动执行是在交互式shell中,环境变量更完整:

  • 在任务中添加步骤打印关键环境变量,对比手动执行结果:
    - name: Print key environment variables
      become_user: root
      become: true
      shell: echo $APR_BUILD_DIR && echo $PATH && which apr-1-config
      chdir: "/opt/tomcat/bin/tomcat-native-1.2.23-src/native"
    
  • 重点确认apr-1-config是否在Ansible的PATH中,以及APR_BUILD_DIR是否被错误赋值。

2. 目标机器系统环境变更

代码未变,但2月10日到15日期间目标机器可能存在系统层面的变更:

  • 检查APR依赖包状态:确认apr-devel包是否存在,/usr/lib64/apr-1/build目录是否完好,apr-1-config命令能否正常执行。
  • 检查系统自动更新:是否有yum/dnf自动更新导致依赖库版本变化,或/opt/tomcat目录权限被修改(确认root用户能否正常访问该路径下所有文件)。

3. Ansible执行上下文差异

  • 确认Ansible执行时的用户、工作目录与手动执行完全一致:比如手动执行是否也是root用户,是否在相同的chdir路径下。
  • 尝试用登录shell执行命令,模拟手动执行的环境:
    shell: bash -lc "./configure --with-ssl=/usr/local/ssl --with-java-home=/usr/lib/jvm/java-11-amazon-corretto"
    

4. 缓存或残留文件干扰

之前的执行可能残留错误的临时文件,导致本次执行异常:

  • 清理残留文件后重新执行configure:
    - name: Clean previous build artifacts
      become_user: root
      become: true
      shell: make clean && rm -f config.cache config.log
      chdir: "/opt/tomcat/bin/tomcat-native-1.2.23-src/native"
    

内容的提问来源于stack exchange,提问作者Evgeniy Pozdnyakov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:56:08