AWX容器17.0.1 GUI执行Playbook时日期时区异常求助
问题原因分析
- 任务执行上下文的环境变量传递缺失:AWX通过GUI触发任务时,实际执行任务的是
awx_task容器。虽然你已经在docker-compose.yml中为容器设置了TZ环境变量,但AWX调度任务时,并未将该变量传递到Ansible的执行上下文,导致lookup('pipe', 'date')命令默认以UTC时区运行。 timezone模块作用范围误解:你使用的timezone模块用于设置目标主机的系统时区,而lookup(pipe)是在AWX的任务执行容器(awx_task)内运行的,两者作用环境完全独立,因此该配置无法影响lookup的输出结果。
配置调整建议
方法1:在Playbook中强制指定时区执行date命令
修改全局变量定义,直接为date命令指定时区,绕过上下文环境变量限制:
TIMESTAMP_BANGKOK: "{{ lookup('pipe', 'TZ=Asia/Bangkok date +%Y-%m-%dT%H:%M:%SZ') }}"
方法2:在AWX中配置全局自定义环境变量
通过AWX GUI为所有任务统一传递时区变量:
- 登录AWX GUI,进入Settings页面
- 找到Custom Environment Variables选项
- 添加键值对:
TZ: Asia/Bangkok - 保存设置后重新触发任务,
lookup(pipe)将继承该时区配置
方法3:确认docker-compose.yml的环境变量格式正确性
检查配置文件中environment字段的语法是否规范,正确格式示例:
services: awx_task: environment: TZ: Asia/Bangkok awx_web: environment: TZ: Asia/Bangkok awx_postgres: environment: TZ: Asia/Bangkok awx_redis: environment: TZ: Asia/Bangkok
如果原配置中environment后缺少冒号(:),会导致环境变量未加载,修正后重启容器即可。
内容的提问来源于stack exchange,提问作者Nookseal Chansakunviboon
相关产品推荐
相关产品推荐

