Анд*_* Ка 6 encryption terminal amazon-s3 amazon-web-services jenkins
我正在尝试编写一个脚本,在Jenkins的帮助下将查看git中的更新文件,下载并使用AWS KMS加密它们.我有一个工作脚本,可以完成所有工作,并将文件下载到本地服务器上的Jenkins存储库.但我的问题是在Jenkins repo中加密这个文件.基本上,当我加密本地计算机上的文件时,我使用命令:
aws kms encrypt --key-id xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx --plaintext fileb://file.json --output text --query CiphertextBlob | base64 --decode > Encrypted-data.json
Run Code Online (Sandbox Code Playgroud)
并且一切正常,但如果我尝试使用Jenkins,我会收到AWS命令未找到的错误.
有人知道如何解决这个问题,我如何通过Jenkins运行AWS?这是我的工作代码,它在最后一行分解:
bom_sniffer() {
head -c3 "$1" | LC_ALL=C grep -qP '\xef\xbb\xbf';
if [ $? -eq 0 ]
then
echo "BOM SNIFFER DETECTED BOM CHARACTER IN FILE \"$1\""
exit 1
fi
}
check_rc() {
# exit if passed in value is not = 0
# $1 = return code
# $2 = command / label
if [ $1 -ne 0 ]
then
echo "$2 command failed"
exit 1
fi
}
# finding files that differ from this commit and master
echo 'git fetch'
check_rc $? 'echo git fetch'
git fetch
check_rc $? 'git fetch'
echo 'git diff --name-only origin/master'
check_rc $? 'echo git diff'
diff_files=`git diff --name-only $GIT_PREVIOUS_COMMIT $GIT_COMMIT | xargs`
check_rc $? 'git diff'
for x in ${diff_files}
do
echo "${x}"
cat ${x}
bom_sniffer "${x}"
check_rc $? "BOM character detected in ${x},"
aws configure kms encrypt --key-id xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx --plaintext fileb://${x} --output text --query CiphertextBlob | base64 --decode > Encrypted-data.json
done
Run Code Online (Sandbox Code Playgroud)
在与您讨论之后,这个问题是如何解决的:
首先通过configure
从中删除命令来更正命令.
安装了jenkins用户的awscli:
pip install awscli --user
使用aws
脚本中的绝对路径,
例如.如果~/.local/bin/aws kms encrypt --key-id xxxxxxx-xxx-xxxx-xxxx-xxxxxxxxxx --plaintext fileb://${x} --output text --query CiphertextBlob | base64 --decode > Encrypted-data.json
你的脚本中有〜/ .local/bin/use .或者在PATH中添加aws的路径.
归档时间: |
|
查看次数: |
6379 次 |
最近记录: |