나는 docker 플러그인으로 jenkins 버전 2.89.1을 사용하고 있습니다. ,jinkkins docker plugin in 파이프 라인 사용 -u 플래그, 사용하지 않는 방법
agent {
docker {
image 'myself/ansible:1.0.3'
registryUrl 'https://my-artifactory-pro'
registryCredentialsId 'my-credentials'
args '-v /var/lib/jenkins/workspace/myworkspace:/tmp/' +
' -v /var/lib/jenkins/.ssh:/root/.ssh'
}
}
steps {
echo 'Deploying Ansible Server via docker image'
sh "ansible-playbook -i /tmp/my-inventories-path/
/my-playbooks/teardown.yaml "+
"--extra-vars 'platform=ec2
aws_access_key=${AWS_ACCESS_KEY_ID}
aws_secret_key=${AWS_SECRET_ACCESS_KEY} "+
" eip_bastion_host=${EIP_BASTION_HOST}
eip_load_balancer=${EIP_LOAD_BALANCER} '"
}
파이프 라인은 고정 표시기 컨테이너를 스핀 관리하고 ansible 작전을 실행하려고
: 선언적 파이프 라인의 단계에서 나는 다음과 같은 몇 가지 플레이 북을 실행하기 위해 설치 ansible 2.4.x에서와 고정 표시기 컨테이너를 시작 하지만 다음과 같은 문제에 직면하고 있습니다 :
+ ansible-playbook -i /tmp/my-inventories/ /tmp/my-playbooks/teardown.yaml --extra-vars platform=ec2 aws_access_key=**** aws_secret_key=**** eip_bastion_host=X.X.X.X eip_load_balancer=X.X.X.X
[WARNING]: Unable to set correct type for configuration entry:
DEFAULT_LOCAL_TMP
PLAY [localhost] ***************************************************************
TASK [install_python_pip : Create pip folder] **********************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: KeyError: 'getpwuid(): uid not found: 112'
fatal: [localhost]: FAILED! => {"msg": "Unexpected failure during module execution.", "stdout": ""}
to retry, use: --limit @/tmp/my-playbooks/teardown.retry
PLAY RECAP *********************************************************************
localhost : ok=0 changed=0 unreachable=0 failed=1
는 젠킨스 보면 내가 볼 로그 그 그것은 다음과 같은 방법으로 시작하는 고정 표시기 컨테이너 회전 할 때 :
docker run -t -d -u 112:116 -v /var/lib/jenkins/workspace/my-workspace --entrypoint cat myself/ansible:1.0.3
을
112는 jenkins uid이고 116은 gid 젠킨스입니다.
-u 플래그없이 수동으로 시작된 동일한 컨테이너에서 동일한 무책 연습 게임을 실행하면 제대로 작동합니다.
그렇다면 그 -U 플래그없이 용기 실행 가능하다 ??? 왜 docker 컨테이너에 젠킨스 서버와 동일한 uid & gid가 있어야한다고 생각합니까?
덕분에 사용자가 지정되지 않은 사전 마르코
기본적으로
정말로 감사합니다. 제대로 작동했습니다. 감사합니다. @yamenk에 대해 생각하지 않았습니다. – MarMac