我正在自动从Jenkins创建AWS IAM用户。我们有多个具有程序访问权限的帐户。我正在尝试从CLI创建一个帐户的用户帐户。它在CLI上运行正常,但在jenkins Pipeline上却无法正常运行。
通过CLI输出
aws iam create-user --user-name --profile test tets
{
"User": {
"Path": "/",
"UserName": "tets",
"UserId": "AIDAXTRPYNIV6HK7XE43R",
"Arn": "arn:aws:iam::523012434475:user/tets",
"CreateDate": "2019-09-18T06:49:41Z"
}
node
{
stage ('creating IAM user'){
sh 'aws iam create-user --user-name --profile test $Username'
}
找不到配置文件(测试) 是我从詹金斯管道获得的错误。
AWS CLI在jenkins服务器上配置。通过ssh,我可以执行所有命令。
答案 0 :(得分:1)
我也遇到了这个问题。花了一个小时取消选择,但为了节省其他人的时间(希望他们有相同的设置),FWIW:
我们在AWS(以“ ubuntu”为用户构建)的ec2实例上使用jenkins。 jenkins的实际主目录位于/ data / jenkins
以ubuntu用户身份登录服务器,将您以ubuntu身份放入shell。 cd〜#带您到主目录(您已经在) pwd#在/ home / ubuntu中显示您 sudo su -jenkins#更改为jenkins用户 cd〜#实际上 still 会将您带到/ home / ubuntu pwd#证明您仍在/ home / ubuntu
在此位置使用配置和凭据创建.aws文件夹意味着您无法在管道中将--profile开关与aws cli命令一起使用。 jenkins主目录实际上是/ data / jenkins,因此,当管道运行时,对aws cli的调用将在/ data / jenkins中寻找.aws文件夹
将.aws文件夹从/ home / ubuntu复制到/ data / jenkins,为jenkins:jenkins锁定对象并确保已读取读权限(我使用chmod 660),这意味着在cli运行时,它应该在/ data中看到配置/ jenkins和令人讨厌的“找不到配置文件”