1

我正在尝试将 Jenkins 与 AWS CodeCommit 集成。Jenkins 在 Ubuntu 14.04 的 AWS EC2 实例上运行。

我关注了这篇博文:http: //blogs.aws.amazon.com/application-management/post/Tx1C8B ​​98XN0AF2E/Integrating-AWS-CodeCommit-with-Jenkins

问题是,sudo -u jenkins aws configure没有执行,因为 jenkins 用户没有权限。

你会怎么办?

以下命令无法正常工作:

sudo -u jenkins git config --global credential.helper '!aws codecommit credential-helper $@'
sudo -u jenkins git config --global credential.useHttpPath true
sudo -u jenkins git config --global user.email "me@mycompany.com"
sudo -u jenkins git config --global user.name "MyJenkinsServer"

jenkins 用户需要什么权限?

提前致谢。

4

2 回答 2

5

我能够使用 SSH 实现这种集成。在某种程度上,我遵循了以下说明: 为 CodeCommit 设置

假设 Jenkins Home 是 /var/lib/jenkins/

  1. 在 Jenkins EC2 实例 (/var/lib/jenkins/.ssh/id_rsa) 上创建一个 ssh 密钥

    ssh-keygen -b 2048 -t rsa -f /var/lib/jenkins/.ssh/id-rsa -a -N
    
  2. 将公有密钥上传给 IAM 用户(IAM 用户必须具有 CodeCommit 访问权限)

    aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body file:///var/lib/jenkins/.ssh/id_rsa.pub
    
  3. 上传密钥时收集 SSHPublicKeyID

    {
     "SSHPublicKey": {
     "UserName": "jenkins",
     "Status": "Active",
     "SSHPublicKeyBody": "ssh-rsa <rsa-key> <host>\n",
     "UploadDate": "2015-09-02T19:18:24.309Z",
     "Fingerprint": "xxx",
     "SSHPublicKeyId": "APK***"
     }
    }
    
  4. 创建/修改 SSH 配置文件

    Host git-codecommit.*.amazonaws.com
      User APK*******
      IdentityFile /var/lib/jenkins/.ssh/id_rsa
      StrictHostKeyChecking no
    
  5. 其中 APK*** 是第 3 步中检索到的 Key ID 的值

  6. 将此文件复制或移动到 /var/lib/jenkins/.ssh/config (或您的 EC2 实例上安装 Jenkins 的任何位置)
  7. 确保 'jenkins' 用户对 /var/lib/jenkins/.ssh 目录具有 0600 权限
  8. 按照您第一次使用的博客文章中的说明创建 Jenkins 作业。但是,对于存储库 URL,请输入 SSH url。(无需凭据)
于 2015-09-02T21:20:19.393 回答
0

完成上述所有步骤后。如果还是不行。克隆 /var/lib/jenkins/.ssh 中的任何分支。它将添加已知的主机条目。

sudo -u jenkins git clone ssh://git-codecommit.<your-region>.amazonaws.com/v1/repos/<your test branch>`
于 2016-11-25T04:54:51.117 回答