I have an error in the post with the uri module.
I need to create a credential for my Vagrant VM on Jenkins via api.
In my tests, I realized that the error is in passing the value of the 
private key, in this line:

privateKey": "{{ lookup('file', 
'../.vagrant/machines/protheus/virtualbox/private_key')}}"

If I pass the value of the private key manually, in just one line the 
credential is created without errors.

My task:

- name: Get Private Key Value
  debug: msg="Private Key Value is {{ lookup('file', 
'../.vagrant/machines/protheus/virtualbox/private_key')}}"

- name: Get Jenkins Crumb
  uri:
    url: "{{ master_url 
}}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,\":\",//crumb)"
    user: "{{ master_username }}"
    password: "{{ master_password }}"
    force_basic_auth: yes
    return_content: yes
  register: crumb

- name: Create a Jenkins Credential
  uri:
    method: POST
    user: "{{ master_username }}"
    password: "{{ master_password }}"
    force_basic_auth: yes
    #body_format: json
    #body_format: form-urlencoded
    url: "{{ master_url 
}}/credentials/store/system/domain/_/createCredentials"
    headers:
      Jenkins-Crumb: "{{ crumb.content.split(':')[1] }}"
      Cookie: "{{ crumb.set_cookie }}"
    body: |
      json={
        "credentials": {
          "scope": "GLOBAL",
          "id": "{{ slave_linux_jenkins_cred_id }}",
          "username": "{{ slave_linux_jenkins_username }}",
          "privateKeySource": {
            "stapler-class": 
"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey$DirectEntryPrivateKeySource",
            "privateKey": "{{ lookup('file', 
'../.vagrant/machines/protheus/virtualbox/private_key')}}"
            },
          "description": "Node app-protheus",
          "stapler-class": 
"com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"
        }
      }
    #status_code: 302
    validate_certs: no
    follow_redirects: yes
  #ignore_errors: true


Error:
TASK [jenkins : Get Private Key Value] 
******************************************************************************************************************************************
ok: [192.168.0.133] => {
    "msg": "Private Key Value is -----BEGIN RSA PRIVATE 
KEY-----\nMIIEpQIBAAKCAQEA1HDltyx+rUOngUQEggu2DRj5luG929fBrFhyUTzNmhTfxuO+\nsZbkqvL5OWb5K3cMsBYH2U3LPeN8ag/ERgI3ktEH2L8aOqdCJROYP74zXJpa68Wx\nXPmfOuEsxTbkYUe65Ga7q8mwRMWLFL8mRS85DijbSkpHrrYaMRPKW/zr6P7ciZL6\nXCcMgReNzZiRCKRFWAE3HT6Pd7+BSBluJIXi52Ey2L+Wx38OdvbrStSJcp83YZc8\nJv9uVEVCeeW3NAN0yF8TL6Gbv1o7zIl1dMhLaNIppGU1wGoLZ2jGHHSKj3/MimmpwtWPAhg3V4dM\nblbo8+3V3Z9AsycAiSD7JyECgYEA2CFJla8GeRMGEujruuIVOF+wIdbI5zssic/s\nei/AFpdE71jQNxhCxgD/hjShcxFp18e8N13LCYjZIwUeUaAmH30Vs1Y9YWCFcIiC\nj/Z9rpHem8/4u6EiLfnF2WOY05XHEtRwpFBR+pzSR8F3rQMF4BhOF0zNP6XWwiay\nerwkCqkCgYEApL/F7ewsl+9MoA9Ys6fL6D2DpfKK8Bl3gWVs/wll9TzF2NfGszEx\nnc7axyEFd99qIYb2wcoB4+yjlEQKGxDzMCAjMjAvpQPJ+GCYqGQpFQPNvv/F49ET\nUHni4DBp3RnIWfsOzrqLpRMeGsB1+pnphhytbFdNirLjgXj6MFMWZB4=\n-----END
 
RSA PRIVATE KEY-----"
}

TASK [jenkins : Get Jenkins Crumb] 
**********************************************************************************************************************************************
ok: [192.168.0.133]

TASK [jenkins : Create a Jenkins Credential] 
************************************************************************************************************************************
[WARNING]: The value True (type bool) in a string field was converted to 
'True' (type string). If this does not look like what you expect, quote the 
entire value to ensure it
does not change.
fatal: [192.168.0.133]: FAILED! => {"cache_control": 
"must-revalidate,no-cache,no-store", "changed": false, "connection": 
"close", "content": "<html>\n<head>\n<meta http-equiv=\"Content-Type\" 
content=\"text/html;charset=utf-8\"/>\n<title>Error 400 Nothing is 
submitted</title>\n</head>\n<body><h2>HTTP ERROR 400 Nothing is 
submitted</h2>\n<table>\n<tr><th>URI:</th><td>/credentials/store/system/domain/_/createCredentials</td></tr>\n<tr><th>STATUS:</th><td>400</td></tr>\n<tr><th>MESSAGE:</th><td>Nothing
 
is 
submitted</td></tr>\n<tr><th>SERVLET:</th><td>Stapler</td></tr>\n</table>\n<hr><a
 
href=\"http://eclipse.org/jetty\";>Powered by Jetty:// 
9.4.27.v20200227</a><hr/>\n\n</body>\n</html>\n", "content_length": "527", 
"content_type": "text/html;charset=iso-8859-1", "elapsed": 0, "msg": 
"Status code was 400 and not [200]: HTTP Error 400: Bad Request", 
"redirected": false, "server": "Jetty(9.4.27.v20200227)", "status": 400, 
"url": 
"http://192.168.0.120:9080/credentials/store/system/domain/_/createCredentials";,
 
"x_content_type_options": "nosniff"}

PLAY RECAP 
**********************************************************************************************************************************************************************
192.168.0.133              : ok=6    changed=0    unreachable=0    
failed=1    skipped=0    rescued=0    ignored=0



Does anyone know what could be wrong with my task?

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-devel/a24c0027-5619-4864-bb4d-7bfc5ed4cdf6o%40googlegroups.com.

Reply via email to