在 EC2 (Ubuntu) 上从 Jenkins 运行 访问 AWS CodeCommit
Access AWS CodeCommit from Jenkins running on EC2 (Ubuntu)
我正在尝试将 Jenkins 与 AWS CodeCommit 集成。 Jenkins 运行 在 AWS EC2 实例上 Ubuntu 14.04.
问题是,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 用户需要什么权限?
提前致谢。
我能够使用 SSH 实现此集成。在某种程度上,我遵循了以下说明:
Setting up for CodeCommit
假设 Jenkins Home 是 /var/lib/jenkins/
在 Jenkins EC2 实例上创建一个 ssh 密钥 (/var/lib/jenkins/.ssh/id_rsa)
ssh-keygen -b 2048 -t rsa -f /var/lib/jenkins/.ssh/id-rsa -a -N
将 public 密钥上传给 IAM 用户(IAM 用户必须具有 CodeCommit 访问权限)
aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body file:///var/lib/jenkins/.ssh/id_rsa.pub
上传密钥时收集 SSHPublicKeyID
{
"SSHPublicKey": {
"UserName": "jenkins",
"Status": "Active",
"SSHPublicKeyBody": "ssh-rsa <rsa-key> <host>\n",
"UploadDate": "2015-09-02T19:18:24.309Z",
"Fingerprint": "xxx",
"SSHPublicKeyId": "APK***"
}
}
Create/modify SSH 配置文件
Host git-codecommit.*.amazonaws.com
User APK*******
IdentityFile /var/lib/jenkins/.ssh/id_rsa
StrictHostKeyChecking no
其中 APK*** 是在步骤 3 中检索到的密钥 ID 的值
- 将此文件复制或移动到 /var/lib/jenkins/.ssh/config(或 EC2 实例上安装 Jenkins 的任何位置)
- 确保 'jenkins' 用户对 /var/lib/jenkins/.ssh 目录具有 0600 权限
- 按照您第一次使用的博客 post 中的描述创建 Jenkins 作业。但是,对于存储库 URL,请输入 SSH url。 (无需凭据)
完成上述所有步骤后。如果还是不行。
克隆 /var/lib/jenkins/.ssh 中的任何分支。它将添加已知主机条目。
sudo -u jenkins git clone ssh://git-codecommit.<your-region>.amazonaws.com/v1/repos/<your test branch>`
我正在尝试将 Jenkins 与 AWS CodeCommit 集成。 Jenkins 运行 在 AWS EC2 实例上 Ubuntu 14.04.
问题是,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 用户需要什么权限?
提前致谢。
我能够使用 SSH 实现此集成。在某种程度上,我遵循了以下说明: Setting up for CodeCommit
假设 Jenkins Home 是 /var/lib/jenkins/
在 Jenkins EC2 实例上创建一个 ssh 密钥 (/var/lib/jenkins/.ssh/id_rsa)
ssh-keygen -b 2048 -t rsa -f /var/lib/jenkins/.ssh/id-rsa -a -N
将 public 密钥上传给 IAM 用户(IAM 用户必须具有 CodeCommit 访问权限)
aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body file:///var/lib/jenkins/.ssh/id_rsa.pub
上传密钥时收集 SSHPublicKeyID
{ "SSHPublicKey": { "UserName": "jenkins", "Status": "Active", "SSHPublicKeyBody": "ssh-rsa <rsa-key> <host>\n", "UploadDate": "2015-09-02T19:18:24.309Z", "Fingerprint": "xxx", "SSHPublicKeyId": "APK***" } }
Create/modify SSH 配置文件
Host git-codecommit.*.amazonaws.com User APK******* IdentityFile /var/lib/jenkins/.ssh/id_rsa StrictHostKeyChecking no
其中 APK*** 是在步骤 3 中检索到的密钥 ID 的值
- 将此文件复制或移动到 /var/lib/jenkins/.ssh/config(或 EC2 实例上安装 Jenkins 的任何位置)
- 确保 'jenkins' 用户对 /var/lib/jenkins/.ssh 目录具有 0600 权限
- 按照您第一次使用的博客 post 中的描述创建 Jenkins 作业。但是,对于存储库 URL,请输入 SSH url。 (无需凭据)
完成上述所有步骤后。如果还是不行。 克隆 /var/lib/jenkins/.ssh 中的任何分支。它将添加已知主机条目。
sudo -u jenkins git clone ssh://git-codecommit.<your-region>.amazonaws.com/v1/repos/<your test branch>`