当前位置: 首页 > 面试题库 >

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

郑嘉年
2023-03-14
问题内容

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

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

问题是,由于jenkins用户没有权限,因此不会执行 sudo -u jenkins aws configure

你会怎么做?

以下命令无法正常运行:

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用户需要什么权限?

提前致谢。


问题答案:

我能够使用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***"
     }
    }
  1. 创建/修改SSH配置文件
        Host git-codecommit.*.amazonaws.com
      User APK*******
      IdentityFile /var/lib/jenkins/.ssh/id_rsa
      StrictHostKeyChecking no
  1. 其中APK ***是在步骤3中检索到的密钥ID的值

  2. 将此文件复制或移动到/var/lib/jenkins/.ssh/config(或EC2实例上安装了Jenkins的任何位置)

  3. 确保’jenkins’用户对/var/lib/jenkins/.ssh目录具有0600权限
  4. 按照您首次使用的博客文章中的描述创建一个Jenkins职位。但是,对于存储库URL,请输入SSH URL。(无需凭据)


 类似资料:
  • 我正在ec2实例上运行neo4j,我可以看到它正在运行http://ip:7474/browser在ec2上,我无法在elastic beanstalk上通过php访问它。文件路径显示空白页。 我还将弹性beanstalk实例的公共ip作为自定义TCP添加到linux ami实例中。有什么我遗漏的吗?我真的很感谢你的帮助。提前谢谢。

  • 我一直在尝试使用Vagrant在ubuntu上安装Jenkins。即使我没有得到任何错误的过程中,我无法打开http://localhost:8080 以下是我的步骤: 在MAC上安装Vagrant和Virtual Box 为流浪汉创建文件夹 阴道炎便当/ubuntu-16.04 nano Vagrantfile-从端口删除hasztag,并将其转发到8080 流浪汉上路 流浪汉 安装git: S

  • 问题内容: 我在Ubuntu上获取对.mdb文件(MS-Access db)的访问权限时遇到问题。我需要完全访问权限(也可以读写)。 最初,项目是使用odbc在Windows上构建的(并且一切正常。)但是当我在linux服务器上移动它时出现了问题。 目前,已安装用于odbc的PHP扩展。但是我找不到用于Access的任何免费的ODBC驱动程序。我尝试使用MDB工具,但似乎仅适用于阅读。 也许有人可

  • 我正在尝试运行一个groovy脚本,该脚本正在更新构建。说明在从属节点上运行进程时执行期间。 我的问题是系统groovy脚本仅在主节点上执行,而Jenkinsgroovy脚本在从节点上运行,但无法访问变量。 我有一个类似的脚本: 有没有办法修改在从服务器上运行的“JenkinsGroovy脚本”上的构建变量? 提前感谢!

  • 我有一个运行在EC2机器上的Nifi实例,并且我正在尝试访问一个受限制的s3 bucket。因为不建议手动生成访问密钥,所以我希望为机器提供访问外部桶的正确IAM角色。 我给了EC2机器一个角色,这个角色似乎适用于除NIFI之外的所有应用程序。是否有一些特殊的配置我需要设置Nifi不使用手动访问键?

  • 我在windows机器上用虚拟盒子管理器运行Ubuntu。在VM box ubuntu中,我正在运行一个python flask应用程序,它运行在http://localhost:5000上。 我尝试使用我使用获得的虚拟机盒IP访问Windows计算机上的虚拟机框本地主机URL。但它说: 我访问它的方式正确吗? 这是我的蟒蛇烧瓶代码: