以[用户]身份从Jenkins运行Ansible

以[用户]身份从Jenkins运行Ansible,jenkins,ansible,Jenkins,Ansible,我有一个正在运行的Ansible环境(带有环境变量、动态清单)和多个脚本。最近,我将Jenkins添加到同一个服务器中,以使自动化更容易 然而,当我从Jenkins内部运行剧本时,我注意到ansible剧本现在以“Jenkins”而不是“ansible”用户的身份运行 “jenkins”用户不能完全访问ansible环境变量或动态清单(为“ansible”用户编写)。我想把所有的剧本都按照最初的编码“ansible”运行 詹金斯是否存在这样一个概念,如果存在,是如何产生的 下面的URL提供了一种

我有一个正在运行的Ansible环境(带有环境变量、动态清单)和多个脚本。最近,我将Jenkins添加到同一个服务器中,以使自动化更容易

然而,当我从Jenkins内部运行剧本时,我注意到ansible剧本现在以“Jenkins”而不是“ansible”用户的身份运行

“jenkins”用户不能完全访问ansible环境变量或动态清单(为“ansible”用户编写)。我想把所有的剧本都按照最初的编码“ansible”运行

詹金斯是否存在这样一个概念,如果存在,是如何产生的

下面的URL提供了一种解决方法。但这看起来更像是黑客。


我不想更改任何环境变量或移动文件。

我认为在该服务器上,您可以创建一个linux组,并向其中添加Jenkins和Ansible用户

这可能会让Jenkins用户能够运行ansible剧本


但是对于这个场景,我认为最好的方法是将Jenkins和Ansible放在不同的服务器上,然后您可以将Ansible添加为Jenkins的从属服务器,然后您可以配置Jenkins使用Ansible用户运行Plabook

我找到了一种以我最初的Ansible用户身份运行Jenkins的方法:

编辑
/etc/default/jenkins
文件并更改

JENKINS_USER=ansible 
JENKINS_GROUP=ansible 
将变量设置为首选名称。我使用了
ansible
作为我的用户来运行我的所有ansible脚本。按如下所示保存文件并更改文件夹所有者

chown -R ansible:ansible /var/lib/jenkins 
chown -R ansible:ansible /var/cache/jenkins
chown -R ansible:ansible /var/log/jenkins
重新启动服务后,Jenkins将作为新用户启动

不要更改名称变量,因为它与Jenkins文件夹/配置结构有着深刻的联系


然后,我可以通过在同一台机器上运行的Jenkins界面启动所有Ansible脚本。

我知道这篇文章太旧了,但是我在Jenkins服务器上安装了Ansible,使用Jenkins用户:sudo su-Jenkins-s/bin/bash首先切换到此用户然后使用sudo yum install安装Ansibleansible因此jenkins用户拥有ansible安装、配置和执行ansible命令的权限

同样的概念也适用于ansible galaxy和ssh genkey 无密码连接


。通过这种方式,jenkins可以使用jenkins用户在管道执行期间触发对ansible的调用。我希望它适用于寻找解决方法的新手

对!!我可以这样做,但我希望有一个简单的方法来解决这个问题,而不涉及额外的硬件和Jenkins的特权。如果我能让Jenkins以我最初的ansible用户的身份运行,这将得到解决。