环境变量
使用环境变量配置 AnsibleForms
面向部署 AnsibleForms 的管理员:服务器读取的环境变量,按主题分组。
无论 AnsibleForms 是用 Docker Compose 运行、在 Kubernetes 上运行还是从源码运行,都通过环境变量进行调整。
值的来源
服务器从以下来源中第一个设置了该变量的来源读取每个变量,因此列表中位置靠前的值始终优先:
- 进程环境:docker-compose 中的
environment:和env_file:(项目的.env就是这样传入的), Kubernetes 上的env和envFrom,或者启动node的 shell。 persistent/.env,即设置页面写入的文件(在 docker-compose 项目中为data/.env,使用MANAGED_ENV_PATH时为其他路径)。每次启动时都会读取,生产环境中也是如此,并且它永远不会覆盖已经设置的变量。server/.env.<NODE_ENV>,例如.env.development。仅当NODE_ENV不是production时(或设置了FORCE_DOTENV=1时)读取,实际上就是在开发模式下 从源码 运行时。- 内置默认值,显示在每组的表格中。
设置 > 常规 下的设置页面显示当前生效的值,并将更改保存到 persistent/.env。许多变量 保存后立即生效;其他变量会被保存但需要重启,页面会在保存后列出它们。在进程环境中设置的变量 无法在那里修改:页面会将其显示为 已在环境变量中设置,因此无法在此处更改。 少数变量,例如 ENCRYPTION_SECRET 和 ACCESS_TOKEN_SECRET,永远无法通过页面修改。
RTE 读取的变量,例如 AF_ROLE、RTE_MODE、APP_URL 或 RTE_MAX_JOBS,根本不在设置页面上: 应用不使用它们,因此请在 RTE 运行的环境中设置。应用本身读取的 RTE_* 变量, 即 RTE_QUEUE_MINUTES 和 RTE_FILES_MAX_MB,是例外,仍保留在页面上。RTE_MAX_JOBS、 RTE_CACHE_MB、RTE_FILES 和 RTE_DRAIN_SECONDS 这四个 RTE 变量也可以改为在每个 RTE 的运行器页面上设置,那里的值优先于 变量(参见 RTE 的设置)。
当 ALLOW_ENV_EDIT=0 时,页面只显示值,保存会被拒绝。当 环境在清单中声明时请使用它,详见 编辑与审计。
配置种子 不设置任何环境变量。它声明保存在数据库中的对象,其中的 ${ENV_VAR} 引用会从正在运行的服务器的环境中解析。
有几个变量只从环境中读取,不在表格中:上文介绍的 MANAGED_ENV_PATH 和 FORCE_DOTENV, 以及系统代理变量 HTTPS_PROXY 和 NO_PROXY(也会读取小写形式)。出站 RTE 通过 HTTPS_PROXY 连接应用,入站 RTE 也通过它发送注册请求,除非应用的主机在 NO_PROXY 中(主机名、 .domain 后缀,或表示所有主机的 *)。
标记为 机密 的变量保存密码、令牌或密钥:请不要将它们纳入版本 控制,例如放在 Kubernetes Secret 或不提交的 .env 文件中。
本节内容
这些变量按主题分组,每组一个页面:
| 页面 | 内容 |
|---|---|
| Server and database | The web server, trusted proxies, the MySQL connection, the admin account, and what each process runs (app or RTE) |
| Paths | Where the configuration, forms, playbooks, workflows, uploads and backups live |
| Backups and retention | The backup commands, the backup before an upgrade, and how long backups, jobs and audit records are kept |
| Features | The designer, MCP, chat, launch validation, the jobs list, metrics, the AWX API and query logging |
| Configuration | The config seed, where the configuration is kept, git and ytt |
| Security variables | Sign-in limits, passwords, single sign-on, tokens, encryption, the browser policy, outbound REST and jq limits, masking, and the VAULT_* variables, read once to import a secret store |
| Logging | Log levels, the log format, files and how long they are kept, syslog and console colours |