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

问题描述 投票:2回答:2

我有一个正在运行的Ansible环境(带有环境变量,动态库存)和多个脚本。最近我将Jenkins添加到同一台服务器上,以便简化自动化。

当我在Jenkins中运行游戏时,我注意到ansible playbooks现在作为'jenkins'而不是'ansible'用户运行。

'jenkins'用户无法完全访问ansible环境变量或动态库存(为'ansible'用户编写)。我想将所有剧本作为原始编码的'ansible'运行。

詹金斯是否存在这样的概念,如果存在,怎么样?

以下URL提供了解决方法。但这看起来更像是一个黑客。 https://issues.jenkins-ci.org/browse/JENKINS-37063

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

jenkins ansible
2个回答
1
投票

我想在那个服务器上你可以创建一个linux组并添加Jenkins和Ansible用户。

这可能会让Jenkins用户访问运行ansible playbooks。

但是对于这种情况,我认为最好的方法是将Jenkins和Ansible保留在不同的服务器中,然后你可以将Ans Ans作为Jenkins的奴隶,然后你可以配置jenkins使用ansible用户运行plabooks。


1
投票

我找到了一种运行Jenkins作为我最初的Ansible用户的方法:

编辑/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将以新用户身份启动。

不要将NAME变量更改为与Jenkins文件夹/配置结构密切相关的变量。

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

© www.soinside.com 2019 - 2024. All rights reserved.