无法让 ARA 在非默认目录上运行

无法让 ARA 在非默认目录上运行

我没有在默认位置安装 ARA,我也没有此服务器上的“root”。因此,我使用名为 service_acct 的“服务帐户”进行安装。这导致我不得不使用一些技巧才能完成这一步,其中我必须将 PYTHONUSERBASE 设置为目录(ARA 是此服务器上唯一使用 Python 的东西,因此应该没问题)。

export PYTHONUSERBASE=/dsk01/software/ara

我安装了以下先决条件:

gcc python-devel libffi-devel openssl-devel redhat-rpm-config


python get-pip.py --user
pip install --user ara

我已将以下环境变量添加到运行 ARA 的系统帐户和将运行 Ansible 播放的用户帐户。当我 grep“printenv”时,我可以看到这些值。

ARA_DATABASE=sqlite:////dsk01/software/ara/.ara/ansible.sqlite
ARA_DIR=/dsk01/software/ara/.ara
ARA_LOG_FILE=/dsk01/software/ara/.ara/ara.log
ARA_HOST=42.34.25.77
ARA_PORT=9191
PYTHONUSERBASE=/dsk01/software/ara

这是 ansible.cfg

[defaults]
callback_plugins=/dsk01/software/ara/lib/python2.7/site-packages/ara/plugins/callbacks
action_plugins=/dsk01/software/ara/lib/python2.7/site-packages/ara/plugins/actions


[ara]
dir = /dsk01/software/ara/.ara
host = 42.34.25.77
port = 9191
logfile = /dsk01/software/ara/.ara/ara.log
database = sqlite:////dsk01/software/ara/.ara/ansible.sqlite
local_tmp = /dsk01/software/ara/.ansible/tmp

当我访问 ARA 网络界面时,它显示:

ARA 数据库为空或 Web 应用程序配置不正确,无法找到您的剧本数据。

我只是依赖默认的 Web 服务器和数据库。所以我没有配置 Web 服务器设置或 SQLite DB 上的任何内容。

当我运行 Ansible-playbook 时,它会给我错误消息:

[警告]:跳过插件(/dsk01/software/ara/lib/python2.7/site-packages/ara/plugins/callbacks/log_ara.py),因为它似乎无效:无法配置处理程序“ara_file”:[Errno 13] 权限被拒绝:“/home/service_acct/.ara/ara.log”

ARA 不断将其日志文件写入 /home/service_acct/.ara/ara.log。当我使用以下命令启动 Web 服务器时,我可以看到写入的内容:ara-manage runserver。它从不将任何内容写入 /dsk01/software/ara/.ara/ara.log。

这很奇怪,因为 ARA 使用我设置的自定义设置(例如 IP),例如服务器的 IP 和端口。启动所以它一直尝试将日志文件写入服务帐户(service_acct),而不是我设置 ARA 的位置。

答案1

我能够解决这个问题。

文档与代码实际执行的操作之间存在差异。因此看起来“ARA_LOG_FILE”用于命名日志文件,而不是声明日志文件的路径。

https://github.com/openstack/ara/blob/ce18a5543bf0550be8e727dc18a6453b9c2d111a/ara/config/logger.py#L82-L84

相关内容