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