如何配置环境变量使Jenkins在Linux虚拟机中使用Ansible ARA插件?
解决Jenkins执行Ansible时加载ARA插件环境变量的方法
以下几种方案都能让Jenkins任务生效,按需选择:
1. 在Jenkins任务中直接注入环境变量
自由风格任务:
进入任务配置,找到「构建环境」区域,勾选「Inject environment variables to the build process」,在「Properties Content」里填入:ANSIBLE_CALLBACK_PLUGINS=$(python3 -m ara.setup.callback_plugins)保存后,任务执行时会自动加载这个环境变量。
流水线任务:
在pipeline代码中通过environment块动态获取并设置变量:pipeline { agent any environment { // 执行命令获取插件路径并去除换行符 ANSIBLE_CALLBACK_PLUGINS = sh(script: 'python3 -m ara.setup.callback_plugins', returnStdout: true).trim() } stages { stage('执行Ansible剧本') { steps { sh 'ansible-playbook your-playbook.yml' } } } }
2. 修改Jenkins运行用户的shell配置文件
Jenkins默认以jenkins用户运行,直接修改该用户的shell配置文件,让环境变量永久生效:
- 切换到jenkins用户:
sudo su - jenkins - 编辑
~/.bashrc或~/.profile文件(非交互式shell优先读.profile),添加一行:export ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)" - 保存后执行
source ~/.bashrc(或source ~/.profile)让配置立即生效,后续Jenkins启动的任务都会继承这个环境变量。
3. 直接在Ansible配置文件中指定插件路径
不需要依赖环境变量,直接在Ansible配置文件里配置回调插件路径:
- 编辑全局配置文件
/etc/ansible/ansible.cfg,或者项目目录下的ansible.cfg(优先级更高) - 在
[defaults]段落下添加:
或者先手动执行callback_plugins = $(python3 -m ara.setup.callback_plugins)python3 -m ara.setup.callback_plugins得到具体路径,直接写死配置(避免动态执行可能的问题):callback_plugins = /usr/local/lib/python3.8/site-packages/ara/plugins/callbacks
内容的提问来源于stack exchange,提问作者Fr0zt
相关产品推荐
相关产品推荐

