--我在 ubuntu 用户中有一个 ansible playbook,我能够在远程用户中推送这个 playbook
-- 现在我已经在这个 ubuntu(EC2 实例)服务器中安装了 jenkins,并且我已授予 jenkins 所有 sudo 权限 (jenins)[jenkins ALL=(ALL) NOPASSWD: ALL]
--现在我可以从詹金斯主帐户执行(sudo su - ubuntu)
--现在在 Jenkins 用户界面的 Build 下,我已经编写了 bash 命令 ansible-playbook deploy.yml但是我遇到了 ssh 连接失败
-- 我觉得詹金斯从他的家庭账户运行这个命令,这就是发生 ssh 错误的原因
-- 因此在构建部分下我做了
whoami output --jenkins
sudo su - ubuntu (from jenkins home account i am able to run this command )
whoami output -- still jenkins
--所以我去了/etc/defaults/詹金斯文件
sudo vi /etc/default/jenkins $JENKINS_USER="ubuntu" sudo chown -R ubuntu:ubuntu /var/lib/jenkins sudo chown -R ubuntu:ubuntu /var/log/jenkins sudo chown -R ubuntu:ubuntu /var/cache/jenkins sudo chown -R ubuntu:ubuntu /var/run/jenkins
但是现在 systemctl restart jenkins 现在可以工作了,但是服务还没有启动
答案1
不确定你是如何安装 Jenkins 的,但如果你使用了apt-get
,这意味着你的 Jenkins 守护进程很可能正在使用用户启动jenkins
。
您可以使用 检查sudo grep JENKINS_USER /etc/sysconfig/jenkins
。
由于您将所有 Jenkins 文件夹的所有权更改为用户和组ubuntu
,因此 jenkins 用户将无法访问这些文件。
我建议您将所有权改回用户jenkins
,然后使用用户运行您的 Ansible 剧本jenkins
。