2017-12-14 16 views
1

私は、ドッカープラグインでjenkinsバージョン2.89.1を使用しています。 私は次のようにいくつかのプレイブックを実行するために設置さansibleの2.4.xとのドッキングウィンドウコンテナを起動する宣言型のパイプラインの段階では:パイプラインで使用するjenkinsドッカープラグイン-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-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はジェンキンuidであり、116はジェンキンgidである。

-uフラグを付けずに手動で起動した同じ無意味なプレイブックを同じコンテナで起動すると、正常に動作します。

次に可能ですその-uフラグなしでコンテナを起動 ??? そして、なぜドッキング用のコンテナに同じuid & gidのjenkinsサーバーが必要であると考えられますか?たくさん事前に マルコ

答えて

0

おかげデフォルトでは、ユーザが指定されていない場合、ドッキングウィンドウが指定されていない場合はルートであるdockerfileで定義されたユーザーとコンテナをlauches。 デフォルトのユーザーを強制的に通過させようとすると、次のようになります。

args '-u root:root -v /var/lib/jenkins/workspace/myworkspace:/tmp/' + 
         ' -v /var/lib/jenkins/.ssh:/root/.ssh' 
+0

本当にありがとうございます! 正常に動作しました。 感謝していなかった@yamenk – MarMac

関連する問題