从在EC2(Ubuntu)上运行的Jenkins访问AWS CodeCommit

时间:2015-07-22 14:26:22

标签: ubuntu amazon-web-services jenkins amazon-ec2 aws-codecommit

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

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

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

你会做什么?

以下命令也不起作用:

casper.start("http://www.google.com/", casperFunctions.getPageTitle);

jenkins用户需要哪些权利?

提前致谢。

2 个答案:

答案 0 :(得分:5)

我能够使用SSH实现这种集成。在某种程度上,我遵循了这些指示: Setting up for CodeCommit

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

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

    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中检索到的密钥ID的值

  6. 将此文件复制或移动到/var/lib/jenkins/.ssh/config(或在EC2实例上安装Jenkins的任何地方)
  7. 确保&#39; jenkins&#39;用户拥有对/var/lib/jenkins/.ssh目录
  8. 的0600权限
  9. 按照您最初使用的博客文章中的说明创建Jenkins作业。但是,对于存储库URL,请输入SSH URL。 (无需凭证)

答案 1 :(得分:0)

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

sudo -u jenkins git clone ssh://git-codecommit.<your-region>.amazonaws.com/v1/repos/<your test branch>`